meson.build 1.4 KB

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