134 lines
3.7 KiB
Meson
134 lines
3.7 KiB
Meson
# 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.18.1',
|
|
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',
|
|
)
|