-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',
- include_directories: include_directories('src'),
- dependencies: libxkbcommon_dep,
- )
- tools_dep = declare_dependency(
- include_directories: [include_directories('src'), 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'],
- 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 = join_paths(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
-
- # pytest finds files named test_foo_bar.py but not
- # test-foo-bar.py, let's rename the source file so it only ever finds the
- # built one.
- config_tool_option_test = configuration_data()
- config_tool_option_test.set('MESON_BUILD_ROOT', meson.current_build_dir())
- tool_option_test = configure_file(input: 'tools/test-tool-option-parsing.py',
- output: 'test_tool_option_parsing.py',
- configuration : config_tool_option_test)
- test('tool-option-parsing',
- tool_option_test,
- args: [tool_option_test, '-n', 'auto'])
-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)
-