build: move tests to after tools
So tests can refer to stuff set by the tools section. Signed-off-by: Ran Benita <ran@unusedvar.com>master
parent
d327475282
commit
737030ad5b
259
meson.build
259
meson.build
|
@ -369,6 +369,130 @@ if get_option('enable-xkbregistry')
|
||||||
)
|
)
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
man_pages = []
|
||||||
|
|
||||||
|
# Tools
|
||||||
|
build_tools = have_getopt_long
|
||||||
|
if build_tools
|
||||||
|
libxkbcommon_tools_internal = static_library(
|
||||||
|
'tools-internal',
|
||||||
|
'tools/tools-common.h',
|
||||||
|
'tools/tools-common.c',
|
||||||
|
dependencies: libxkbcommon_dep,
|
||||||
|
)
|
||||||
|
tools_dep = declare_dependency(
|
||||||
|
include_directories: [include_directories('tools')],
|
||||||
|
link_with: libxkbcommon_tools_internal,
|
||||||
|
)
|
||||||
|
|
||||||
|
executable('xkbcli', 'tools/xkbcli.c',
|
||||||
|
dependencies: tools_dep, install: true)
|
||||||
|
install_man('tools/xkbcli.1')
|
||||||
|
|
||||||
|
executable('xkbcli-compile-keymap',
|
||||||
|
'tools/compile-keymap.c',
|
||||||
|
dependencies: tools_dep,
|
||||||
|
install: true,
|
||||||
|
install_dir: dir_libexec)
|
||||||
|
install_man('tools/xkbcli-compile-keymap.1')
|
||||||
|
# The same tool again, but with access to some private APIs.
|
||||||
|
executable('compile-keymap',
|
||||||
|
'tools/compile-keymap.c',
|
||||||
|
libxkbcommon_sources,
|
||||||
|
dependencies: [tools_dep],
|
||||||
|
c_args: ['-DENABLE_PRIVATE_APIS'],
|
||||||
|
include_directories: [include_directories('src')],
|
||||||
|
install: false)
|
||||||
|
configh_data.set10('HAVE_XKBCLI_COMPILE_KEYMAP', true)
|
||||||
|
executable('xkbcli-how-to-type',
|
||||||
|
'tools/how-to-type.c',
|
||||||
|
dependencies: tools_dep,
|
||||||
|
install: true,
|
||||||
|
install_dir: dir_libexec)
|
||||||
|
install_man('tools/xkbcli-how-to-type.1')
|
||||||
|
configh_data.set10('HAVE_XKBCLI_HOW_TO_TYPE', true)
|
||||||
|
if cc.has_header('linux/input.h')
|
||||||
|
executable('xkbcli-interactive-evdev',
|
||||||
|
'tools/interactive-evdev.c',
|
||||||
|
dependencies: tools_dep,
|
||||||
|
install: true,
|
||||||
|
install_dir: dir_libexec)
|
||||||
|
configh_data.set10('HAVE_XKBCLI_INTERACTIVE_EVDEV', true)
|
||||||
|
install_man('tools/xkbcli-interactive-evdev.1')
|
||||||
|
endif
|
||||||
|
if get_option('enable-x11')
|
||||||
|
x11_tools_dep = declare_dependency(
|
||||||
|
link_with: libxkbcommon_x11,
|
||||||
|
dependencies: [
|
||||||
|
tools_dep,
|
||||||
|
xcb_dep,
|
||||||
|
xcb_xkb_dep,
|
||||||
|
],
|
||||||
|
)
|
||||||
|
executable('xkbcli-interactive-x11',
|
||||||
|
'tools/interactive-x11.c',
|
||||||
|
dependencies: x11_tools_dep,
|
||||||
|
install: true,
|
||||||
|
install_dir: dir_libexec)
|
||||||
|
install_man('tools/xkbcli-interactive-x11.1')
|
||||||
|
configh_data.set10('HAVE_XKBCLI_INTERACTIVE_X11', true)
|
||||||
|
endif
|
||||||
|
if get_option('enable-wayland')
|
||||||
|
wayland_client_dep = dependency('wayland-client', version: '>=1.2.0', required: false)
|
||||||
|
wayland_protocols_dep = dependency('wayland-protocols', version: '>=1.12', required: false)
|
||||||
|
wayland_scanner_dep = dependency('wayland-scanner', required: false, native: true)
|
||||||
|
if not wayland_client_dep.found() or not wayland_protocols_dep.found() or not wayland_scanner_dep.found()
|
||||||
|
error('''The Wayland xkbcli programs require wayland-client >= 1.2.0, wayland-protocols >= 1.7 which were not found.
|
||||||
|
You can disable the Wayland xkbcli programs with -Denable-wayland=false.''')
|
||||||
|
endif
|
||||||
|
|
||||||
|
wayland_scanner = find_program(wayland_scanner_dep.get_pkgconfig_variable('wayland_scanner'))
|
||||||
|
wayland_scanner_code_gen = generator(
|
||||||
|
wayland_scanner,
|
||||||
|
output: '@BASENAME@-protocol.c',
|
||||||
|
arguments: ['code', '@INPUT@', '@OUTPUT@'],
|
||||||
|
)
|
||||||
|
wayland_scanner_client_header_gen = generator(
|
||||||
|
wayland_scanner,
|
||||||
|
output: '@BASENAME@-client-protocol.h',
|
||||||
|
arguments: ['client-header', '@INPUT@', '@OUTPUT@'],
|
||||||
|
)
|
||||||
|
wayland_protocols_datadir = wayland_protocols_dep.get_pkgconfig_variable('pkgdatadir')
|
||||||
|
xdg_shell_xml = wayland_protocols_datadir/'stable/xdg-shell/xdg-shell.xml'
|
||||||
|
xdg_shell_sources = [
|
||||||
|
wayland_scanner_code_gen.process(xdg_shell_xml),
|
||||||
|
wayland_scanner_client_header_gen.process(xdg_shell_xml),
|
||||||
|
]
|
||||||
|
executable('xkbcli-interactive-wayland',
|
||||||
|
'tools/interactive-wayland.c',
|
||||||
|
xdg_shell_sources,
|
||||||
|
dependencies: [tools_dep, wayland_client_dep],
|
||||||
|
install: true,
|
||||||
|
install_dir: dir_libexec)
|
||||||
|
install_man('tools/xkbcli-interactive-wayland.1')
|
||||||
|
configh_data.set10('HAVE_XKBCLI_INTERACTIVE_WAYLAND', true)
|
||||||
|
endif
|
||||||
|
|
||||||
|
if get_option('enable-xkbregistry')
|
||||||
|
configh_data.set10('HAVE_XKBCLI_LIST', true)
|
||||||
|
executable('xkbcli-list',
|
||||||
|
'tools/registry-list.c',
|
||||||
|
dependencies: dep_libxkbregistry,
|
||||||
|
install: true,
|
||||||
|
install_dir: dir_libexec)
|
||||||
|
install_man('tools/xkbcli-list.1')
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
|
||||||
|
|
||||||
|
# xkeyboard-config "verifier"
|
||||||
|
xkct_config = configuration_data()
|
||||||
|
xkct_config.set('MESON_BUILD_ROOT', meson.build_root())
|
||||||
|
xkct_config.set('XKB_CONFIG_ROOT', XKBCONFIGROOT)
|
||||||
|
configure_file(input: 'test/xkeyboard-config-test.py.in',
|
||||||
|
output: 'xkeyboard-config-test',
|
||||||
|
configuration: xkct_config)
|
||||||
|
|
||||||
# Tests
|
# Tests
|
||||||
test_env = environment()
|
test_env = environment()
|
||||||
test_env.set('XKB_LOG_LEVEL', 'debug')
|
test_env.set('XKB_LOG_LEVEL', 'debug')
|
||||||
|
@ -522,6 +646,12 @@ if get_option('enable-xkbregistry')
|
||||||
env: test_env,
|
env: test_env,
|
||||||
)
|
)
|
||||||
endif
|
endif
|
||||||
|
if build_tools
|
||||||
|
test('tool-option-parsing',
|
||||||
|
find_program('test/tool-option-parsing.py'),
|
||||||
|
env: test_env,
|
||||||
|
suite: ['python-tests'])
|
||||||
|
endif
|
||||||
|
|
||||||
valgrind = find_program('valgrind', required: false)
|
valgrind = find_program('valgrind', required: false)
|
||||||
if valgrind.found()
|
if valgrind.found()
|
||||||
|
@ -541,135 +671,6 @@ endif
|
||||||
executable('fuzz-keymap', 'fuzz/keymap/target.c', dependencies: test_dep)
|
executable('fuzz-keymap', 'fuzz/keymap/target.c', dependencies: test_dep)
|
||||||
executable('fuzz-compose', 'fuzz/compose/target.c', dependencies: test_dep)
|
executable('fuzz-compose', 'fuzz/compose/target.c', dependencies: test_dep)
|
||||||
|
|
||||||
man_pages = []
|
|
||||||
|
|
||||||
# Tools
|
|
||||||
build_tools = have_getopt_long
|
|
||||||
if build_tools
|
|
||||||
libxkbcommon_tools_internal = static_library(
|
|
||||||
'tools-internal',
|
|
||||||
'tools/tools-common.h',
|
|
||||||
'tools/tools-common.c',
|
|
||||||
dependencies: libxkbcommon_dep,
|
|
||||||
)
|
|
||||||
tools_dep = declare_dependency(
|
|
||||||
include_directories: [include_directories('tools')],
|
|
||||||
link_with: libxkbcommon_tools_internal,
|
|
||||||
)
|
|
||||||
|
|
||||||
executable('xkbcli', 'tools/xkbcli.c',
|
|
||||||
dependencies: tools_dep, install: true)
|
|
||||||
install_man('tools/xkbcli.1')
|
|
||||||
|
|
||||||
executable('xkbcli-compile-keymap',
|
|
||||||
'tools/compile-keymap.c',
|
|
||||||
dependencies: tools_dep,
|
|
||||||
install: true,
|
|
||||||
install_dir: dir_libexec)
|
|
||||||
install_man('tools/xkbcli-compile-keymap.1')
|
|
||||||
# The same tool again, but with access to some private APIs.
|
|
||||||
executable('compile-keymap',
|
|
||||||
'tools/compile-keymap.c',
|
|
||||||
libxkbcommon_sources,
|
|
||||||
dependencies: [tools_dep],
|
|
||||||
c_args: ['-DENABLE_PRIVATE_APIS'],
|
|
||||||
include_directories: [include_directories('src')],
|
|
||||||
install: false)
|
|
||||||
configh_data.set10('HAVE_XKBCLI_COMPILE_KEYMAP', true)
|
|
||||||
executable('xkbcli-how-to-type',
|
|
||||||
'tools/how-to-type.c',
|
|
||||||
dependencies: tools_dep,
|
|
||||||
install: true,
|
|
||||||
install_dir: dir_libexec)
|
|
||||||
install_man('tools/xkbcli-how-to-type.1')
|
|
||||||
configh_data.set10('HAVE_XKBCLI_HOW_TO_TYPE', true)
|
|
||||||
if cc.has_header('linux/input.h')
|
|
||||||
executable('xkbcli-interactive-evdev',
|
|
||||||
'tools/interactive-evdev.c',
|
|
||||||
dependencies: tools_dep,
|
|
||||||
install: true,
|
|
||||||
install_dir: dir_libexec)
|
|
||||||
configh_data.set10('HAVE_XKBCLI_INTERACTIVE_EVDEV', true)
|
|
||||||
install_man('tools/xkbcli-interactive-evdev.1')
|
|
||||||
endif
|
|
||||||
if get_option('enable-x11')
|
|
||||||
x11_tools_dep = declare_dependency(
|
|
||||||
link_with: libxkbcommon_x11,
|
|
||||||
dependencies: [
|
|
||||||
tools_dep,
|
|
||||||
xcb_dep,
|
|
||||||
xcb_xkb_dep,
|
|
||||||
],
|
|
||||||
)
|
|
||||||
executable('xkbcli-interactive-x11',
|
|
||||||
'tools/interactive-x11.c',
|
|
||||||
dependencies: x11_tools_dep,
|
|
||||||
install: true,
|
|
||||||
install_dir: dir_libexec)
|
|
||||||
install_man('tools/xkbcli-interactive-x11.1')
|
|
||||||
configh_data.set10('HAVE_XKBCLI_INTERACTIVE_X11', true)
|
|
||||||
endif
|
|
||||||
if get_option('enable-wayland')
|
|
||||||
wayland_client_dep = dependency('wayland-client', version: '>=1.2.0', required: false)
|
|
||||||
wayland_protocols_dep = dependency('wayland-protocols', version: '>=1.12', required: false)
|
|
||||||
wayland_scanner_dep = dependency('wayland-scanner', required: false, native: true)
|
|
||||||
if not wayland_client_dep.found() or not wayland_protocols_dep.found() or not wayland_scanner_dep.found()
|
|
||||||
error('''The Wayland xkbcli programs require wayland-client >= 1.2.0, wayland-protocols >= 1.7 which were not found.
|
|
||||||
You can disable the Wayland xkbcli programs with -Denable-wayland=false.''')
|
|
||||||
endif
|
|
||||||
|
|
||||||
wayland_scanner = find_program(wayland_scanner_dep.get_pkgconfig_variable('wayland_scanner'))
|
|
||||||
wayland_scanner_code_gen = generator(
|
|
||||||
wayland_scanner,
|
|
||||||
output: '@BASENAME@-protocol.c',
|
|
||||||
arguments: ['code', '@INPUT@', '@OUTPUT@'],
|
|
||||||
)
|
|
||||||
wayland_scanner_client_header_gen = generator(
|
|
||||||
wayland_scanner,
|
|
||||||
output: '@BASENAME@-client-protocol.h',
|
|
||||||
arguments: ['client-header', '@INPUT@', '@OUTPUT@'],
|
|
||||||
)
|
|
||||||
wayland_protocols_datadir = wayland_protocols_dep.get_pkgconfig_variable('pkgdatadir')
|
|
||||||
xdg_shell_xml = wayland_protocols_datadir/'stable/xdg-shell/xdg-shell.xml'
|
|
||||||
xdg_shell_sources = [
|
|
||||||
wayland_scanner_code_gen.process(xdg_shell_xml),
|
|
||||||
wayland_scanner_client_header_gen.process(xdg_shell_xml),
|
|
||||||
]
|
|
||||||
executable('xkbcli-interactive-wayland',
|
|
||||||
'tools/interactive-wayland.c',
|
|
||||||
xdg_shell_sources,
|
|
||||||
dependencies: [tools_dep, wayland_client_dep],
|
|
||||||
install: true,
|
|
||||||
install_dir: dir_libexec)
|
|
||||||
install_man('tools/xkbcli-interactive-wayland.1')
|
|
||||||
configh_data.set10('HAVE_XKBCLI_INTERACTIVE_WAYLAND', true)
|
|
||||||
endif
|
|
||||||
|
|
||||||
if get_option('enable-xkbregistry')
|
|
||||||
configh_data.set10('HAVE_XKBCLI_LIST', true)
|
|
||||||
executable('xkbcli-list',
|
|
||||||
'tools/registry-list.c',
|
|
||||||
dependencies: dep_libxkbregistry,
|
|
||||||
install: true,
|
|
||||||
install_dir: dir_libexec)
|
|
||||||
install_man('tools/xkbcli-list.1')
|
|
||||||
endif
|
|
||||||
|
|
||||||
test('tool-option-parsing',
|
|
||||||
find_program('test/tool-option-parsing.py'),
|
|
||||||
env: test_env,
|
|
||||||
suite: ['python-tests'])
|
|
||||||
endif
|
|
||||||
|
|
||||||
|
|
||||||
# xkeyboard-config "verifier"
|
|
||||||
xkct_config = configuration_data()
|
|
||||||
xkct_config.set('MESON_BUILD_ROOT', meson.build_root())
|
|
||||||
xkct_config.set('XKB_CONFIG_ROOT', XKBCONFIGROOT)
|
|
||||||
configure_file(input: 'test/xkeyboard-config-test.py.in',
|
|
||||||
output: 'xkeyboard-config-test',
|
|
||||||
configuration: xkct_config)
|
|
||||||
|
|
||||||
|
|
||||||
# Benchmarks.
|
# Benchmarks.
|
||||||
libxkbcommon_bench_internal = static_library(
|
libxkbcommon_bench_internal = static_library(
|
||||||
|
|
Loading…
Reference in New Issue