| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196 |
- project('clanker-saddle', ['c', 'vala'],
- version: '0.1',
- )
- glib_dep = dependency('glib-2.0')
- gobject_dep = dependency('gobject-2.0')
- gio_dep = dependency('gio-2.0')
- json_glib_dep = dependency('json-glib-1.0')
- soup_dep = dependency('libsoup-3.0')
- libxml_dep = dependency('libxml-2.0')
- sqlite_dep = dependency('sqlite3')
- invercargill_dep = dependency('invercargill-1')
- invercargill_json_dep = dependency('invercargill-json')
- invercargill_sql_dep = dependency('invercargill-sql')
- invercargill_sql_inversion_dep = dependency('invercargill-sql-inversion')
- inversion_dep = dependency('inversion-0.1')
- astralis_dep = dependency('astralis-0.1')
- statum_dep = dependency('statum-0.1')
- spry_dep = dependency('spry-0.2')
- # Statum build tools — statum-mkpstm compiles pages, statum-mkres embeds
- # resources. Resolved from PATH at setup time.
- statum_mkpstm = find_program('statum-mkpstm')
- statum_mkres = find_program('statum-mkres')
- # =============================================================================
- # Statum pages (statum-mkpstm): HTML → StatumPage subclass. Every page
- # composes the shared layout (main.html), which the tool discovers next to
- # the pages.
- # =============================================================================
- template_deps = files('src/pages/main.html')
- # spry:pages-begin
- home_page = custom_target('home-page',
- input: 'src/pages/home.html',
- output: 'HomePage.vala',
- command: [statum_mkpstm, '-o', '@OUTPUT@', '-n', 'HomePage', '--ns', 'ClankerSaddle', '@INPUT@'],
- depend_files: template_deps
- )
- login_page = custom_target('login-page',
- input: 'src/pages/login.html',
- output: 'LoginPage.vala',
- command: [statum_mkpstm, '-o', '@OUTPUT@', '-n', 'LoginPage', '--ns', 'ClankerSaddle', '@INPUT@'],
- depend_files: template_deps
- )
- projects_page = custom_target('projects-page',
- input: 'src/pages/projects.html',
- output: 'ProjectsPage.vala',
- command: [statum_mkpstm, '-o', '@OUTPUT@', '-n', 'ProjectsPage', '--ns', 'ClankerSaddle', '@INPUT@'],
- depend_files: template_deps
- )
- project_detail_page = custom_target('project-detail-page',
- input: 'src/pages/project_detail.html',
- output: 'ProjectDetailPage.vala',
- command: [statum_mkpstm, '-o', '@OUTPUT@', '-n', 'ProjectDetailPage', '--ns', 'ClankerSaddle', '@INPUT@'],
- depend_files: template_deps
- )
- tasks_page = custom_target('tasks-page',
- input: 'src/pages/tasks.html',
- output: 'TasksPage.vala',
- command: [statum_mkpstm, '-o', '@OUTPUT@', '-n', 'TasksPage', '--ns', 'ClankerSaddle', '@INPUT@'],
- depend_files: template_deps
- )
- task_detail_page = custom_target('task-detail-page',
- input: 'src/pages/task_detail.html',
- output: 'TaskDetailPage.vala',
- command: [statum_mkpstm, '-o', '@OUTPUT@', '-n', 'TaskDetailPage', '--ns', 'ClankerSaddle', '@INPUT@'],
- depend_files: template_deps
- )
- task_terminal_page = custom_target('task-terminal-page',
- input: 'src/pages/task_terminal.html',
- output: 'TaskTerminalPage.vala',
- command: [statum_mkpstm, '-o', '@OUTPUT@', '-n', 'TaskTerminalPage', '--ns', 'ClankerSaddle', '@INPUT@'],
- depend_files: template_deps
- )
- saddles_page = custom_target('saddles-page',
- input: 'src/pages/saddles.html',
- output: 'SaddlesPage.vala',
- command: [statum_mkpstm, '-o', '@OUTPUT@', '-n', 'SaddlesPage', '--ns', 'ClankerSaddle', '@INPUT@'],
- depend_files: template_deps
- )
- rules_page = custom_target('rules-page',
- input: 'src/pages/rules.html',
- output: 'RulesPage.vala',
- command: [statum_mkpstm, '-o', '@OUTPUT@', '-n', 'RulesPage', '--ns', 'ClankerSaddle', '@INPUT@'],
- depend_files: template_deps
- )
- # spry:pages-end
- # =============================================================================
- # Embedded resources (statum-mkres): the stylesheet precompressed at build
- # time and served from /_statum/resource/app.css.
- # =============================================================================
- app_css = custom_target('app-css',
- input: 'src/pages/app.css',
- output: 'AppCss.vala',
- command: [statum_mkres, '-o', '@OUTPUT@', '-n', 'app.css', '--class-name', 'AppCss',
- '--ns', 'ClankerSaddle', '-c', 'text/css', '@INPUT@'],
- )
- # =============================================================================
- # Sources
- # =============================================================================
- app_sources = files(
- # spry:sources-begin
- 'src/main.vala',
- 'src/Json.vala',
- 'src/Data/Entities.vala',
- 'src/Data/Migrations/M0001_Initial.vala',
- 'src/Data/Migrations/M0002_Part2.vala',
- 'src/Data/Migrations/M0003_Rules.vala',
- 'src/Data/Migrations/M0004_ProjectNotes.vala',
- 'src/Data/Migrations/M0005_RawLog.vala',
- 'src/Data/Migrations/M0006_Capabilities.vala',
- 'src/Data/Migrations/M0007_SuspendedAt.vala',
- 'src/Data/Migrations/M0008_AutoApprove.vala',
- 'src/Data/Migrations/M0009_GitIdentity.vala',
- 'src/Data/Migrations/M0010_SaddleToken.vala',
- 'src/Services/ProjectService.vala',
- 'src/Services/TaskService.vala',
- 'src/Services/SaddleService.vala',
- 'src/Services/SaddlePollState.vala',
- 'src/Services/AllocationService.vala',
- 'src/Services/StatePulse.vala',
- 'src/Services/Dispatcher.vala',
- 'src/Services/RuleService.vala',
- 'src/Services/CapabilityService.vala',
- 'src/Services/SubtaskEventQueue.vala',
- 'src/Services/TimelineService.vala',
- 'src/Api/SaddleApi.vala',
- 'src/Api/TerminalSse.vala',
- 'src/actions/Forms.vala',
- 'src/actions/LoginAction.vala',
- 'src/actions/ProjectActions.vala',
- 'src/actions/TaskActions.vala',
- 'src/actions/DashboardActions.vala',
- 'src/actions/SaddleActions.vala',
- 'src/actions/RuleActions.vala',
- 'src/actions/CapabilityActions.vala',
- 'src/entrypoints/HomeEntrypoint.vala',
- 'src/entrypoints/LoginEntrypoint.vala',
- 'src/entrypoints/ProjectsEntrypoint.vala',
- 'src/entrypoints/TasksEntrypoint.vala',
- 'src/entrypoints/TaskDetailEntrypoint.vala',
- 'src/entrypoints/TaskTerminalEntrypoint.vala',
- 'src/entrypoints/SaddlesEntrypoint.vala',
- 'src/entrypoints/RulesEntrypoint.vala',
- # spry:sources-end
- )
- app_generated = [
- # spry:generated-begin
- home_page,
- login_page,
- projects_page,
- project_detail_page,
- tasks_page,
- task_detail_page,
- task_terminal_page,
- saddles_page,
- rules_page,
- # spry:generated-end
- ]
- clanker_saddle_exe = executable('clanker-saddle',
- app_sources + app_generated + [app_css],
- dependencies: [
- glib_dep,
- gobject_dep,
- gio_dep,
- json_glib_dep,
- soup_dep,
- libxml_dep,
- sqlite_dep,
- invercargill_dep,
- invercargill_json_dep,
- invercargill_sql_dep,
- invercargill_sql_inversion_dep,
- inversion_dep,
- astralis_dep,
- statum_dep,
- spry_dep,
- ],
- install: true
- )
- # =============================================================================
- # Tests: test/web_stack_test.py is self-contained (spawns the app binary in a
- # scratch dir plus an in-process fake saddle daemon) and asserts the web-stack
- # wire contract features. The built binary is passed as its first argument.
- # =============================================================================
- python_test = import('python').find_installation('python3')
- test('web-stack', python_test,
- args: [files('test/web_stack_test.py'), clanker_saddle_exe],
- timeout: 1800,
- )
|