summaryrefslogtreecommitdiff
path: root/meson.build
diff options
context:
space:
mode:
Diffstat (limited to 'meson.build')
-rw-r--r--meson.build134
1 files changed, 134 insertions, 0 deletions
diff --git a/meson.build b/meson.build
new file mode 100644
index 0000000..9936f81
--- /dev/null
+++ b/meson.build
@@ -0,0 +1,134 @@
+# Copyright © 2018-2020 Intel Corporation
+
+# Permission is hereby granted, free of charge, to any person obtaining a copy
+# of this software and associated documentation files (the "Software"), to deal
+# in the Software without restriction, including without limitation the rights
+# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+# copies of the Software, and to permit persons to whom the Software is
+# furnished to do so, subject to the following conditions:
+
+# The above copyright notice and this permission notice shall be included in
+# all copies or substantial portions of the Software.
+
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+# SOFTWARE.
+
+project(
+ 'libpciaccess',
+ ['c'],
+ version : '0.16',
+ license : 'MIT',
+ meson_version : '>= 0.48.0',
+ default_options : ['buildtype=debugoptimized'],
+)
+
+c = meson.get_compiler('c')
+
+add_project_arguments(
+ c.get_supported_arguments(
+ '-Wpointer-arith',
+ '-Wmissing-declarations',
+ '-Wformat=2',
+ '-Wstrict-prototypes',
+ '-Wmissing-prototypes',
+ '-Wnested-externs',
+ '-Wbad-function-cast',
+ '-Wold-style-definition',
+ '-Wdeclaration-after-statement',
+ '-Wunused',
+ '-Wuninitialized',
+ '-Wshadow',
+ '-Wmissing-noreturn',
+ '-Wmissing-format-attribute',
+ '-Wredundant-decls',
+ '-Wlogical-op',
+ '-Werror=implicit',
+ '-Werror=nonnull',
+ '-Werror=init-self',
+ '-Werror=main',
+ '-Werror=missing-braces',
+ '-Werror=sequence-point',
+ '-Werror=return-type',
+ '-Werror=trigraphs',
+ '-Werror=array-bounds',
+ '-Werror=write-strings',
+ '-Werror=address',
+ '-Werror=int-to-pointer-cast',
+ ),
+ language : 'c'
+)
+
+config = configuration_data()
+
+config.set_quoted(
+ 'PCIIDS_PATH',
+ join_paths(get_option('prefix'), get_option('datadir'), get_option('pci-ids'))
+)
+if get_option('linux-rom-fallback')
+ config.set('LINUX_ROM', 1)
+endif
+
+dep_zlib = dependency('zlib', required : get_option('zlib'))
+if dep_zlib.found()
+ config.set('HAVE_ZLIB', 1)
+endif
+
+extra_libs = []
+if host_machine.system() == 'netbsd'
+ extra_libs += c.find_library('pci')
+ if host_machine.cpu_family() == 'x86'
+ extra_libs += c.find_library('i386')
+ elif host_machine.cpu_family() == 'x86_64'
+ extra_libs += c.find_library('x86_64')
+ elif host_machine.cpu_family() == 'alpha' # TODO
+ extra_libs += c.find_library('alpha')
+ endif
+elif host_machine.system() == 'sunos'
+ extra_libs += c.find_library('devinfo')
+endif
+
+if host_machine.system() == 'netbsd'
+ _prefix = ''
+ if c.check_header('machine/sysarch.h')
+ _prefix = '''
+ #include <sys/types.h>
+ #include <machine/sysarch.h>
+ '''
+ endif
+
+ if c.check_header('machine/mtrr.h', prefix : _prefix)
+ config.set('HAVE_MTRR', 1)
+ endif
+elif c.check_header('asm/mtrr.h')
+ config.set('HAVE_MTRR', 1)
+endif
+
+foreach h : ['err.h', 'stdint.h', 'string.h', 'strings.h', 'inttypes.h']
+ if c.check_header(h)
+ config.set('HAVE_' + h.to_upper().underscorify(), 1)
+ endif
+endforeach
+
+config_h = configure_file(
+ configuration : config,
+ output : 'config.h',
+)
+add_project_arguments('-DHAVE_CONFIG_H', language : ['c'])
+
+install_headers('include/pciaccess.h')
+inc_include = include_directories('.', 'include')
+
+subdir('src')
+subdir('scanpci')
+subdir('man')
+
+pkg = import('pkgconfig')
+pkg.generate(
+ libpciaccess,
+ description : 'Library providing generic access to the PCI bus and devices',
+)