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


Reply via email to