keymaps = {
  '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: 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')
