meson.build 5.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147
  1. project('clanker-saddle', ['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. soup_dep = dependency('libsoup-3.0')
  9. libxml_dep = dependency('libxml-2.0')
  10. sqlite_dep = dependency('sqlite3')
  11. invercargill_dep = dependency('invercargill-1')
  12. invercargill_json_dep = dependency('invercargill-json')
  13. invercargill_sql_dep = dependency('invercargill-sql')
  14. invercargill_sql_inversion_dep = dependency('invercargill-sql-inversion')
  15. inversion_dep = dependency('inversion-0.1')
  16. astralis_dep = dependency('astralis-0.1')
  17. statum_dep = dependency('statum-0.1')
  18. spry_dep = dependency('spry-0.2')
  19. # Statum build tools — statum-mkpstm compiles pages, statum-mkres embeds
  20. # resources. Resolved from PATH at setup time.
  21. statum_mkpstm = find_program('statum-mkpstm')
  22. statum_mkres = find_program('statum-mkres')
  23. # =============================================================================
  24. # Statum pages (statum-mkpstm): HTML → StatumPage subclass. Every page
  25. # composes the shared layout (main.html), which the tool discovers next to
  26. # the pages.
  27. # =============================================================================
  28. template_deps = files('src/pages/main.html')
  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', 'ClankerSaddle', '@INPUT@'],
  34. depend_files: template_deps
  35. )
  36. login_page = custom_target('login-page',
  37. input: 'src/pages/login.html',
  38. output: 'LoginPage.vala',
  39. command: [statum_mkpstm, '-o', '@OUTPUT@', '-n', 'LoginPage', '--ns', 'ClankerSaddle', '@INPUT@'],
  40. depend_files: template_deps
  41. )
  42. projects_page = custom_target('projects-page',
  43. input: 'src/pages/projects.html',
  44. output: 'ProjectsPage.vala',
  45. command: [statum_mkpstm, '-o', '@OUTPUT@', '-n', 'ProjectsPage', '--ns', 'ClankerSaddle', '@INPUT@'],
  46. depend_files: template_deps
  47. )
  48. project_detail_page = custom_target('project-detail-page',
  49. input: 'src/pages/project_detail.html',
  50. output: 'ProjectDetailPage.vala',
  51. command: [statum_mkpstm, '-o', '@OUTPUT@', '-n', 'ProjectDetailPage', '--ns', 'ClankerSaddle', '@INPUT@'],
  52. depend_files: template_deps
  53. )
  54. tasks_page = custom_target('tasks-page',
  55. input: 'src/pages/tasks.html',
  56. output: 'TasksPage.vala',
  57. command: [statum_mkpstm, '-o', '@OUTPUT@', '-n', 'TasksPage', '--ns', 'ClankerSaddle', '@INPUT@'],
  58. depend_files: template_deps
  59. )
  60. task_detail_page = custom_target('task-detail-page',
  61. input: 'src/pages/task_detail.html',
  62. output: 'TaskDetailPage.vala',
  63. command: [statum_mkpstm, '-o', '@OUTPUT@', '-n', 'TaskDetailPage', '--ns', 'ClankerSaddle', '@INPUT@'],
  64. depend_files: template_deps
  65. )
  66. task_terminal_page = custom_target('task-terminal-page',
  67. input: 'src/pages/task_terminal.html',
  68. output: 'TaskTerminalPage.vala',
  69. command: [statum_mkpstm, '-o', '@OUTPUT@', '-n', 'TaskTerminalPage', '--ns', 'ClankerSaddle', '@INPUT@'],
  70. depend_files: template_deps
  71. )
  72. saddles_page = custom_target('saddles-page',
  73. input: 'src/pages/saddles.html',
  74. output: 'SaddlesPage.vala',
  75. command: [statum_mkpstm, '-o', '@OUTPUT@', '-n', 'SaddlesPage', '--ns', 'ClankerSaddle', '@INPUT@'],
  76. depend_files: template_deps
  77. )
  78. # spry:pages-end
  79. # =============================================================================
  80. # Sources
  81. # =============================================================================
  82. app_sources = files(
  83. # spry:sources-begin
  84. 'src/main.vala',
  85. 'src/Json.vala',
  86. 'src/Data/Entities.vala',
  87. 'src/Data/Migrations/M0001_Initial.vala',
  88. 'src/Services/ProjectService.vala',
  89. 'src/Services/TaskService.vala',
  90. 'src/Services/SaddleService.vala',
  91. 'src/Services/SaddlePollState.vala',
  92. 'src/Services/Dispatcher.vala',
  93. 'src/Api/SaddleApi.vala',
  94. 'src/actions/Forms.vala',
  95. 'src/actions/LoginAction.vala',
  96. 'src/actions/ProjectActions.vala',
  97. 'src/actions/TaskActions.vala',
  98. 'src/actions/SaddleActions.vala',
  99. 'src/entrypoints/HomeEntrypoint.vala',
  100. 'src/entrypoints/LoginEntrypoint.vala',
  101. 'src/entrypoints/ProjectsEntrypoint.vala',
  102. 'src/entrypoints/TasksEntrypoint.vala',
  103. 'src/entrypoints/TaskDetailEntrypoint.vala',
  104. 'src/entrypoints/TaskTerminalEntrypoint.vala',
  105. 'src/entrypoints/SaddlesEntrypoint.vala',
  106. # spry:sources-end
  107. )
  108. app_generated = [
  109. # spry:generated-begin
  110. home_page,
  111. login_page,
  112. projects_page,
  113. project_detail_page,
  114. tasks_page,
  115. task_detail_page,
  116. task_terminal_page,
  117. saddles_page,
  118. # spry:generated-end
  119. ]
  120. executable('clanker-saddle',
  121. app_sources + app_generated,
  122. dependencies: [
  123. glib_dep,
  124. gobject_dep,
  125. gio_dep,
  126. json_glib_dep,
  127. soup_dep,
  128. libxml_dep,
  129. sqlite_dep,
  130. invercargill_dep,
  131. invercargill_json_dep,
  132. invercargill_sql_dep,
  133. invercargill_sql_inversion_dep,
  134. inversion_dep,
  135. astralis_dep,
  136. statum_dep,
  137. spry_dep,
  138. ],
  139. install: true
  140. )