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 ) # spry:pages-end # ============================================================================= # Sources # ============================================================================= app_sources = files( # spry:sources-begin 'src/main.vala', 'src/Json.vala', 'src/Data/Entities.vala', 'src/Data/Migrations/M0001_Initial.vala', 'src/Services/ProjectService.vala', 'src/Services/TaskService.vala', 'src/Services/SaddleService.vala', 'src/Services/SaddlePollState.vala', 'src/Services/Dispatcher.vala', 'src/Api/SaddleApi.vala', 'src/actions/Forms.vala', 'src/actions/LoginAction.vala', 'src/actions/ProjectActions.vala', 'src/actions/TaskActions.vala', 'src/actions/SaddleActions.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', # 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, # spry:generated-end ] executable('clanker-saddle', app_sources + app_generated, 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 )