meson.build 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108
  1. project('usm-web', ['c', 'vala'],
  2. version: '0.1',
  3. )
  4. glib_dep = dependency('glib-2.0')
  5. gobject_dep = dependency('gobject-2.0')
  6. gio_dep = dependency('gio-2.0')
  7. json_glib_dep = dependency('json-glib-1.0')
  8. libxml_dep = dependency('libxml-2.0')
  9. libarchive_dep = dependency('libarchive')
  10. invercargill_dep = dependency('invercargill-1')
  11. invercargill_json_dep = dependency('invercargill-json')
  12. inversion_dep = dependency('inversion-0.1')
  13. astralis_dep = dependency('astralis-0.1')
  14. statum_dep = dependency('statum-0.1')
  15. usm_dep = dependency('usm-0.1')
  16. # Statum build tools — statum-mkpstm compiles pages, statum-mkres embeds
  17. # resources. Resolved from PATH at setup time.
  18. statum_mkpstm = find_program('statum-mkpstm')
  19. statum_mkres = find_program('statum-mkres')
  20. # spry:resources-begin
  21. main_css_resource = custom_target('main-css-resource',
  22. input: 'src/Static/main.css',
  23. output: 'MainCssResource.vala',
  24. command: [statum_mkres, '-o', '@OUTPUT@', '-n', 'main.css',
  25. '--class-name', 'MainCssResource', '--ns', 'UsmWeb',
  26. '-c', 'text/css', '@INPUT@']
  27. )
  28. # spry:resources-end
  29. # spry:pages-begin
  30. home_page = custom_target('home-page',
  31. input: 'src/pages/home.html',
  32. output: 'HomePage.vala',
  33. command: [statum_mkpstm, '-o', '@OUTPUT@', '-n', 'HomePage', '--ns', 'UsmWeb', '@INPUT@'],
  34. depend_files: files('src/pages/main.html')
  35. )
  36. repo_browse_page = custom_target('repo-browse-page',
  37. input: 'src/pages/repo.html',
  38. output: 'RepoBrowsePage.vala',
  39. command: [statum_mkpstm, '-o', '@OUTPUT@', '-n', 'RepoBrowsePage', '--ns', 'UsmWeb', '@INPUT@'],
  40. depend_files: files('src/pages/main.html')
  41. )
  42. package_detail_page = custom_target('package-detail-page',
  43. input: 'src/pages/package.html',
  44. output: 'PackageDetailPage.vala',
  45. command: [statum_mkpstm, '-o', '@OUTPUT@', '-n', 'PackageDetailPage', '--ns', 'UsmWeb', '@INPUT@'],
  46. depend_files: files('src/pages/main.html')
  47. )
  48. artifact_detail_page = custom_target('artifact-detail-page',
  49. input: 'src/pages/artifact.html',
  50. output: 'ArtifactDetailPage.vala',
  51. command: [statum_mkpstm, '-o', '@OUTPUT@', '-n', 'ArtifactDetailPage', '--ns', 'UsmWeb', '@INPUT@'],
  52. depend_files: files('src/pages/main.html')
  53. )
  54. # spry:pages-end
  55. app_sources = files(
  56. # spry:sources-begin
  57. 'src/main.vala',
  58. 'src/UsmWebConfig.vala',
  59. 'src/RepositoryService.vala',
  60. 'src/DerivedBase.vala',
  61. 'src/PackagesState.vala',
  62. 'src/entrypoints/HomeEntrypoint.vala',
  63. 'src/entrypoints/RepoBrowseEntrypoint.vala',
  64. 'src/entrypoints/PackageDetailEntrypoint.vala',
  65. 'src/entrypoints/ArtifactDetailEntrypoint.vala',
  66. 'src/actions/SearchPackagesAction.vala',
  67. 'src/endpoints/PackagesListingEndpoint.vala',
  68. 'src/endpoints/ArtifactsListingEndpoint.vala',
  69. 'src/endpoints/RepositoryDefinitionEndpoint.vala',
  70. 'src/endpoints/DcbaDefinitionEndpoint.vala',
  71. 'src/endpoints/PackageDownloadEndpoint.vala',
  72. 'src/endpoints/InstallerScriptEndpoint.vala',
  73. # spry:sources-end
  74. )
  75. app_generated = [
  76. # spry:generated-begin
  77. main_css_resource,
  78. home_page,
  79. repo_browse_page,
  80. package_detail_page,
  81. artifact_detail_page,
  82. # spry:generated-end
  83. ]
  84. executable('usm-web',
  85. app_sources + app_generated,
  86. dependencies: [
  87. glib_dep,
  88. gobject_dep,
  89. gio_dep,
  90. json_glib_dep,
  91. libxml_dep,
  92. libarchive_dep,
  93. invercargill_dep,
  94. invercargill_json_dep,
  95. inversion_dep,
  96. astralis_dep,
  97. statum_dep,
  98. usm_dep,
  99. ],
  100. install: true
  101. )