diff options
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@', + ], +) |