mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usbutils.git
synced 2024-11-14 14:33:44 +08:00
d4b78d735f
Throw clang into the matrix, so we get a bit of extra coverage. As evidenced by the disabled warning - it does catch extra issues. Currently enabled only for 64bit builds, since fiddling with environment variables and cross-files is more tricky than I can be asked atm x-D Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
159 lines
4.0 KiB
Meson
159 lines
4.0 KiB
Meson
# SPDX-License-Identifier: GPL-2.0-only
|
|
# Copyright (c) 2024 Greg Kroah-Hartman <gregkh@linuxfoundation.org>
|
|
|
|
project(
|
|
'usbutils',
|
|
'c',
|
|
version: '018',
|
|
license: ['GPL-2.0-only', 'GPL-2.0-or-later','GPL-2.0-or-later'],
|
|
meson_version : '>=0.60.0',
|
|
default_options : ['c_std=gnu99', 'warning_level=2', 'prefix=/usr']
|
|
)
|
|
|
|
pkg = import('pkgconfig')
|
|
|
|
# Compiler stuff
|
|
cc = meson.get_compiler('c')
|
|
|
|
add_project_arguments(
|
|
cc.get_supported_arguments([
|
|
'-Wbad-function-cast',
|
|
# should be removed and the code fixed
|
|
'-Wno-cast-align',
|
|
'-Wchar-subscripts',
|
|
'-Wempty-body',
|
|
'-Wformat',
|
|
'-Wformat=2',
|
|
'-Wformat-nonliteral',
|
|
'-Wformat-security',
|
|
'-Wformat-y2k',
|
|
'-Winit-self',
|
|
'-Winline',
|
|
'-Wint-conversion',
|
|
'-Wmissing-declarations',
|
|
'-Wmissing-format-attribute',
|
|
'-Wmissing-include-dirs',
|
|
'-Wmissing-prototypes',
|
|
'-Wmissing-noreturn',
|
|
'-Wnested-externs',
|
|
'-Wold-style-definition',
|
|
'-Wold-style-declaration',
|
|
'-Wpointer-arith',
|
|
'-Wredundant-decls',
|
|
'-Wshadow',
|
|
'-Wsign-compare',
|
|
#'-Wsuggest-attribute=const',
|
|
#'-Wsuggest-attribute=noreturn',
|
|
#'-Wsuggest-attribute=malloc',
|
|
#'-Wsuggest-attribute=returns_nonnull',
|
|
'-Wstrict-prototypes',
|
|
'-Wswitch',
|
|
'-Wtype-limits',
|
|
'-Wundef',
|
|
'-Wuninitialized',
|
|
'-Wunused',
|
|
'-Wunused-variable',
|
|
'-Wvla',
|
|
'-Wwrite-strings',
|
|
'-fdiagnostics-color=auto',
|
|
# warnings disabled on purpose
|
|
'-Wno-unused-parameter',
|
|
'-Wno-unused-function',
|
|
'-Wno-deprecated-declarations',
|
|
]),
|
|
language: 'c',
|
|
)
|
|
|
|
# Configuration information
|
|
config = configuration_data()
|
|
config.set_quoted('PACKAGE_NAME', meson.project_name())
|
|
config.set_quoted('VERSION', meson.project_version())
|
|
config_h = configure_file(output: 'config.h', configuration: config)
|
|
|
|
add_project_arguments('-include', 'config.h', language : 'c')
|
|
|
|
|
|
#####################
|
|
# man page generation
|
|
#####################
|
|
install_man(['man/lsusb.8', 'man/lsusb.py.1', 'man/usb-devices.1', 'man/usbhid-dump.8'])
|
|
|
|
|
|
##########################
|
|
# lsusb build instructions
|
|
##########################
|
|
lsusb_sources = [
|
|
'desc-defs.c',
|
|
'desc-defs.h',
|
|
'desc-dump.c',
|
|
'desc-dump.h',
|
|
'lsusb-t.c',
|
|
'lsusb.c',
|
|
'lsusb.h',
|
|
'names.c',
|
|
'names.h',
|
|
'sysfs.c',
|
|
'sysfs.h',
|
|
'usb-spec.h',
|
|
'usbmisc.c',
|
|
'usbmisc.h',
|
|
'ccan/check_type/check_type.h',
|
|
'ccan/config.h',
|
|
'ccan/container_of/container_of.h',
|
|
'ccan/str/str_debug.h',
|
|
'ccan/str/str.h',
|
|
'ccan/list/list.h',
|
|
]
|
|
|
|
libudev = dependency('libudev', version: '>= 196')
|
|
libusb = dependency('libusb-1.0', version: '>= 1.0.22')
|
|
|
|
executable('lsusb', lsusb_sources, dependencies: [libusb, libudev], install: true)
|
|
|
|
################################
|
|
# usbhid-dump build instructions
|
|
################################
|
|
usbhid_sources = [
|
|
'usbhid-dump/dev.c',
|
|
'usbhid-dump/dev.h',
|
|
'usbhid-dump/dev_list.c',
|
|
'usbhid-dump/dev_list.h',
|
|
'usbhid-dump/iface.c',
|
|
'usbhid-dump/iface.h',
|
|
'usbhid-dump/iface_list.c',
|
|
'usbhid-dump/iface_list.h',
|
|
'usbhid-dump/misc.h',
|
|
'usbhid-dump/usbhid-dump.c',
|
|
]
|
|
|
|
executable('usbhid-dump', usbhid_sources, dependencies: libusb, install: true)
|
|
|
|
##############################
|
|
# usbreset build instructions
|
|
##############################
|
|
usbreset_sources = [
|
|
'usbreset.c'
|
|
]
|
|
|
|
# By default, usbreset does not get installed as it could cause problems, it's
|
|
# in the repo for those that wish to try it out.
|
|
executable('usbreset', usbreset_sources, install: false)
|
|
|
|
|
|
################################
|
|
# usb-devices build instructions
|
|
################################
|
|
usb_devices_sources = [
|
|
'usb-devices'
|
|
]
|
|
# Hack as this is not something to compile, but rather we can just copy it.
|
|
install_data(usb_devices_sources, install_dir: get_option('bindir'), install_mode: 'rwxr-xr-x')
|
|
|
|
|
|
#############################
|
|
# lsusb.py build instructions
|
|
#############################
|
|
# Also a hack, like was done for usb-devices, as this is "just" a script and
|
|
# doesn't need to be compiled.
|
|
install_data(files('lsusb.py'), install_dir: get_option('bindir'), install_mode: 'rwxr-xr-x')
|