From: Marc-André Lureau <marcandre.lur...@redhat.com> Signed-off-by: Marc-André Lureau <marcandre.lur...@redhat.com> --- meson.build | 13 ++++--- pc-bios/keymaps/Makefile | 56 --------------------------- pc-bios/keymaps/meson.build | 94 +++++++++++++++++++++++++++------------------ 3 files changed, 65 insertions(+), 98 deletions(-) delete mode 100644 pc-bios/keymaps/Makefile
diff --git a/meson.build b/meson.build index 9a5b9d9..884aa6c 100644 --- a/meson.build +++ b/meson.build @@ -897,6 +897,14 @@ if 'CONFIG_GUEST_AGENT' in config_host subdir('qga') endif +# used for the update-keymaps target +if xkbcommon.found() + qemu_keymap = executable('qemu-keymap', files('qemu-keymap.c', 'ui/input-keymap.c'), + dependencies: [qemuutil, xkbcommon], install: have_tools) +else + qemu_keymap = disabler() +endif + if have_tools executable('qemu-img', [files('qemu-img.c'), hxdep], dependencies: [block, qemuutil], install: true) if host_machine.system() == 'linux' or host_machine.system() == 'sunos' or host_machine.system().endswith('bsd') @@ -907,11 +915,6 @@ if have_tools subdir('contrib/rdmacm-mux') subdir('contrib/elf2dmp') - if xkbcommon.found() - executable('qemu-keymap', files('qemu-keymap.c', 'ui/input-keymap.c'), - dependencies: [qemuutil, xkbcommon], install: true) - endif - executable('qemu-edid', files('qemu-edid.c', 'hw/display/edid-generate.c'), dependencies: qemuutil) diff --git a/pc-bios/keymaps/Makefile b/pc-bios/keymaps/Makefile deleted file mode 100644 index 76217b0..0000000 --- a/pc-bios/keymaps/Makefile +++ /dev/null @@ -1,56 +0,0 @@ - -KEYMAP := $(shell which qemu-keymap 2>/dev/null) - -MAPS := ar bepo cz da de de-ch en-us en-gb es et fi fo \ - fr fr-be fr-ca fr-ch \ - hr hu is it ja lt lv mk nl no pl pt pt-br ru th tr - -ar : MAP_FLAGS := -l ar -bepo : MAP_FLAGS := -l fr -v dvorak -cz : MAP_FLAGS := -l cz -da : MAP_FLAGS := -l dk -de : MAP_FLAGS := -l de -v nodeadkeys -de-ch : MAP_FLAGS := -l ch -en-us : MAP_FLAGS := -l us -en-gb : MAP_FLAGS := -l gb -es : MAP_FLAGS := -l es -et : MAP_FLAGS := -l et -fi : MAP_FLAGS := -l fi -fo : MAP_FLAGS := -l fo -fr : MAP_FLAGS := -l fr -v nodeadkeys -fr-be : MAP_FLAGS := -l be -fr-ca : MAP_FLAGS := -l ca -v fr -fr-ch : MAP_FLAGS := -l ch -v fr -hr : MAP_FLAGS := -l hr -hu : MAP_FLAGS := -l hu -is : MAP_FLAGS := -l is -it : MAP_FLAGS := -l it -ja : MAP_FLAGS := -l jp -m jp106 -lt : MAP_FLAGS := -l lt -lv : MAP_FLAGS := -l lv -mk : MAP_FLAGS := -l mk -nl : MAP_FLAGS := -l nl -no : MAP_FLAGS := -l no -pl : MAP_FLAGS := -l pl -pt : MAP_FLAGS := -l pt -pt-br : MAP_FLAGS := -l br -ru : MAP_FLAGS := -l ru -th : MAP_FLAGS := -l th -tr : MAP_FLAGS := -l tr - -ifeq ($(KEYMAP),) - -all: - @echo "nothing to do (qemu-keymap not found)" - -else - -all: $(MAPS) - -clean: - rm -f $(MAPS) - -$(MAPS): $(KEYMAP) Makefile - $(KEYMAP) -f $@ $(MAP_FLAGS) - -endif diff --git a/pc-bios/keymaps/meson.build b/pc-bios/keymaps/meson.build index 04c2a17..99cccd7 100644 --- a/pc-bios/keymaps/meson.build +++ b/pc-bios/keymaps/meson.build @@ -1,38 +1,58 @@ -keymaps = [ - 'ar', - 'bepo', - 'cz', - 'da', - 'de', - 'de-ch', - 'en-gb', - 'en-us', - 'es', - 'et', - 'fi', - 'fo', - 'fr', - 'fr-be', - 'fr-ca', - 'fr-ch', - 'hr', - 'hu', - 'is', - 'it', - 'ja', - 'lt', - 'lv', - 'mk', - 'nl', - 'no', - 'pl', - 'pt', - 'pt-br', - 'ru', - 'sl', - 'sv', - 'th', - 'tr', -] +keymaps = { + 'ar': '-l ar', + 'bepo': '-l fr -v dvorak', + 'cz': '-l cz', + 'da': '-l dk', + 'de': '-l de -v nodeadkeys', + 'de-ch': '-l ch', + 'en-gb': '-l us', + 'en-us': '-l gb', + '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', + 'sl': '', + 'sv': '', + 'th': '-l th', + 'tr': '-l tr', +} -install_data(keymaps, install_dir: config_host['qemu_datadir'] / 'keymaps') +install_data(keymaps.keys(), install_dir: config_host['qemu_datadir'] / 'keymaps') + +if meson.is_cross_build() + native_qemu_keymap = find_program('qemu-keymap', required: false) + have_qemu_keymap = native_qemu_keymap.found() +else + native_qemu_keymap = qemu_keymap + # disabler disables everything below + have_qemu_keymap = true +endif +if have_qemu_keymap + t = [] + foreach km, args: keymaps + t += custom_target(km, + output: km, + command: [qemu_keymap, '-f', '@OUTPUT@', args.split()]) + endforeach + if t.length() > 0 + alias_target('update-keymaps', t) + endif +endif -- 1.8.3.1