Signed-off-by: Zhao Liu <zhao1....@intel.com> --- scripts/archive-source.sh | 3 +- scripts/make-release | 3 +- subprojects/.gitignore | 1 + .../packagefiles/winapi-0.3-rs/meson.build | 46 +++++++++++++++++++ subprojects/winapi-0.3-rs.wrap | 10 ++++ 5 files changed, 61 insertions(+), 2 deletions(-) create mode 100644 subprojects/packagefiles/winapi-0.3-rs/meson.build create mode 100644 subprojects/winapi-0.3-rs.wrap
diff --git a/scripts/archive-source.sh b/scripts/archive-source.sh index 4caf6078f1ac..99d0d898d010 100755 --- a/scripts/archive-source.sh +++ b/scripts/archive-source.sh @@ -32,7 +32,8 @@ subprojects="keycodemapdb libvfio-user berkeley-softfloat-3 libc-0.2-rs proc-macro2-1-rs proc-macro-error-1-rs proc-macro-error-attr-1-rs quote-1-rs syn-2-rs thiserror-1-rs thiserror-impl-1-rs unicode-ident-1-rs - winapi-i686-pc-windows-gnu-0.4-rs winapi-x86_64-pc-windows-gnu-0.4-rs" + winapi-0.3-rs winapi-i686-pc-windows-gnu-0.4-rs + winapi-x86_64-pc-windows-gnu-0.4-rs" sub_deinit="" function cleanup() { diff --git a/scripts/make-release b/scripts/make-release index eb8b2446ad3a..c53dfa0a7f4f 100755 --- a/scripts/make-release +++ b/scripts/make-release @@ -45,7 +45,8 @@ SUBPROJECTS="libvfio-user keycodemapdb berkeley-softfloat-3 libc-0.2-rs proc-macro2-1-rs proc-macro-error-1-rs proc-macro-error-attr-1-rs quote-1-rs syn-2-rs thiserror-1-rs thiserror-impl-1-rs unicode-ident-1-rs - winapi-i686-pc-windows-gnu-0.4-rs winapi-x86_64-pc-windows-gnu-0.4-rs" + winapi-0.3-rs winapi-i686-pc-windows-gnu-0.4-rs + winapi-x86_64-pc-windows-gnu-0.4-rs" src="$1" version="$2" diff --git a/subprojects/.gitignore b/subprojects/.gitignore index ed51f2012e2c..c42adaa928ec 100644 --- a/subprojects/.gitignore +++ b/subprojects/.gitignore @@ -22,5 +22,6 @@ /thiserror-1.0.65 /thiserror-impl-1.0.65 /unicode-ident-1.0.12 +/winapi-0.3.9 /winapi-i686-pc-windows-gnu-0.4.0 /winapi-x86_64-pc-windows-gnu-0.4.0 diff --git a/subprojects/packagefiles/winapi-0.3-rs/meson.build b/subprojects/packagefiles/winapi-0.3-rs/meson.build new file mode 100644 index 000000000000..e2cee17ec2d5 --- /dev/null +++ b/subprojects/packagefiles/winapi-0.3-rs/meson.build @@ -0,0 +1,46 @@ +project('winapi-0.3-rs', 'rust', + meson_version: '>=1.5.0', + version: '0.3.9', + license: 'MIT OR Apache-2.0' +) + +if host_machine.cpu_family() == 'x86_64' + winapi_arch = 'winapi-x86_64-pc-windows-gnu-0.4-rs' +elif host_machine.cpu_family() == 'x86' + winapi_arch = 'winapi-i686-pc-windows-gnu-0.4-rs' +else + error('Unsupported CPU family for winapi: ' + host_machine.cpu_family()) +endif + +subproject(winapi_arch, required: true) +winapi_arch_dep = dependency(winapi_arch) + +winapi_features = [ + '--cfg', 'feature="errhandlingapi"', + '--cfg', 'feature="sysinfoapi"', + '--cfg', 'feature="excpt"', + '--cfg', 'feature="minwinbase"', + '--cfg', 'feature="ntstatus"', + '--cfg', 'feature="winnt"', + '--cfg', 'feature="basetsd"', + '--cfg', 'feature="ktmtypes"', + '--cfg', 'feature="minwindef"', + '--cfg', 'feature="ntdef"', + '--cfg', 'feature="guiddef"', + '--cfg', 'feature="vcruntime"' +] + +lib = static_library( + 'winapi', + 'src/lib.rs', + override_options : ['rust_std=2021'], + rust_abi : 'rust', + rust_args: ['--cap-lints', 'allow'] + winapi_features, + dependencies: [winapi_arch_dep] +) + +dep = declare_dependency( + link_with: lib, +) + +meson.override_dependency('winapi-0.3-rs', dep) diff --git a/subprojects/winapi-0.3-rs.wrap b/subprojects/winapi-0.3-rs.wrap new file mode 100644 index 000000000000..49a5954ec225 --- /dev/null +++ b/subprojects/winapi-0.3-rs.wrap @@ -0,0 +1,10 @@ +[wrap-file] +directory = winapi-0.3.9 +source_url = https://crates.io/api/v1/crates/winapi/0.3.9/download +source_filename = winapi-0.3.9.tar.gz +source_hash = 5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419 +#method = cargo +patch_directory = winapi-0.3-rs + +# bump this version number on every change to meson.build or the patches: +# v2 -- 2.34.1