meson.build 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. # meson.build - USM Installer build configuration
  2. # This is a standalone project for building the USM installer
  3. project('usm-installer', 'c',
  4. version: '0.1.0',
  5. default_options: ['warning_level=1']
  6. )
  7. installer_dir = meson.current_source_dir()
  8. project_root = installer_dir / '..'
  9. usm_source_dir = project_root / 'src'
  10. # Version from project
  11. version = meson.project_version()
  12. # Find required programs
  13. bash = find_program('bash', required: true)
  14. tar = find_program('tar', required: true)
  15. xz = find_program('xz', required: true)
  16. git = find_program('git', required: true)
  17. # Installer source files
  18. installer_sources = files(
  19. 'utils.sh',
  20. 'ui.sh',
  21. 'pm_base.sh',
  22. 'pm_apt.sh',
  23. 'pm_dnf.sh',
  24. 'build_config.sh',
  25. 'main.sh'
  26. )
  27. # Compile script
  28. compile_script = installer_dir / 'compile.sh'
  29. # Output directory and file
  30. output_dir = installer_dir / 'dist'
  31. installer_output = output_dir / 'install-usm.sh'
  32. # Ensure the output directory exists
  33. run_command('mkdir', '-p', output_dir, check: false)
  34. # Custom command to build the installer
  35. build_installer = custom_target(
  36. 'install-usm.sh',
  37. output: 'install-usm.sh',
  38. input: installer_sources,
  39. command: [
  40. bash, compile_script,
  41. '@OUTPUT@',
  42. version,
  43. usm_source_dir
  44. ],
  45. build_by_default: true,
  46. install: false,
  47. )
  48. # Create a custom target for distribution
  49. alias_target('installer', build_installer)
  50. # Message about the installer
  51. message('USM Installer will be built to: ' + installer_output)