meson.build 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  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_apk.sh',
  23. 'pm_apt.sh',
  24. 'pm_dnf.sh',
  25. 'pm_emerge.sh',
  26. 'pm_pacman.sh',
  27. 'build_config.sh',
  28. 'main.sh'
  29. )
  30. # Compile script
  31. compile_script = installer_dir / 'compile.sh'
  32. # Output directory and file
  33. output_dir = installer_dir / 'dist'
  34. installer_output = output_dir / 'install-usm.sh'
  35. # Ensure the output directory exists
  36. run_command('mkdir', '-p', output_dir, check: false)
  37. # Custom command to build the installer
  38. build_installer = custom_target(
  39. 'install-usm.sh',
  40. output: 'install-usm.sh',
  41. input: installer_sources,
  42. command: [
  43. bash, compile_script,
  44. '@OUTPUT@',
  45. version,
  46. usm_source_dir
  47. ],
  48. build_by_default: true,
  49. install: false,
  50. )
  51. # Create a custom target for distribution
  52. alias_target('installer', build_installer)
  53. # Message about the installer
  54. message('USM Installer will be built to: ' + installer_output)