42 lines
1013 B
Meson
42 lines
1013 B
Meson
libgit_rs_sources = [
|
|
'lib.rs',
|
|
'varint.rs',
|
|
]
|
|
|
|
# Unfortunately we must use a wrapper command to move the output file into the
|
|
# current build directory. This can fixed once `cargo build --artifact-dir`
|
|
# stabilizes. See https://github.com/rust-lang/cargo/issues/6790 for that
|
|
# effort.
|
|
cargo_command = [
|
|
shell,
|
|
meson.current_source_dir() / 'cargo-meson.sh',
|
|
meson.project_source_root(),
|
|
meson.current_build_dir(),
|
|
]
|
|
if get_option('buildtype') == 'release'
|
|
cargo_command += '--release'
|
|
endif
|
|
|
|
libgit_rs = custom_target('git_rs',
|
|
input: libgit_rs_sources + [
|
|
meson.project_source_root() / 'Cargo.toml',
|
|
],
|
|
output: 'libgitcore.a',
|
|
command: cargo_command,
|
|
)
|
|
libgit_dependencies += declare_dependency(link_with: libgit_rs)
|
|
|
|
if get_option('tests')
|
|
test('rust', cargo,
|
|
args: [
|
|
'test',
|
|
'--manifest-path',
|
|
meson.project_source_root() / 'Cargo.toml',
|
|
'--target-dir',
|
|
meson.current_build_dir() / 'target',
|
|
],
|
|
timeout: 0,
|
|
protocol: 'rust',
|
|
)
|
|
endif
|