qemu/pc-bios/keymaps/meson.build

Ignoring revisions in .git-blame-ignore-revs. Click here to bypass and see the normal blame view.

62 lines
1.4 KiB
Meson
Raw Normal View History

keymaps = {
pc-bios/keymaps: Use the official xkb name for Arabic layout, not the legacy synonym The xkb official name for the Arabic keyboard layout is 'ara'. However xkb has for at least the past 15 years also permitted it to be named via the legacy synonym 'ar'. In xkeyboard-config 2.39 this synoynm was removed, which breaks compilation of QEMU: FAILED: pc-bios/keymaps/ar /home/fred/qemu-git/src/qemu/build-full/qemu-keymap -f pc-bios/keymaps/ar -l ar xkbcommon: ERROR: Couldn't find file "symbols/ar" in include paths xkbcommon: ERROR: 1 include paths searched: xkbcommon: ERROR: /usr/share/X11/xkb xkbcommon: ERROR: 3 include paths could not be added: xkbcommon: ERROR: /home/fred/.config/xkb xkbcommon: ERROR: /home/fred/.xkb xkbcommon: ERROR: /etc/xkb xkbcommon: ERROR: Abandoning symbols file "(unnamed)" xkbcommon: ERROR: Failed to compile xkb_symbols xkbcommon: ERROR: Failed to compile keymap The upstream xkeyboard-config change removing the compat mapping is: https://gitlab.freedesktop.org/xkeyboard-config/xkeyboard-config/-/commit/470ad2cd8fea84d7210377161d86b31999bb5ea6 Make QEMU always ask for the 'ara' xkb layout, which should work on both older and newer xkeyboard-config. We leave the QEMU name for this keyboard layout as 'ar'; it is not the only one where our name for it deviates from the xkb standard name. Cc: qemu-stable@nongnu.org Signed-off-by: Peter Maydell <peter.maydell@linaro.org> Reviewed-by: Richard Henderson <richard.henderson@linaro.org> Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org> Reviewed-by: Daniel P. Berrangé <berrange@redhat.com> Message-id: 20230620162024.1132013-1-peter.maydell@linaro.org Resolves: https://gitlab.com/qemu-project/qemu/-/issues/1709
2023-06-20 19:20:24 +03:00
'ar': '-l ara',
'bepo': '-l fr -v dvorak',
'cz': '-l cz',
'da': '-l dk',
'de': '-l de -v nodeadkeys',
'de-ch': '-l ch',
'en-gb': '-l gb',
'en-us': '-l us',
'es': '-l es',
'et': '-l et',
'fi': '-l fi',
'fo': '-l fo',
'fr': '-l fr -v nodeadkeys',
'fr-be': '-l be',
'fr-ca': '-l ca -v fr',
'fr-ch': '-l ch -v fr',
'hr': '-l hr',
'hu': '-l hu',
'is': '-l is',
'it': '-l it',
'ja': '-l jp -m jp106',
'lt': '-l lt',
'lv': '-l lv',
'mk': '-l mk',
'nl': '-l nl',
'no': '-l no',
'pl': '-l pl',
'pt': '-l pt',
'pt-br': '-l br',
'ru': '-l ru',
'th': '-l th',
'tr': '-l tr',
}
if meson.is_cross_build() or not xkbcommon.found()
native_qemu_keymap = find_program('qemu-keymap', required: false, disabler: true)
else
native_qemu_keymap = qemu_keymap
endif
if native_qemu_keymap.found()
t = []
foreach km, args: keymaps
# generate with qemu-kvm
t += custom_target(km,
build_by_default: true,
output: km,
command: [native_qemu_keymap, '-f', '@OUTPUT@', args.split()],
install: have_system,
install_dir: qemu_datadir / 'keymaps')
endforeach
alias_target('update-keymaps', t)
else
install_data(keymaps.keys(), install_dir: qemu_datadir / 'keymaps')
endif
if have_system
install_data(['sl', 'sv'], install_dir: qemu_datadir / 'keymaps')
endif