diff options
| author | Ruben Beltran del Rio <jj@r.bdr.sh> | 2026-03-23 20:52:55 +0100 |
|---|---|---|
| committer | Rubén Beltrán del Río <jj@r.bdr.sh> | 2026-04-05 00:31:21 +0200 |
| commit | ef32d65ac1852da581ac75d20f903dbcb2d0b5cd (patch) | |
| tree | 98cdb79c471babd906368d23171fe10168c18062 /src/meson.build | |
| parent | dae5942e2ad1ac59f6217ad0f8e0bd630d0b4747 (diff) | |
Use meson as a build system
Diffstat (limited to 'src/meson.build')
| -rw-r--r-- | src/meson.build | 49 |
1 files changed, 49 insertions, 0 deletions
diff --git a/src/meson.build b/src/meson.build new file mode 100644 index 0000000..6ce0ee9 --- /dev/null +++ b/src/meson.build @@ -0,0 +1,49 @@ +source_configuration = configuration_data() +source_configuration.set_quoted('APP_ID', application_id) +source_configuration.set_quoted('GETTEXT_DOMAIN', gettext_domain) +configure_file( + input: 'info.rs.in', + output: '@BASENAME@', + configuration: source_configuration +) + +run_command( + 'cp', + meson.project_build_root() / 'src' / 'info.rs', + meson.project_source_root() / 'src' / 'info.rs', + check: true, +) + +cargo_options = ['--manifest-path', meson.project_source_root() / 'Cargo.toml'] +cargo_options += ['--target-dir', meson.project_build_root() / 'src'] +cargo_env = ['CARGO_HOME=' + meson.project_build_root() / 'cargo-home'] + +if get_option('profile') == 'default' + cargo_options += ['--release'] + rust_target = 'release' + message('Building in release mode') +else + rust_target = 'debug' + message('Building in debug mode') +endif + +custom_target( + 'cargo-build', + build_by_default: true, + build_always_stale: true, + output: meson.project_name(), + console: true, + install: true, + install_dir: bindir, + command: [ + 'env', + cargo_env, + cargo, + 'build', + cargo_options, + '&&', + 'cp', + 'src' / rust_target / meson.project_name(), + '@OUTPUT@', + ], +) |