meson.build 2.7 KB

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