meson.build 2.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. luksmeta_data = configuration_data()
  2. luksmeta = dependency('luksmeta', version: '>=8', required: false)
  3. libcryptsetup = dependency('libcryptsetup', version: '>=2.0.4', required: false)
  4. if libcryptsetup.found()
  5. luksmeta_data.set('OLD_CRYPTSETUP', '0')
  6. else
  7. libcryptsetup = dependency('libcryptsetup', version: '>=2.0.2', required: false)
  8. if libcryptsetup.found()
  9. luksmeta_data.set('OLD_CRYPTSETUP', '1')
  10. warning('Old version of cryptsetup found, forcing use of luksmeta')
  11. endif
  12. endif
  13. libcryptsetup_ext_token_id = dependency('libcryptsetup', version: '>=2.6.0', required: false)
  14. if libcryptsetup_ext_token_id.found()
  15. luksmeta_data.set('OLD_CRYPTSETUP_EXISTING_TOKEN_ID', '0')
  16. message('cryptsetup version supports existing token id')
  17. else
  18. luksmeta_data.set('OLD_CRYPTSETUP_EXISTING_TOKEN_ID', '1')
  19. warning('cryptsetup version does not support existing token id')
  20. endif
  21. clevis_luks_common_functions = configure_file(
  22. input: 'clevis-luks-common-functions.in',
  23. output: 'clevis-luks-common-functions',
  24. configuration: luksmeta_data
  25. )
  26. clevis_luks_unbind = configure_file(input: 'clevis-luks-unbind.in',
  27. output: 'clevis-luks-unbind',
  28. configuration: luksmeta_data)
  29. if libcryptsetup.found() and luksmeta.found()
  30. subdir('systemd')
  31. # systemd should come before dracut in order to set up
  32. # variables like SYSTEMD_REPLY_PASS.
  33. subdir('dracut')
  34. subdir('udisks2')
  35. bins += clevis_luks_unbind
  36. mans += join_paths(meson.current_source_dir(), 'clevis-luks-unbind.1')
  37. bins += join_paths(meson.current_source_dir(), 'clevis-luks-bind')
  38. mans += join_paths(meson.current_source_dir(), 'clevis-luks-bind.1')
  39. mans += join_paths(meson.current_source_dir(), 'clevis-luks-unlockers.7')
  40. bins += clevis_luks_common_functions
  41. bins += join_paths(meson.current_source_dir(), 'clevis-luks-list')
  42. mans += join_paths(meson.current_source_dir(), 'clevis-luks-list.1')
  43. bins += join_paths(meson.current_source_dir(), 'clevis-luks-unlock')
  44. mans += join_paths(meson.current_source_dir(), 'clevis-luks-unlock.1')
  45. bins += join_paths(meson.current_source_dir(), 'clevis-luks-regen')
  46. mans += join_paths(meson.current_source_dir(), 'clevis-luks-regen.1')
  47. bins += join_paths(meson.current_source_dir(), 'clevis-luks-report')
  48. mans += join_paths(meson.current_source_dir(), 'clevis-luks-report.1')
  49. bins += join_paths(meson.current_source_dir(), 'clevis-luks-edit')
  50. mans += join_paths(meson.current_source_dir(), 'clevis-luks-edit.1')
  51. bins += join_paths(meson.current_source_dir(), 'clevis-luks-pass')
  52. mans += join_paths(meson.current_source_dir(), 'clevis-luks-pass.1')
  53. else
  54. warning('Will not install LUKS support due to missing dependencies!')
  55. endif
  56. # Tests.
  57. subdir('tests')