meson.build 1.5 KB

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