project('usm-web', ['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') libxml_dep = dependency('libxml-2.0') libarchive_dep = dependency('libarchive') invercargill_dep = dependency('invercargill-1') invercargill_json_dep = dependency('invercargill-json') inversion_dep = dependency('inversion-0.1') astralis_dep = dependency('astralis-0.1') statum_dep = dependency('statum-0.1') usm_dep = dependency('usm-0.1') # 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') # spry:resources-begin main_css_resource = custom_target('main-css-resource', input: 'src/Static/main.css', output: 'MainCssResource.vala', command: [statum_mkres, '-o', '@OUTPUT@', '-n', 'main.css', '--class-name', 'MainCssResource', '--ns', 'UsmWeb', '-c', 'text/css', '@INPUT@'] ) # spry:resources-end # 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', 'UsmWeb', '@INPUT@'], depend_files: files('src/pages/main.html') ) repo_browse_page = custom_target('repo-browse-page', input: 'src/pages/repo.html', output: 'RepoBrowsePage.vala', command: [statum_mkpstm, '-o', '@OUTPUT@', '-n', 'RepoBrowsePage', '--ns', 'UsmWeb', '@INPUT@'], depend_files: files('src/pages/main.html') ) package_detail_page = custom_target('package-detail-page', input: 'src/pages/package.html', output: 'PackageDetailPage.vala', command: [statum_mkpstm, '-o', '@OUTPUT@', '-n', 'PackageDetailPage', '--ns', 'UsmWeb', '@INPUT@'], depend_files: files('src/pages/main.html') ) # spry:pages-end app_sources = files( # spry:sources-begin 'src/main.vala', 'src/UsmWebConfig.vala', 'src/RepositoryService.vala', 'src/DerivedBase.vala', 'src/PackagesState.vala', 'src/entrypoints/HomeEntrypoint.vala', 'src/entrypoints/RepoBrowseEntrypoint.vala', 'src/entrypoints/PackageDetailEntrypoint.vala', 'src/actions/SearchPackagesAction.vala', 'src/endpoints/PackagesListingEndpoint.vala', 'src/endpoints/RepositoryDefinitionEndpoint.vala', 'src/endpoints/PackageDownloadEndpoint.vala', 'src/endpoints/InstallerScriptEndpoint.vala', # spry:sources-end ) app_generated = [ # spry:generated-begin main_css_resource, home_page, repo_browse_page, package_detail_page, # spry:generated-end ] executable('usm-web', app_sources + app_generated, dependencies: [ glib_dep, gobject_dep, gio_dep, json_glib_dep, libxml_dep, libarchive_dep, invercargill_dep, invercargill_json_dep, inversion_dep, astralis_dep, statum_dep, usm_dep, ], install: true )