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 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 'CONFIG_XKBCOMMON' not in config_host
  native_qemu_keymap = find_program('qemu-keymap', required: false, disabler: true)
else
  native_qemu_keymap = qemu_keymap
endif
cp = find_program('cp')

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: true,
                       install_dir: qemu_datadir / 'keymaps')
  endforeach

  alias_target('update-keymaps', t)
else
  install_data(keymaps.keys(), install_dir: qemu_datadir / 'keymaps')
endif

install_data(['sl', 'sv'], install_dir: qemu_datadir / 'keymaps')
