tools: link the tools against libxkbcommon.so only
The tools previously linked against a static version (by simply recompiling everythiong). This isn't necessary, we can link them against libxkbcommon.so. Only exception: The xbkcli-compile-keymap tool needs a private API for the --kccgst flag. Avoid this by disabling this flag in the installed tool and building the same tool, statically linked but not-installed. Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>master
parent
a472e030ea
commit
ce5eb1ac6d
12
meson.build
12
meson.build
|
@ -241,6 +241,9 @@ install_headers(
|
|||
'xkbcommon/xkbcommon-names.h',
|
||||
subdir: 'xkbcommon',
|
||||
)
|
||||
libxkbcommon_dep = declare_dependency(
|
||||
link_with: libxkbcommon,
|
||||
)
|
||||
pkgconfig.generate(
|
||||
libxkbcommon,
|
||||
name: 'xkbcommon',
|
||||
|
@ -532,8 +535,8 @@ if build_tools
|
|||
'tools-internal',
|
||||
'tools/tools-common.h',
|
||||
'tools/tools-common.c',
|
||||
libxkbcommon_sources,
|
||||
include_directories: include_directories('src'),
|
||||
dependencies: libxkbcommon_dep,
|
||||
)
|
||||
tools_dep = declare_dependency(
|
||||
include_directories: [include_directories('src'), include_directories('tools')],
|
||||
|
@ -550,6 +553,13 @@ if build_tools
|
|||
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',
|
||||
|
|
|
@ -56,8 +56,10 @@ usage(char **argv)
|
|||
"Options:\n"
|
||||
" --verbose\n"
|
||||
" Enable verbose debugging output\n"
|
||||
#if ENABLE_PRIVATE_APIS
|
||||
" --kccgst\n"
|
||||
" Print a keymap which only includes the KcCGST component names instead of the full keymap\n"
|
||||
#endif
|
||||
" --rmlvo\n"
|
||||
" Print the full RMLVO with the defaults filled in for missing elements\n"
|
||||
" --from-xkb\n"
|
||||
|
@ -111,7 +113,9 @@ parse_options(int argc, char **argv, struct xkb_rule_names *names)
|
|||
static struct option opts[] = {
|
||||
{"help", no_argument, 0, 'h'},
|
||||
{"verbose", no_argument, 0, OPT_VERBOSE},
|
||||
#if ENABLE_PRIVATE_APIS
|
||||
{"kccgst", no_argument, 0, OPT_KCCGST},
|
||||
#endif
|
||||
{"rmlvo", no_argument, 0, OPT_RMLVO},
|
||||
{"from-xkb", no_argument, 0, OPT_FROM_XKB},
|
||||
{"include", required_argument, 0, OPT_INCLUDE},
|
||||
|
@ -191,6 +195,7 @@ print_rmlvo(struct xkb_context *ctx, const struct xkb_rule_names *rmlvo)
|
|||
static bool
|
||||
print_kccgst(struct xkb_context *ctx, const struct xkb_rule_names *rmlvo)
|
||||
{
|
||||
#if ENABLE_PRIVATE_APIS
|
||||
struct xkb_component_names kccgst;
|
||||
|
||||
if (!xkb_components_from_rules(ctx, rmlvo, &kccgst))
|
||||
|
@ -209,6 +214,9 @@ print_kccgst(struct xkb_context *ctx, const struct xkb_rule_names *rmlvo)
|
|||
free(kccgst.symbols);
|
||||
|
||||
return true;
|
||||
#else
|
||||
return false;
|
||||
#endif
|
||||
}
|
||||
|
||||
static bool
|
||||
|
|
|
@ -20,10 +20,6 @@ Print help and exit
|
|||
Enable verbose debugging output
|
||||
.
|
||||
.TP
|
||||
\fB\-\-kccgst\fR
|
||||
Print a keymap which only includes the KcCGST component names instead of the full keymap
|
||||
.
|
||||
.TP
|
||||
\fB\-\-rmlvo\fR
|
||||
Print the full RMLVO with the defaults filled in for missing elements
|
||||
.
|
||||
|
|
Loading…
Reference in New Issue