From: Marc-André Lureau <marcandre.lur...@redhat.com> Signed-off-by: Marc-André Lureau <marcandre.lur...@redhat.com> --- Cargo.lock | 4 ++++ Cargo.toml | 1 + qga/Cargo.toml | 9 +++++++++ qga/lib.rs | 0 qga/meson.build | 20 +++++++++++++++++++- 5 files changed, 33 insertions(+), 1 deletion(-) create mode 100644 qga/Cargo.toml create mode 100644 qga/lib.rs
diff --git a/Cargo.lock b/Cargo.lock index f2cd0ee96e..2f5b202605 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -68,3 +68,7 @@ version = "0.0.1" dependencies = [ "common", ] + +[[package]] +name = "qga" +version = "0.1.0" diff --git a/Cargo.toml b/Cargo.toml index f4a078e62d..3db0646413 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,5 +1,6 @@ [workspace] members = [ + "qga", "rust/common", "tests", ] diff --git a/qga/Cargo.toml b/qga/Cargo.toml new file mode 100644 index 0000000000..a3bffd1fec --- /dev/null +++ b/qga/Cargo.toml @@ -0,0 +1,9 @@ +[package] +name = "qga" +version = "0.1.0" +edition = "2018" +publish = false + +[lib] +path = "lib.rs" +crate-type = ["staticlib"] diff --git a/qga/lib.rs b/qga/lib.rs new file mode 100644 index 0000000000..e69de29bb2 diff --git a/qga/meson.build b/qga/meson.build index 1b050d8c53..d272892ced 100644 --- a/qga/meson.build +++ b/qga/meson.build @@ -54,9 +54,27 @@ qga_ss.add(when: 'CONFIG_WIN32', if_true: files( qga_ss = qga_ss.apply(config_host, strict: false) +qga_rs = declare_dependency() +if with_rust + cargo_qga = custom_target('cargo-qga', + build_by_default: true, + output: ['libqga.args', 'libqga.a'], + build_always_stale: true, + command: [cargo_wrapper, + meson.current_build_dir(), + meson.current_source_dir(), + meson.build_root(), + rs_build_type, + rust_target_triple, + 'build-lib']) + qga_rs = declare_dependency( + link_args: '@' + cargo_qga[0].full_path(), + sources: cargo_qga) +endif + qga = executable('qemu-ga', qga_ss.sources(), link_args: config_host['LIBS_QGA'].split(), - dependencies: [qemuutil, libudev], + dependencies: [qemuutil, libudev, qga_rs], install: true) all_qga = [qga] -- 2.33.0.113.g6c40894d24