sources = files( 'Core/HttpContext.vala', 'Core/HttpValues.vala', 'Core/HttpResult.vala', 'Core/AsyncInput.vala', 'Core/AsyncOutput.vala', 'Core/Pipeline.vala', 'Core/WebApplication.vala', 'Core/WebConfig.vala', 'Core/WebConfigLoader.vala', 'Core/WebConfigSection.vala', 'Core/WebConfigError.vala', 'Core/ConfigMerger.vala', 'Core/ServerLimits.vala', 'Data/FormDataParser.vala', 'Components/EndpointRouter.vala', 'Components/SecurityHeadersComponent.vala', 'Components/Compressor.vala', 'Components/GzipCompressor.vala', 'Components/BrotliCompressor.vala', 'Components/ZstdCompressor.vala', 'Endpoints/Endpoint.vala', 'Endpoints/FilesystemResource.vala', 'Endpoints/FastResource.vala', 'Endpoints/SseEndpoint.vala', 'Server/Server.vala', 'Server/SocketMonitor.vala', 'Server/RequestContext.vala', 'Server/ResponseContext.vala', 'Server/ServerInput.vala', 'Server/ServerOutput.vala', 'Markup/MarkupDocument.vala', 'Markup/MarkupNode.vala', 'Markup/MarkupError.vala', 'Markup/MarkupTemplate.vala', 'Markup/XPathResultEnumerable.vala', 'Markup/ChildNodesEnumerable.vala', ) # The API version rides every artifact name (libastralis-0.1.so, # astralis-0.1.vapi, ...); the project version is the release version and # only reaches the pkg-config Version: field (usm checks it against the # manifest version). api_version = '0.1' release_version = meson.project_version() libastralis = shared_library('astralis-@0@'.format(api_version), sources, dependencies: [glib_dep, gobject_dep, mhd_dep, gio_dep, gio_unix_dep, invercargill_dep, invercargill_json_dep, json_glib_dep, zlib_dep, brotli_dep, zstd_dep, inversion_dep, libxml_dep], install: true, vala_gir: 'astralis-@0@.gir'.format(api_version), install_dir: [true, true, true, true] ) pkg = import('pkgconfig') pkg.generate(libastralis, version : release_version, name : 'astralis-@0@'.format(api_version)) g_ir_compiler = find_program('g-ir-compiler') custom_target('astralis typelib', command: [g_ir_compiler, '--shared-library=libastralis-@0@.so'.format(api_version), '--output', '@OUTPUT@', meson.current_build_dir() / 'astralis-@0@.gir'.format(api_version)], output: 'libastralis-@0@.typelib'.format(api_version), depends: libastralis, install: true, install_dir: get_option('libdir') / 'girepository-1.0') astralis_dep = declare_dependency( link_with: libastralis, include_directories: include_directories('.'), dependencies: [glib_dep, gobject_dep, invercargill_dep, invercargill_json_dep, mhd_dep, json_glib_dep, brotli_dep, zstd_dep, inversion_dep, libxml_dep] # Users of astralis need glib, gobject, invercargill, mhd, brotli, and zstd )