diff --git a/.github/readme.md b/.github/readme.md
index 0cf44863cd..a593d836e5 100644
--- a/.github/readme.md
+++ b/.github/readme.md
@@ -43,7 +43,7 @@ fn main() -> Result<()> {
assert!(root.InnerText()? == "hello world");
unsafe {
- let event = CreateEventW(std::ptr::null_mut(), true, false, None);
+ let event = CreateEventW(std::ptr::null(), true, false, None);
SetEvent(event).ok()?;
WaitForSingleObject(event, 0);
CloseHandle(event).ok()?;
diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml
index e25feac583..221250aae1 100644
--- a/.github/workflows/build.yml
+++ b/.github/workflows/build.yml
@@ -30,19 +30,19 @@ jobs:
run: cargo doc --no-deps -p windows
generation:
- name: Check generation of `windows_${{ matrix.generator }}`
+ name: Check generation of `tool_${{ matrix.generator }}`
runs-on: windows-latest
strategy:
matrix:
- generator: [bindings, api, sys, yml]
+ generator: [bindings, windows, sys, yml]
steps:
- name: Checkout
uses: actions/checkout@v2
- - name: Run windows_${{ matrix.generator }}
- run: cargo run -p windows_${{ matrix.generator }}
+ - name: Run tool_${{ matrix.generator }}
+ run: cargo run -p tool_${{ matrix.generator }}
- name: Compare
shell: bash
- run: git diff --exit-code || (echo '::error::Generated `windows_${{ matrix.generator }}` are out-of-date. Please run `cargo run -p windows_${{ matrix.generator }}`'; exit 1)
+ run: git diff --exit-code || (echo '::error::Generated `tool_${{ matrix.generator }}` are out-of-date. Please run `cargo run -p tool_${{ matrix.generator }}`'; exit 1)
cargo_sys:
name: Check windows-sys
diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml
index cf8b70d544..21874b8930 100644
--- a/.github/workflows/test.yml
+++ b/.github/workflows/test.yml
@@ -5,122 +5,204 @@ on:
push:
branches:
- master
+
env:
RUSTFLAGS: -Dwarnings
jobs:
test:
name: Test
- runs-on: ${{ matrix.os }}
+ runs-on: windows-latest
+
strategy:
matrix:
include:
- - os: windows-latest
- rust: stable
- other: x86_64-pc-windows-msvc
- platform: x64
- - os: windows-latest
- rust: nightly
- other: i686-pc-windows-msvc
- platform: x86
- - os: windows-latest
- rust: nightly
- other: x86_64-pc-windows-gnu
- platform: x64
- - os: windows-latest
- rust: stable
- other: i686-pc-windows-gnu
- platform: x86
+ - version: stable
+ target: x86_64-pc-windows-msvc
+ - version: nightly
+ target: i686-pc-windows-msvc
+ - version: nightly
+ target: x86_64-pc-windows-gnu
+ - version: stable
+ target: i686-pc-windows-gnu
+
steps:
- name: Checkout
uses: actions/checkout@v2
-
- name: Update toolchain
- run: rustup update --no-self-update ${{ matrix.rust }} && rustup default ${{ matrix.rust }}
-
+ run: rustup update --no-self-update ${{ matrix.version }} && rustup default ${{ matrix.version }}
- name: Add toolchain target
- run: rustup target add ${{ matrix.other }}
-
+ run: rustup target add ${{ matrix.target }}
+ - name: Install clippy
+ run: rustup component add clippy
- name: Configure Cargo for GNU toolchain
shell: pwsh
run: |
Add-Content $env:USERPROFILE\.cargo\config @"
- [target.x86_64-pc-windows-gnu]
- linker = `"C:\\msys64\\mingw64\\bin\\x86_64-w64-mingw32-gcc.exe`"
- ar = `"C:\\msys64\\mingw64\\bin\\ar.exe`"
- [target.i686-pc-windows-gnu]
- linker = `"C:\\msys64\\mingw32\\bin\\i686-w64-mingw32-gcc.exe`"
- ar = `"C:\\msys64\\mingw32\\bin\\ar.exe`"
+ [target.x86_64-pc-windows-gnu]
+ linker = `"C:\\msys64\\mingw64\\bin\\x86_64-w64-mingw32-gcc.exe`"
+ ar = `"C:\\msys64\\mingw64\\bin\\ar.exe`"
+ [target.i686-pc-windows-gnu]
+ linker = `"C:\\msys64\\mingw32\\bin\\i686-w64-mingw32-gcc.exe`"
+ ar = `"C:\\msys64\\mingw32\\bin\\ar.exe`"
"@
- if: contains(matrix.other, 'windows-gnu')
-
+ if: contains(matrix.target, 'windows-gnu')
- name: Configure environment for GNU toolchain
shell: pwsh
run: |
- if("${{ matrix.other }}" -eq "i686-pc-windows-gnu") {
- $MingwPath = "C:\msys64\mingw32\bin"
+ if("${{ matrix.target }}" -eq "i686-pc-windows-gnu") {
+ $MingwPath = "C:\msys64\mingw32\bin"
} else {
- $MingwPath = "C:\msys64\mingw64\bin"
+ $MingwPath = "C:\msys64\mingw64\bin"
}
$MingwPath | Out-File -FilePath $env:GITHUB_PATH -Encoding utf8 -Append
- if: contains(matrix.other, 'windows-gnu')
+ if: contains(matrix.target, 'windows-gnu')
+ - name: Test stable
+ run: |
+ cargo test --target ${{ matrix.target }} -p windows-bindgen &&
+ cargo test --target ${{ matrix.target }} -p windows-metadata &&
+ cargo test --target ${{ matrix.target }} -p windows-sys &&
+ cargo test --target ${{ matrix.target }} -p windows-tokens &&
+ cargo test --target ${{ matrix.target }} -p windows &&
+ cargo test --target ${{ matrix.target }} -p windows_aarch64_msvc &&
+ cargo test --target ${{ matrix.target }} -p windows_i686_gnu &&
+ cargo test --target ${{ matrix.target }} -p windows_i686_msvc &&
+ cargo test --target ${{ matrix.target }} -p windows_x86_64_gnu &&
+ cargo test --target ${{ matrix.target }} -p windows_x86_64_msvc &&
+ cargo test --target ${{ matrix.target }} -p test_agile &&
+ cargo test --target ${{ matrix.target }} -p test_alternate_success_code &&
+ cargo test --target ${{ matrix.target }} -p test_arch &&
+ cargo test --target ${{ matrix.target }} -p test_arch_feature &&
+ cargo test --target ${{ matrix.target }} -p test_bstr &&
+ cargo test --target ${{ matrix.target }} -p test_core &&
+ cargo test --target ${{ matrix.target }} -p test_debug &&
+ cargo test --target ${{ matrix.target }} -p test_deprecated &&
+ cargo test --target ${{ matrix.target }} -p test_enums &&
+ cargo test --target ${{ matrix.target }} -p test_handles &&
+ cargo test --target ${{ matrix.target }} -p test_helpers &&
+ cargo test --target ${{ matrix.target }} -p test_interop &&
+ cargo test --target ${{ matrix.target }} -p test_lib &&
+ cargo test --target ${{ matrix.target }} -p test_matrix3x2 &&
+ cargo test --target ${{ matrix.target }} -p test_mshtml &&
+ cargo test --target ${{ matrix.target }} -p test_ntstatus &&
+ cargo test --target ${{ matrix.target }} -p test_pwstr &&
+ cargo test --target ${{ matrix.target }} -p test_return_struct &&
+ cargo test --target ${{ matrix.target }} -p test_structs &&
+ cargo test --target ${{ matrix.target }} -p test_sys &&
+ cargo test --target ${{ matrix.target }} -p test_unions &&
+ cargo test --target ${{ matrix.target }} -p test_weak &&
+ cargo test --target ${{ matrix.target }} -p test_win32 &&
+ cargo test --target ${{ matrix.target }} -p test_win32_arrays &&
+ cargo test --target ${{ matrix.target }} -p tool_bindings &&
+ cargo test --target ${{ matrix.target }} -p tool_gnu &&
+ cargo test --target ${{ matrix.target }} -p tool_msvc &&
+ cargo test --target ${{ matrix.target }} -p tool_sys &&
+ cargo test --target ${{ matrix.target }} -p tool_windows &&
+ cargo test --target ${{ matrix.target }} -p tool_yml
+ if: matrix.version == 'stable'
- - name: Test stable (${{ matrix.os }})
+ - name: Test nightly
run: |
- cargo test --target ${{ matrix.other }} -p test_agile &&
- cargo test --target ${{ matrix.other }} -p test_alternate_success_code &&
- cargo test --target ${{ matrix.other }} -p test_arch &&
- cargo test --target ${{ matrix.other }} -p test_arch_feature &&
- cargo test --target ${{ matrix.other }} -p test_bstr &&
- cargo test --target ${{ matrix.other }} -p test_core &&
- cargo test --target ${{ matrix.other }} -p test_debug &&
- cargo test --target ${{ matrix.other }} -p test_deprecated &&
- cargo test --target ${{ matrix.other }} -p test_enums &&
- cargo test --target ${{ matrix.other }} -p test_handles &&
- cargo test --target ${{ matrix.other }} -p test_helpers &&
- cargo test --target ${{ matrix.other }} -p test_interop &&
- cargo test --target ${{ matrix.other }} -p test_lib &&
- cargo test --target ${{ matrix.other }} -p test_matrix3x2 &&
- cargo test --target ${{ matrix.other }} -p test_mshtml &&
- cargo test --target ${{ matrix.other }} -p test_ntstatus &&
- cargo test --target ${{ matrix.other }} -p test_pwstr &&
- cargo test --target ${{ matrix.other }} -p test_return_struct &&
- cargo test --target ${{ matrix.other }} -p test_structs &&
- cargo test --target ${{ matrix.other }} -p test_sys &&
- cargo test --target ${{ matrix.other }} -p test_unions &&
- cargo test --target ${{ matrix.other }} -p test_weak &&
- cargo test --target ${{ matrix.other }} -p test_win32 &&
- cargo test --target ${{ matrix.other }} -p test_win32_arrays
- if: contains(matrix.rust, 'stable')
+ cargo test --target ${{ matrix.target }} -p windows-implement &&
+ cargo test --target ${{ matrix.target }} -p sample_com_uri &&
+ cargo test --target ${{ matrix.target }} -p sample_core_app &&
+ cargo test --target ${{ matrix.target }} -p sample_create_window &&
+ cargo test --target ${{ matrix.target }} -p sample_create_window_sys &&
+ cargo test --target ${{ matrix.target }} -p sample_direct2d &&
+ cargo test --target ${{ matrix.target }} -p sample_direct3d12 &&
+ cargo test --target ${{ matrix.target }} -p sample_enum_windows &&
+ cargo test --target ${{ matrix.target }} -p sample_enum_windows_sys &&
+ cargo test --target ${{ matrix.target }} -p sample_kernel_event &&
+ cargo test --target ${{ matrix.target }} -p sample_memory_buffer &&
+ cargo test --target ${{ matrix.target }} -p sample_message_box &&
+ cargo test --target ${{ matrix.target }} -p sample_ocr &&
+ cargo test --target ${{ matrix.target }} -p sample_overlapped &&
+ cargo test --target ${{ matrix.target }} -p sample_rss &&
+ cargo test --target ${{ matrix.target }} -p sample_simple &&
+ cargo test --target ${{ matrix.target }} -p sample_spellchecker &&
+ cargo test --target ${{ matrix.target }} -p sample_uiautomation &&
+ cargo test --target ${{ matrix.target }} -p sample_xaml_app &&
+ cargo test --target ${{ matrix.target }} -p sample_xml &&
+ cargo test --target ${{ matrix.target }} -p test_implement &&
+ cargo test --target ${{ matrix.target }} -p test_implement_class_factory &&
+ cargo test --target ${{ matrix.target }} -p test_implement_data_object &&
+ cargo test --target ${{ matrix.target }} -p test_implement_identity &&
+ cargo test --target ${{ matrix.target }} -p test_implement_map &&
+ cargo test --target ${{ matrix.target }} -p test_implement_no_use &&
+ cargo test --target ${{ matrix.target }} -p test_implement_null_result &&
+ cargo test --target ${{ matrix.target }} -p test_implement_properties &&
+ cargo test --target ${{ matrix.target }} -p test_implement_winrt
+ if: matrix.version == 'nightly'
- - name: Test nightly (${{ matrix.os }})
+ - name: Test clippy
run: |
- cargo test --target ${{ matrix.other }} -p test_implement &&
- cargo test --target ${{ matrix.other }} -p test_implement_class_factory &&
- cargo test --target ${{ matrix.other }} -p test_implement_data_object &&
- cargo test --target ${{ matrix.other }} -p test_implement_identity &&
- cargo test --target ${{ matrix.other }} -p test_implement_map &&
- cargo test --target ${{ matrix.other }} -p test_implement_no_use &&
- cargo test --target ${{ matrix.other }} -p test_implement_null_result &&
- cargo test --target ${{ matrix.other }} -p test_implement_properties &&
- cargo test --target ${{ matrix.other }} -p test_implement_winrt &&
- cargo test --target ${{ matrix.other }} -p com_uri &&
- cargo test --target ${{ matrix.other }} -p core_app &&
- cargo test --target ${{ matrix.other }} -p create_window &&
- cargo test --target ${{ matrix.other }} -p create_window_sys &&
- cargo test --target ${{ matrix.other }} -p direct2d &&
- cargo test --target ${{ matrix.other }} -p direct3d12 &&
- cargo test --target ${{ matrix.other }} -p enum_windows &&
- cargo test --target ${{ matrix.other }} -p enum_windows_sys &&
- cargo test --target ${{ matrix.other }} -p kernel_event &&
- cargo test --target ${{ matrix.other }} -p memory_buffer &&
- cargo test --target ${{ matrix.other }} -p message_box &&
- cargo test --target ${{ matrix.other }} -p ocr &&
- cargo test --target ${{ matrix.other }} -p overlapped &&
- cargo test --target ${{ matrix.other }} -p rss &&
- cargo test --target ${{ matrix.other }} -p simple &&
- cargo test --target ${{ matrix.other }} -p spellchecker &&
- cargo test --target ${{ matrix.other }} -p uiautomation &&
- cargo test --target ${{ matrix.other }} -p xaml_app &&
- cargo test --target ${{ matrix.other }} -p xml
- if: contains(matrix.rust, 'nightly')
+ cargo clippy -p windows-bindgen &&
+ cargo clippy -p windows-implement &&
+ cargo clippy -p windows-metadata &&
+ cargo clippy -p windows-sys &&
+ cargo clippy -p windows-tokens &&
+ cargo clippy -p windows &&
+ cargo clippy -p sample_com_uri &&
+ cargo clippy -p sample_core_app &&
+ cargo clippy -p sample_create_window &&
+ cargo clippy -p sample_create_window_sys &&
+ cargo clippy -p sample_direct2d &&
+ cargo clippy -p sample_direct3d12 &&
+ cargo clippy -p sample_enum_windows &&
+ cargo clippy -p sample_enum_windows_sys &&
+ cargo clippy -p sample_kernel_event &&
+ cargo clippy -p sample_memory_buffer &&
+ cargo clippy -p sample_message_box &&
+ cargo clippy -p sample_ocr &&
+ cargo clippy -p sample_overlapped &&
+ cargo clippy -p sample_rss &&
+ cargo clippy -p sample_simple &&
+ cargo clippy -p sample_spellchecker &&
+ cargo clippy -p sample_uiautomation &&
+ cargo clippy -p sample_xaml_app &&
+ cargo clippy -p sample_xml &&
+ cargo clippy -p windows_aarch64_msvc &&
+ cargo clippy -p windows_i686_gnu &&
+ cargo clippy -p windows_i686_msvc &&
+ cargo clippy -p windows_x86_64_gnu &&
+ cargo clippy -p windows_x86_64_msvc &&
+ cargo clippy -p test_agile &&
+ cargo clippy -p test_alternate_success_code &&
+ cargo clippy -p test_arch &&
+ cargo clippy -p test_arch_feature &&
+ cargo clippy -p test_bstr &&
+ cargo clippy -p test_core &&
+ cargo clippy -p test_debug &&
+ cargo clippy -p test_deprecated &&
+ cargo clippy -p test_enums &&
+ cargo clippy -p test_handles &&
+ cargo clippy -p test_helpers &&
+ cargo clippy -p test_implement &&
+ cargo clippy -p test_implement_class_factory &&
+ cargo clippy -p test_implement_data_object &&
+ cargo clippy -p test_implement_identity &&
+ cargo clippy -p test_implement_map &&
+ cargo clippy -p test_implement_no_use &&
+ cargo clippy -p test_implement_null_result &&
+ cargo clippy -p test_implement_properties &&
+ cargo clippy -p test_implement_winrt &&
+ cargo clippy -p test_interop &&
+ cargo clippy -p test_lib &&
+ cargo clippy -p test_matrix3x2 &&
+ cargo clippy -p test_mshtml &&
+ cargo clippy -p test_ntstatus &&
+ cargo clippy -p test_pwstr &&
+ cargo clippy -p test_return_struct &&
+ cargo clippy -p test_structs &&
+ cargo clippy -p test_sys &&
+ cargo clippy -p test_unions &&
+ cargo clippy -p test_weak &&
+ cargo clippy -p test_win32 &&
+ cargo clippy -p test_win32_arrays &&
+ cargo clippy -p tool_bindings &&
+ cargo clippy -p tool_gnu &&
+ cargo clippy -p tool_msvc &&
+ cargo clippy -p tool_sys &&
+ cargo clippy -p tool_windows &&
+ cargo clippy -p tool_yml
+ if: matrix.version == 'nightly' && matrix.target == 'x86_64-pc-windows-gnu'
diff --git a/crates/libs/bindgen/Cargo.toml b/crates/libs/bindgen/Cargo.toml
index 3d5dacb10f..4f2bf51768 100644
--- a/crates/libs/bindgen/Cargo.toml
+++ b/crates/libs/bindgen/Cargo.toml
@@ -8,5 +8,5 @@ description = "Code gen support for the windows crate"
repository = "https://github.com/microsoft/windows-rs"
[dependencies]
-quote = { package = "windows_quote", path = "../quote", version = "0.30.0" }
-reader = { package = "windows_reader", path = "../reader", version = "0.30.0" }
+tokens = { package = "windows-tokens", path = "../tokens", version = "0.30.0" }
+metadata = { package = "windows-metadata", path = "../metadata", version = "0.30.0" }
diff --git a/crates/libs/bindgen/src/lib.rs b/crates/libs/bindgen/src/lib.rs
index 5b6610b67c..fa65d383ae 100644
--- a/crates/libs/bindgen/src/lib.rs
+++ b/crates/libs/bindgen/src/lib.rs
@@ -25,13 +25,13 @@ use functions::*;
pub use gen::*;
use helpers::*;
use iterator::*;
+use metadata::*;
use method_names::*;
use methods::*;
use names::*;
-use quote::*;
use r#async::*;
-use reader::*;
use signatures::*;
+use tokens::*;
pub fn gen_type(name: &str, gen: &Gen) -> String {
let reader = TypeReader::get();
diff --git a/crates/libs/macros/Cargo.toml b/crates/libs/implement/Cargo.toml
similarity index 77%
rename from crates/libs/macros/Cargo.toml
rename to crates/libs/implement/Cargo.toml
index df8735d24d..8dc3fbd75a 100644
--- a/crates/libs/macros/Cargo.toml
+++ b/crates/libs/implement/Cargo.toml
@@ -1,5 +1,5 @@
[package]
-name = "windows_macros"
+name = "windows-implement"
version = "0.30.0"
authors = ["Microsoft"]
edition = "2018"
@@ -12,4 +12,4 @@ proc-macro = true
[dependencies]
syn = { version = "1.0", default-features = false, features = ["parsing", "proc-macro", "printing", "full", "derive"] }
-quote = { package = "windows_quote", path = "../quote", version = "0.30.0" }
+tokens = { package = "windows-tokens", path = "../tokens", version = "0.30.0" }
diff --git a/crates/libs/macros/src/implement.rs b/crates/libs/implement/src/implement.rs
similarity index 99%
rename from crates/libs/macros/src/implement.rs
rename to crates/libs/implement/src/implement.rs
index 1515df9576..03424f5cc4 100644
--- a/crates/libs/macros/src/implement.rs
+++ b/crates/libs/implement/src/implement.rs
@@ -1,8 +1,8 @@
-use quote::*;
use std::collections::*;
use syn::parse::*;
use syn::Ident;
use syn::*;
+use tokens::*;
// New traits-based implement macro that doesn't rely on metadata
// Also no support for overrides (Xaml) but developers can still implement overrides directly by implementning the necessary override interface
diff --git a/crates/libs/macros/src/lib.rs b/crates/libs/implement/src/lib.rs
similarity index 100%
rename from crates/libs/macros/src/lib.rs
rename to crates/libs/implement/src/lib.rs
diff --git a/crates/libs/reader/Cargo.toml b/crates/libs/metadata/Cargo.toml
similarity index 89%
rename from crates/libs/reader/Cargo.toml
rename to crates/libs/metadata/Cargo.toml
index 2a7c28bd1c..81abdac55f 100644
--- a/crates/libs/reader/Cargo.toml
+++ b/crates/libs/metadata/Cargo.toml
@@ -1,5 +1,5 @@
[package]
-name = "windows_reader"
+name = "windows-metadata"
version = "0.30.0"
authors = ["Microsoft"]
edition = "2018"
diff --git a/crates/libs/reader/default/Windows.Win32.Interop.winmd b/crates/libs/metadata/default/Windows.Win32.Interop.winmd
similarity index 100%
rename from crates/libs/reader/default/Windows.Win32.Interop.winmd
rename to crates/libs/metadata/default/Windows.Win32.Interop.winmd
diff --git a/crates/libs/reader/default/Windows.Win32.winmd b/crates/libs/metadata/default/Windows.Win32.winmd
similarity index 100%
rename from crates/libs/reader/default/Windows.Win32.winmd
rename to crates/libs/metadata/default/Windows.Win32.winmd
diff --git a/crates/libs/reader/default/Windows.winmd b/crates/libs/metadata/default/Windows.winmd
similarity index 100%
rename from crates/libs/reader/default/Windows.winmd
rename to crates/libs/metadata/default/Windows.winmd
diff --git a/crates/libs/reader/default/readme.md b/crates/libs/metadata/default/readme.md
similarity index 100%
rename from crates/libs/reader/default/readme.md
rename to crates/libs/metadata/default/readme.md
diff --git a/crates/libs/reader/src/async_kind.rs b/crates/libs/metadata/src/async_kind.rs
similarity index 100%
rename from crates/libs/reader/src/async_kind.rs
rename to crates/libs/metadata/src/async_kind.rs
diff --git a/crates/libs/reader/src/blob.rs b/crates/libs/metadata/src/blob.rs
similarity index 100%
rename from crates/libs/reader/src/blob.rs
rename to crates/libs/metadata/src/blob.rs
diff --git a/crates/libs/reader/src/codes.rs b/crates/libs/metadata/src/codes.rs
similarity index 100%
rename from crates/libs/reader/src/codes.rs
rename to crates/libs/metadata/src/codes.rs
diff --git a/crates/libs/reader/src/constant_value.rs b/crates/libs/metadata/src/constant_value.rs
similarity index 100%
rename from crates/libs/reader/src/constant_value.rs
rename to crates/libs/metadata/src/constant_value.rs
diff --git a/crates/libs/reader/src/element_type.rs b/crates/libs/metadata/src/element_type.rs
similarity index 100%
rename from crates/libs/reader/src/element_type.rs
rename to crates/libs/metadata/src/element_type.rs
diff --git a/crates/libs/reader/src/file.rs b/crates/libs/metadata/src/file.rs
similarity index 100%
rename from crates/libs/reader/src/file.rs
rename to crates/libs/metadata/src/file.rs
diff --git a/crates/libs/reader/src/guid.rs b/crates/libs/metadata/src/guid.rs
similarity index 100%
rename from crates/libs/reader/src/guid.rs
rename to crates/libs/metadata/src/guid.rs
diff --git a/crates/libs/reader/src/interface_kind.rs b/crates/libs/metadata/src/interface_kind.rs
similarity index 100%
rename from crates/libs/reader/src/interface_kind.rs
rename to crates/libs/metadata/src/interface_kind.rs
diff --git a/crates/libs/reader/src/lib.rs b/crates/libs/metadata/src/lib.rs
similarity index 100%
rename from crates/libs/reader/src/lib.rs
rename to crates/libs/metadata/src/lib.rs
diff --git a/crates/libs/reader/src/method_info.rs b/crates/libs/metadata/src/method_info.rs
similarity index 100%
rename from crates/libs/reader/src/method_info.rs
rename to crates/libs/metadata/src/method_info.rs
diff --git a/crates/libs/reader/src/method_signature.rs b/crates/libs/metadata/src/method_signature.rs
similarity index 100%
rename from crates/libs/reader/src/method_signature.rs
rename to crates/libs/metadata/src/method_signature.rs
diff --git a/crates/libs/reader/src/param_flags.rs b/crates/libs/metadata/src/param_flags.rs
similarity index 100%
rename from crates/libs/reader/src/param_flags.rs
rename to crates/libs/metadata/src/param_flags.rs
diff --git a/crates/libs/reader/src/row.rs b/crates/libs/metadata/src/row.rs
similarity index 100%
rename from crates/libs/reader/src/row.rs
rename to crates/libs/metadata/src/row.rs
diff --git a/crates/libs/reader/src/signature.rs b/crates/libs/metadata/src/signature.rs
similarity index 100%
rename from crates/libs/reader/src/signature.rs
rename to crates/libs/metadata/src/signature.rs
diff --git a/crates/libs/reader/src/signature_kind.rs b/crates/libs/metadata/src/signature_kind.rs
similarity index 100%
rename from crates/libs/reader/src/signature_kind.rs
rename to crates/libs/metadata/src/signature_kind.rs
diff --git a/crates/libs/reader/src/tables/assembly_ref.rs b/crates/libs/metadata/src/tables/assembly_ref.rs
similarity index 100%
rename from crates/libs/reader/src/tables/assembly_ref.rs
rename to crates/libs/metadata/src/tables/assembly_ref.rs
diff --git a/crates/libs/reader/src/tables/attribute.rs b/crates/libs/metadata/src/tables/attribute.rs
similarity index 100%
rename from crates/libs/reader/src/tables/attribute.rs
rename to crates/libs/metadata/src/tables/attribute.rs
diff --git a/crates/libs/reader/src/tables/class_layout.rs b/crates/libs/metadata/src/tables/class_layout.rs
similarity index 100%
rename from crates/libs/reader/src/tables/class_layout.rs
rename to crates/libs/metadata/src/tables/class_layout.rs
diff --git a/crates/libs/reader/src/tables/constant.rs b/crates/libs/metadata/src/tables/constant.rs
similarity index 100%
rename from crates/libs/reader/src/tables/constant.rs
rename to crates/libs/metadata/src/tables/constant.rs
diff --git a/crates/libs/reader/src/tables/field.rs b/crates/libs/metadata/src/tables/field.rs
similarity index 100%
rename from crates/libs/reader/src/tables/field.rs
rename to crates/libs/metadata/src/tables/field.rs
diff --git a/crates/libs/reader/src/tables/generic_param.rs b/crates/libs/metadata/src/tables/generic_param.rs
similarity index 100%
rename from crates/libs/reader/src/tables/generic_param.rs
rename to crates/libs/metadata/src/tables/generic_param.rs
diff --git a/crates/libs/reader/src/tables/impl_map.rs b/crates/libs/metadata/src/tables/impl_map.rs
similarity index 100%
rename from crates/libs/reader/src/tables/impl_map.rs
rename to crates/libs/metadata/src/tables/impl_map.rs
diff --git a/crates/libs/reader/src/tables/interface_impl.rs b/crates/libs/metadata/src/tables/interface_impl.rs
similarity index 100%
rename from crates/libs/reader/src/tables/interface_impl.rs
rename to crates/libs/metadata/src/tables/interface_impl.rs
diff --git a/crates/libs/reader/src/tables/member_ref.rs b/crates/libs/metadata/src/tables/member_ref.rs
similarity index 100%
rename from crates/libs/reader/src/tables/member_ref.rs
rename to crates/libs/metadata/src/tables/member_ref.rs
diff --git a/crates/libs/reader/src/tables/method_def.rs b/crates/libs/metadata/src/tables/method_def.rs
similarity index 100%
rename from crates/libs/reader/src/tables/method_def.rs
rename to crates/libs/metadata/src/tables/method_def.rs
diff --git a/crates/libs/reader/src/tables/mod.rs b/crates/libs/metadata/src/tables/mod.rs
similarity index 100%
rename from crates/libs/reader/src/tables/mod.rs
rename to crates/libs/metadata/src/tables/mod.rs
diff --git a/crates/libs/reader/src/tables/module.rs b/crates/libs/metadata/src/tables/module.rs
similarity index 100%
rename from crates/libs/reader/src/tables/module.rs
rename to crates/libs/metadata/src/tables/module.rs
diff --git a/crates/libs/reader/src/tables/module_ref.rs b/crates/libs/metadata/src/tables/module_ref.rs
similarity index 100%
rename from crates/libs/reader/src/tables/module_ref.rs
rename to crates/libs/metadata/src/tables/module_ref.rs
diff --git a/crates/libs/reader/src/tables/nested_class.rs b/crates/libs/metadata/src/tables/nested_class.rs
similarity index 100%
rename from crates/libs/reader/src/tables/nested_class.rs
rename to crates/libs/metadata/src/tables/nested_class.rs
diff --git a/crates/libs/reader/src/tables/param.rs b/crates/libs/metadata/src/tables/param.rs
similarity index 100%
rename from crates/libs/reader/src/tables/param.rs
rename to crates/libs/metadata/src/tables/param.rs
diff --git a/crates/libs/reader/src/tables/type_def.rs b/crates/libs/metadata/src/tables/type_def.rs
similarity index 100%
rename from crates/libs/reader/src/tables/type_def.rs
rename to crates/libs/metadata/src/tables/type_def.rs
diff --git a/crates/libs/reader/src/tables/type_ref.rs b/crates/libs/metadata/src/tables/type_ref.rs
similarity index 100%
rename from crates/libs/reader/src/tables/type_ref.rs
rename to crates/libs/metadata/src/tables/type_ref.rs
diff --git a/crates/libs/reader/src/tables/type_spec.rs b/crates/libs/metadata/src/tables/type_spec.rs
similarity index 100%
rename from crates/libs/reader/src/tables/type_spec.rs
rename to crates/libs/metadata/src/tables/type_spec.rs
diff --git a/crates/libs/reader/src/traits.rs b/crates/libs/metadata/src/traits.rs
similarity index 100%
rename from crates/libs/reader/src/traits.rs
rename to crates/libs/metadata/src/traits.rs
diff --git a/crates/libs/reader/src/type_kind.rs b/crates/libs/metadata/src/type_kind.rs
similarity index 100%
rename from crates/libs/reader/src/type_kind.rs
rename to crates/libs/metadata/src/type_kind.rs
diff --git a/crates/libs/reader/src/type_name.rs b/crates/libs/metadata/src/type_name.rs
similarity index 100%
rename from crates/libs/reader/src/type_name.rs
rename to crates/libs/metadata/src/type_name.rs
diff --git a/crates/libs/reader/src/type_reader.rs b/crates/libs/metadata/src/type_reader.rs
similarity index 100%
rename from crates/libs/reader/src/type_reader.rs
rename to crates/libs/metadata/src/type_reader.rs
diff --git a/crates/libs/reader/src/type_tree.rs b/crates/libs/metadata/src/type_tree.rs
similarity index 100%
rename from crates/libs/reader/src/type_tree.rs
rename to crates/libs/metadata/src/type_tree.rs
diff --git a/crates/libs/reader/src/workspace.rs b/crates/libs/metadata/src/workspace.rs
similarity index 100%
rename from crates/libs/reader/src/workspace.rs
rename to crates/libs/metadata/src/workspace.rs
diff --git a/crates/libs/quote/Cargo.toml b/crates/libs/tokens/Cargo.toml
similarity index 90%
rename from crates/libs/quote/Cargo.toml
rename to crates/libs/tokens/Cargo.toml
index 424da38919..04e43ce4b0 100644
--- a/crates/libs/quote/Cargo.toml
+++ b/crates/libs/tokens/Cargo.toml
@@ -1,5 +1,5 @@
[package]
-name = "windows_quote"
+name = "windows-tokens"
version = "0.30.0"
authors = ["Microsoft"]
edition = "2018"
diff --git a/crates/libs/quote/src/lib.rs b/crates/libs/tokens/src/lib.rs
similarity index 100%
rename from crates/libs/quote/src/lib.rs
rename to crates/libs/tokens/src/lib.rs
diff --git a/crates/libs/quote/src/runtime.rs b/crates/libs/tokens/src/runtime.rs
similarity index 100%
rename from crates/libs/quote/src/runtime.rs
rename to crates/libs/tokens/src/runtime.rs
diff --git a/crates/libs/quote/src/to_tokens.rs b/crates/libs/tokens/src/to_tokens.rs
similarity index 100%
rename from crates/libs/quote/src/to_tokens.rs
rename to crates/libs/tokens/src/to_tokens.rs
diff --git a/crates/libs/quote/src/token_stream.rs b/crates/libs/tokens/src/token_stream.rs
similarity index 100%
rename from crates/libs/quote/src/token_stream.rs
rename to crates/libs/tokens/src/token_stream.rs
diff --git a/crates/libs/windows/Cargo.toml b/crates/libs/windows/Cargo.toml
index b59079c150..8aac8089ec 100644
--- a/crates/libs/windows/Cargo.toml
+++ b/crates/libs/windows/Cargo.toml
@@ -45,13 +45,13 @@ windows_x86_64_gnu = { path = "../../targets/x86_64_gnu", version = "0.30.0" }
windows_x86_64_gnu = { path = "../../targets/x86_64_gnu", version = "0.30.0" }
[dependencies]
-windows_macros = { path = "../macros", version = "0.30.0", optional = true }
+windows-implement = { path = "../implement", version = "0.30.0", optional = true }
[features]
default = []
deprecated = []
alloc = []
-implement = ["windows_macros"]
+implement = ["windows-implement"]
AI = []
AI_MachineLearning = ["AI"]
AI_MachineLearning_Preview = ["AI_MachineLearning"]
diff --git a/crates/libs/windows/src/core/mod.rs b/crates/libs/windows/src/core/mod.rs
index 62c2ccaa84..8625215db2 100644
--- a/crates/libs/windows/src/core/mod.rs
+++ b/crates/libs/windows/src/core/mod.rs
@@ -78,7 +78,7 @@ pub use bindings::IAgileObject;
pub type RawPtr = *mut core::ffi::c_void;
#[cfg(feature = "implement")]
-pub use windows_macros::implement;
+pub use windows_implement::implement;
extern "C" {
#[doc(hidden)]
diff --git a/crates/samples/com_uri/Cargo.toml b/crates/samples/com_uri/Cargo.toml
index 8c5354f21f..7aa8553280 100644
--- a/crates/samples/com_uri/Cargo.toml
+++ b/crates/samples/com_uri/Cargo.toml
@@ -1,5 +1,5 @@
[package]
-name = "com_uri"
+name = "sample_com_uri"
version = "0.0.0"
edition = "2018"
diff --git a/crates/samples/core_app/Cargo.toml b/crates/samples/core_app/Cargo.toml
index 536b90ac82..9efd14303d 100644
--- a/crates/samples/core_app/Cargo.toml
+++ b/crates/samples/core_app/Cargo.toml
@@ -1,5 +1,5 @@
[package]
-name = "core_app"
+name = "sample_core_app"
version = "0.0.0"
edition = "2018"
diff --git a/crates/samples/core_app/appx/AppxManifest.xml b/crates/samples/core_app/appx/AppxManifest.xml
index b656c2d4fc..cb4a98dcbd 100644
--- a/crates/samples/core_app/appx/AppxManifest.xml
+++ b/crates/samples/core_app/appx/AppxManifest.xml
@@ -19,7 +19,7 @@
-
+
diff --git a/crates/samples/create_window/Cargo.toml b/crates/samples/create_window/Cargo.toml
index 6182280128..e54574a2b8 100644
--- a/crates/samples/create_window/Cargo.toml
+++ b/crates/samples/create_window/Cargo.toml
@@ -1,5 +1,5 @@
[package]
-name = "create_window"
+name = "sample_create_window"
version = "0.0.0"
edition = "2018"
diff --git a/crates/samples/create_window_sys/Cargo.toml b/crates/samples/create_window_sys/Cargo.toml
index c088e16848..0bb1fb3262 100644
--- a/crates/samples/create_window_sys/Cargo.toml
+++ b/crates/samples/create_window_sys/Cargo.toml
@@ -1,5 +1,5 @@
[package]
-name = "create_window_sys"
+name = "sample_create_window_sys"
version = "0.0.0"
edition = "2018"
diff --git a/crates/samples/direct2d/Cargo.toml b/crates/samples/direct2d/Cargo.toml
index e63976f985..1d35d0b8d1 100644
--- a/crates/samples/direct2d/Cargo.toml
+++ b/crates/samples/direct2d/Cargo.toml
@@ -1,5 +1,5 @@
[package]
-name = "direct2d"
+name = "sample_direct2d"
version = "0.0.0"
edition = "2018"
diff --git a/crates/samples/direct3d12/Cargo.toml b/crates/samples/direct3d12/Cargo.toml
index 450cd5427c..e100f4efc6 100644
--- a/crates/samples/direct3d12/Cargo.toml
+++ b/crates/samples/direct3d12/Cargo.toml
@@ -1,5 +1,5 @@
[package]
-name = "direct3d12"
+name = "sample_direct3d12"
version = "0.0.0"
edition = "2018"
diff --git a/crates/samples/enum_windows/Cargo.toml b/crates/samples/enum_windows/Cargo.toml
index c16c5b6aee..e1340667ab 100644
--- a/crates/samples/enum_windows/Cargo.toml
+++ b/crates/samples/enum_windows/Cargo.toml
@@ -1,5 +1,5 @@
[package]
-name = "enum_windows"
+name = "sample_enum_windows"
version = "0.0.0"
edition = "2018"
diff --git a/crates/samples/enum_windows_sys/Cargo.toml b/crates/samples/enum_windows_sys/Cargo.toml
index b6121678af..386cc79fa0 100644
--- a/crates/samples/enum_windows_sys/Cargo.toml
+++ b/crates/samples/enum_windows_sys/Cargo.toml
@@ -1,5 +1,5 @@
[package]
-name = "enum_windows_sys"
+name = "sample_enum_windows_sys"
version = "0.0.0"
edition = "2018"
diff --git a/crates/samples/kernel_event/Cargo.toml b/crates/samples/kernel_event/Cargo.toml
index 8a187d3269..794f0c84cd 100644
--- a/crates/samples/kernel_event/Cargo.toml
+++ b/crates/samples/kernel_event/Cargo.toml
@@ -1,5 +1,5 @@
[package]
-name = "kernel_event"
+name = "sample_kernel_event"
version = "0.0.0"
edition = "2018"
diff --git a/crates/samples/memory_buffer/Cargo.toml b/crates/samples/memory_buffer/Cargo.toml
index 34c0e5662d..a4a97625ec 100644
--- a/crates/samples/memory_buffer/Cargo.toml
+++ b/crates/samples/memory_buffer/Cargo.toml
@@ -1,5 +1,5 @@
[package]
-name = "memory_buffer"
+name = "sample_memory_buffer"
version = "0.0.0"
edition = "2018"
diff --git a/crates/samples/message_box/Cargo.toml b/crates/samples/message_box/Cargo.toml
index 0477b0dedf..88f319eda2 100644
--- a/crates/samples/message_box/Cargo.toml
+++ b/crates/samples/message_box/Cargo.toml
@@ -1,5 +1,5 @@
[package]
-name = "message_box"
+name = "sample_message_box"
version = "0.0.0"
edition = "2018"
diff --git a/crates/samples/ocr/Cargo.toml b/crates/samples/ocr/Cargo.toml
index 559d3c281d..799f42b72a 100644
--- a/crates/samples/ocr/Cargo.toml
+++ b/crates/samples/ocr/Cargo.toml
@@ -1,5 +1,5 @@
[package]
-name = "ocr"
+name = "sample_ocr"
version = "0.0.0"
edition = "2018"
diff --git a/crates/samples/overlapped/Cargo.toml b/crates/samples/overlapped/Cargo.toml
index b953c542f8..efea3b0343 100644
--- a/crates/samples/overlapped/Cargo.toml
+++ b/crates/samples/overlapped/Cargo.toml
@@ -1,5 +1,5 @@
[package]
-name = "overlapped"
+name = "sample_overlapped"
version = "0.0.0"
edition = "2018"
diff --git a/crates/samples/rss/Cargo.toml b/crates/samples/rss/Cargo.toml
index 2d669b6392..e7a99ecc91 100644
--- a/crates/samples/rss/Cargo.toml
+++ b/crates/samples/rss/Cargo.toml
@@ -1,5 +1,5 @@
[package]
-name = "rss"
+name = "sample_rss"
version = "0.0.0"
edition = "2018"
diff --git a/crates/samples/simple/Cargo.toml b/crates/samples/simple/Cargo.toml
index a7d6b1ff7d..619be727f3 100644
--- a/crates/samples/simple/Cargo.toml
+++ b/crates/samples/simple/Cargo.toml
@@ -1,5 +1,5 @@
[package]
-name = "simple"
+name = "sample_simple"
version = "0.0.0"
edition = "2018"
diff --git a/crates/samples/spellchecker/Cargo.toml b/crates/samples/spellchecker/Cargo.toml
index e990124c79..b0ead27883 100644
--- a/crates/samples/spellchecker/Cargo.toml
+++ b/crates/samples/spellchecker/Cargo.toml
@@ -1,5 +1,5 @@
[package]
-name = "spellchecker"
+name = "sample_spellchecker"
version = "0.0.0"
edition = "2018"
diff --git a/crates/samples/uiautomation/Cargo.toml b/crates/samples/uiautomation/Cargo.toml
index f60415ca9f..56b15c0017 100644
--- a/crates/samples/uiautomation/Cargo.toml
+++ b/crates/samples/uiautomation/Cargo.toml
@@ -1,5 +1,5 @@
[package]
-name = "uiautomation"
+name = "sample_uiautomation"
version = "0.0.0"
edition = "2018"
diff --git a/crates/samples/xaml_app/Cargo.toml b/crates/samples/xaml_app/Cargo.toml
index 60e9bcc5bf..07ad604369 100644
--- a/crates/samples/xaml_app/Cargo.toml
+++ b/crates/samples/xaml_app/Cargo.toml
@@ -1,5 +1,5 @@
[package]
-name = "xaml_app"
+name = "sample_xaml_app"
version = "0.0.0"
edition = "2018"
diff --git a/crates/samples/xaml_app/appx/AppxManifest.xml b/crates/samples/xaml_app/appx/AppxManifest.xml
index 048a5c7ca7..31bb61bf01 100644
--- a/crates/samples/xaml_app/appx/AppxManifest.xml
+++ b/crates/samples/xaml_app/appx/AppxManifest.xml
@@ -19,7 +19,7 @@
-
+
diff --git a/crates/samples/xml/Cargo.toml b/crates/samples/xml/Cargo.toml
index b04f964183..035eff6043 100644
--- a/crates/samples/xml/Cargo.toml
+++ b/crates/samples/xml/Cargo.toml
@@ -1,5 +1,5 @@
[package]
-name = "xml"
+name = "sample_xml"
version = "0.0.0"
edition = "2018"
diff --git a/crates/tests/implement_winrt/Cargo.toml b/crates/tests/implement_winrt/Cargo.toml
index 2749451d71..473487c785 100644
--- a/crates/tests/implement_winrt/Cargo.toml
+++ b/crates/tests/implement_winrt/Cargo.toml
@@ -4,9 +4,6 @@ version = "0.0.0"
authors = ["Microsoft"]
edition = "2018"
-[dependencies]
-#reader = { package = "windows_reader", path = "../../../crates/libs/reader" }
-
[dependencies.windows]
path = "../../libs/windows"
features = [
diff --git a/crates/tools/bindings/Cargo.toml b/crates/tools/bindings/Cargo.toml
index acb32f797b..71e96adb4d 100644
--- a/crates/tools/bindings/Cargo.toml
+++ b/crates/tools/bindings/Cargo.toml
@@ -1,9 +1,9 @@
[package]
-name = "windows_bindings"
+name = "tool_bindings"
version = "0.0.0"
edition = "2018"
publish = false
[dependencies]
-reader = { package = "windows_reader", path = "../../libs/reader", version = "0.30.0" }
+metadata = { package = "windows-metadata", path = "../../libs/metadata", version = "0.30.0" }
bindgen = { package = "windows-bindgen", path = "../../libs/bindgen", version = "0.30.0" }
diff --git a/crates/tools/bindings/src/main.rs b/crates/tools/bindings/src/main.rs
index 9d632b9467..152d2361e6 100644
--- a/crates/tools/bindings/src/main.rs
+++ b/crates/tools/bindings/src/main.rs
@@ -64,7 +64,7 @@ fn main() -> std::io::Result<()> {
tokens += &bindgen::gen_type(name, &gen);
}
- let mut path: std::path::PathBuf = reader::workspace_dir().into();
+ let mut path: std::path::PathBuf = metadata::workspace_dir().into();
path.push("crates/libs/windows/src/core/bindings.rs");
std::fs::write(&path, tokens)?;
diff --git a/crates/tools/gnu/Cargo.toml b/crates/tools/gnu/Cargo.toml
index 511acc6e39..aa079c3741 100644
--- a/crates/tools/gnu/Cargo.toml
+++ b/crates/tools/gnu/Cargo.toml
@@ -1,8 +1,8 @@
[package]
-name = "windows_gnu"
+name = "tool_gnu"
version = "0.0.0"
edition = "2018"
publish = false
[dependencies]
-reader = { package = "windows_reader", path = "../../libs/reader", version = "0.30.0" }
+metadata = { package = "windows-metadata", path = "../../libs/metadata", version = "0.30.0" }
diff --git a/crates/tools/gnu/src/main.rs b/crates/tools/gnu/src/main.rs
index 2881ebb9e9..36c20b6dec 100644
--- a/crates/tools/gnu/src/main.rs
+++ b/crates/tools/gnu/src/main.rs
@@ -1,4 +1,4 @@
-use reader::*;
+use metadata::*;
use std::collections::BTreeMap;
use std::io::prelude::*;
@@ -32,7 +32,7 @@ fn main() {
let root = reader.types.get_namespace("Windows.Win32").unwrap();
load_functions(root, &mut libraries);
- let mut output = std::path::PathBuf::from(reader::workspace_dir());
+ let mut output = std::path::PathBuf::from(metadata::workspace_dir());
output.push(format!("crates/targets/{}/lib", platform));
let _ = std::fs::remove_dir_all(&output);
diff --git a/crates/tools/msvc/Cargo.toml b/crates/tools/msvc/Cargo.toml
index 4f8ba7927a..07d7f4c14f 100644
--- a/crates/tools/msvc/Cargo.toml
+++ b/crates/tools/msvc/Cargo.toml
@@ -1,8 +1,8 @@
[package]
-name = "windows_msvc"
+name = "tool_msvc"
version = "0.0.0"
edition = "2018"
publish = false
[dependencies]
-reader = { package = "windows_reader", path = "../../libs/reader", version = "0.30.0" }
+metadata = { package = "windows-metadata", path = "../../libs/metadata", version = "0.30.0" }
diff --git a/crates/tools/msvc/src/main.rs b/crates/tools/msvc/src/main.rs
index 0a81699b9e..24abcdacb9 100644
--- a/crates/tools/msvc/src/main.rs
+++ b/crates/tools/msvc/src/main.rs
@@ -1,4 +1,4 @@
-use reader::*;
+use metadata::*;
use std::collections::BTreeMap;
use std::io::prelude::*;
@@ -24,7 +24,7 @@ fn main() {
let root = reader.types.get_namespace("Windows.Win32").unwrap();
load_functions(root, &mut libraries);
- let mut output = std::path::PathBuf::from(reader::workspace_dir());
+ let mut output = std::path::PathBuf::from(metadata::workspace_dir());
output.push(format!("crates/targets/{}/lib", platform));
let _ = std::fs::remove_dir_all(&output);
std::fs::create_dir_all(&output).unwrap();
diff --git a/crates/tools/sys/Cargo.toml b/crates/tools/sys/Cargo.toml
index 4a5cef4906..cfbc658394 100644
--- a/crates/tools/sys/Cargo.toml
+++ b/crates/tools/sys/Cargo.toml
@@ -1,10 +1,10 @@
[package]
-name = "windows_sys"
+name = "tool_sys"
version = "0.0.0"
edition = "2018"
publish = false
[dependencies]
-reader = { package = "windows_reader", path = "../../libs/reader", version = "0.30.0" }
+metadata = { package = "windows-metadata", path = "../../libs/metadata", version = "0.30.0" }
bindgen = { package = "windows-bindgen", path = "../../libs/bindgen", version = "0.30.0" }
rayon = "1.5.1"
diff --git a/crates/tools/sys/src/main.rs b/crates/tools/sys/src/main.rs
index e364b9e6e2..6d6a3a38ca 100644
--- a/crates/tools/sys/src/main.rs
+++ b/crates/tools/sys/src/main.rs
@@ -4,12 +4,12 @@ use std::io::prelude::*;
const EXCLUDE_NAMESPACES: [&str; 1] = ["Windows.Win32.Interop"];
fn main() {
- let mut output = std::path::PathBuf::from(reader::workspace_dir());
+ let mut output = std::path::PathBuf::from(metadata::workspace_dir());
output.push("crates/libs/sys/src/Windows");
let _ = std::fs::remove_dir_all(&output);
output.pop();
- let reader = reader::TypeReader::get();
+ let reader = metadata::TypeReader::get();
let root = reader.types.get_namespace("Windows").unwrap();
let mut trees = Vec::new();
@@ -90,7 +90,7 @@ deprecated = []
}
}
-fn collect_trees<'a>(output: &std::path::Path, root: &'static str, tree: &'a reader::TypeTree, trees: &mut Vec<&'a reader::TypeTree>) {
+fn collect_trees<'a>(output: &std::path::Path, root: &'static str, tree: &'a metadata::TypeTree, trees: &mut Vec<&'a metadata::TypeTree>) {
if EXCLUDE_NAMESPACES.iter().any(|&x| x == tree.namespace) {
return;
}
@@ -102,7 +102,7 @@ fn collect_trees<'a>(output: &std::path::Path, root: &'static str, tree: &'a rea
std::fs::create_dir_all(&path).unwrap();
}
-fn gen_tree(output: &std::path::Path, _root: &'static str, tree: &reader::TypeTree) {
+fn gen_tree(output: &std::path::Path, _root: &'static str, tree: &metadata::TypeTree) {
let mut path = std::path::PathBuf::from(output);
path.push(tree.namespace.replace('.', "/"));
diff --git a/crates/tools/api/Cargo.toml b/crates/tools/windows/Cargo.toml
similarity index 61%
rename from crates/tools/api/Cargo.toml
rename to crates/tools/windows/Cargo.toml
index bc92f8a46e..c178a56c2d 100644
--- a/crates/tools/api/Cargo.toml
+++ b/crates/tools/windows/Cargo.toml
@@ -1,10 +1,10 @@
[package]
-name = "windows_api"
+name = "tool_windows"
version = "0.0.0"
edition = "2018"
publish = false
[dependencies]
-reader = { package = "windows_reader", path = "../../libs/reader", version = "0.30.0" }
+metadata = { package = "windows-metadata", path = "../../libs/metadata", version = "0.30.0" }
bindgen = { package = "windows-bindgen", path = "../../libs/bindgen", version = "0.30.0" }
rayon = "1.5.1"
diff --git a/crates/tools/api/src/main.rs b/crates/tools/windows/src/main.rs
similarity index 93%
rename from crates/tools/api/src/main.rs
rename to crates/tools/windows/src/main.rs
index 55bb199a2e..9bce984951 100644
--- a/crates/tools/api/src/main.rs
+++ b/crates/tools/windows/src/main.rs
@@ -4,12 +4,12 @@ use std::io::prelude::*;
const EXCLUDE_NAMESPACES: [&str; 1] = ["Windows.Win32.Interop"];
fn main() {
- let mut output = std::path::PathBuf::from(reader::workspace_dir());
+ let mut output = std::path::PathBuf::from(metadata::workspace_dir());
output.push("crates/libs/windows/src/Windows");
let _ = std::fs::remove_dir_all(&output);
output.pop();
- let reader = reader::TypeReader::get();
+ let reader = metadata::TypeReader::get();
let root = reader.types.get_namespace("Windows").unwrap();
let mut trees = Vec::new();
@@ -69,13 +69,13 @@ windows_x86_64_gnu = { path = "../../targets/x86_64_gnu", version = "0.30.0" }
windows_x86_64_gnu = { path = "../../targets/x86_64_gnu", version = "0.30.0" }
[dependencies]
-windows_macros = { path = "../macros", version = "0.30.0", optional = true }
+windows-implement = { path = "../implement", version = "0.30.0", optional = true }
[features]
default = []
deprecated = []
alloc = []
-implement = ["windows_macros"]
+implement = ["windows-implement"]
"#
.as_bytes(),
)
@@ -96,7 +96,7 @@ implement = ["windows_macros"]
}
}
-fn collect_trees<'a>(output: &std::path::Path, root: &'static str, tree: &'a reader::TypeTree, trees: &mut Vec<&'a reader::TypeTree>) {
+fn collect_trees<'a>(output: &std::path::Path, root: &'static str, tree: &'a metadata::TypeTree, trees: &mut Vec<&'a metadata::TypeTree>) {
if EXCLUDE_NAMESPACES.iter().any(|&x| x == tree.namespace) {
return;
}
@@ -108,7 +108,7 @@ fn collect_trees<'a>(output: &std::path::Path, root: &'static str, tree: &'a rea
std::fs::create_dir_all(&path).unwrap();
}
-fn gen_tree(output: &std::path::Path, _root: &'static str, tree: &reader::TypeTree) {
+fn gen_tree(output: &std::path::Path, _root: &'static str, tree: &metadata::TypeTree) {
println!("{}", tree.namespace);
let path = std::path::PathBuf::from(output).join(tree.namespace.replace('.', "/"));
diff --git a/crates/tools/yml/Cargo.toml b/crates/tools/yml/Cargo.toml
index 6766ae54d9..89fe14ac8f 100644
--- a/crates/tools/yml/Cargo.toml
+++ b/crates/tools/yml/Cargo.toml
@@ -1,8 +1,8 @@
[package]
-name = "windows_yml"
+name = "tool_yml"
version = "0.0.0"
edition = "2018"
publish = false
[dependencies]
-reader = { package = "windows_reader", path = "../../libs/reader", version = "0.30.0" }
+metadata = { package = "windows-metadata", path = "../../libs/metadata", version = "0.30.0" }
diff --git a/crates/tools/yml/src/main.rs b/crates/tools/yml/src/main.rs
index 57aafd6c79..4edb09c290 100644
--- a/crates/tools/yml/src/main.rs
+++ b/crates/tools/yml/src/main.rs
@@ -1,5 +1,5 @@
fn main() {
- let root = std::path::PathBuf::from(reader::workspace_dir());
+ let root = std::path::PathBuf::from(metadata::workspace_dir());
let mut yml = r#"name: Test
on:
@@ -7,73 +7,65 @@ on:
push:
branches:
- master
+
env:
RUSTFLAGS: -Dwarnings
jobs:
test:
name: Test
- runs-on: ${{ matrix.os }}
+ runs-on: windows-latest
+
strategy:
matrix:
include:
- - os: windows-latest
- rust: stable
- other: x86_64-pc-windows-msvc
- platform: x64
- - os: windows-latest
- rust: nightly
- other: i686-pc-windows-msvc
- platform: x86
- - os: windows-latest
- rust: nightly
- other: x86_64-pc-windows-gnu
- platform: x64
- - os: windows-latest
- rust: stable
- other: i686-pc-windows-gnu
- platform: x86
+ - version: stable
+ target: x86_64-pc-windows-msvc
+ - version: nightly
+ target: i686-pc-windows-msvc
+ - version: nightly
+ target: x86_64-pc-windows-gnu
+ - version: stable
+ target: i686-pc-windows-gnu
+
steps:
- name: Checkout
uses: actions/checkout@v2
-
- name: Update toolchain
- run: rustup update --no-self-update ${{ matrix.rust }} && rustup default ${{ matrix.rust }}
-
+ run: rustup update --no-self-update ${{ matrix.version }} && rustup default ${{ matrix.version }}
- name: Add toolchain target
- run: rustup target add ${{ matrix.other }}
-
+ run: rustup target add ${{ matrix.target }}
+ - name: Install clippy
+ run: rustup component add clippy
- name: Configure Cargo for GNU toolchain
shell: pwsh
run: |
Add-Content $env:USERPROFILE\.cargo\config @"
- [target.x86_64-pc-windows-gnu]
- linker = `"C:\\msys64\\mingw64\\bin\\x86_64-w64-mingw32-gcc.exe`"
- ar = `"C:\\msys64\\mingw64\\bin\\ar.exe`"
- [target.i686-pc-windows-gnu]
- linker = `"C:\\msys64\\mingw32\\bin\\i686-w64-mingw32-gcc.exe`"
- ar = `"C:\\msys64\\mingw32\\bin\\ar.exe`"
+ [target.x86_64-pc-windows-gnu]
+ linker = `"C:\\msys64\\mingw64\\bin\\x86_64-w64-mingw32-gcc.exe`"
+ ar = `"C:\\msys64\\mingw64\\bin\\ar.exe`"
+ [target.i686-pc-windows-gnu]
+ linker = `"C:\\msys64\\mingw32\\bin\\i686-w64-mingw32-gcc.exe`"
+ ar = `"C:\\msys64\\mingw32\\bin\\ar.exe`"
"@
- if: contains(matrix.other, 'windows-gnu')
-
+ if: contains(matrix.target, 'windows-gnu')
- name: Configure environment for GNU toolchain
shell: pwsh
run: |
- if("${{ matrix.other }}" -eq "i686-pc-windows-gnu") {
- $MingwPath = "C:\msys64\mingw32\bin"
+ if("${{ matrix.target }}" -eq "i686-pc-windows-gnu") {
+ $MingwPath = "C:\msys64\mingw32\bin"
} else {
- $MingwPath = "C:\msys64\mingw64\bin"
+ $MingwPath = "C:\msys64\mingw64\bin"
}
$MingwPath | Out-File -FilePath $env:GITHUB_PATH -Encoding utf8 -Append
- if: contains(matrix.other, 'windows-gnu')
-
- - name: Test stable (${{ matrix.os }})
+ if: contains(matrix.target, 'windows-gnu')
+ - name: Test stable
run: |"#
.to_string();
- for name in dirs(&root, "crates/tests") {
- if !name.starts_with("implement") {
- yml.push_str(&format!("\n cargo test --target ${{{{ matrix.other }}}} -p test_{} &&", name));
+ for name in crates(&root) {
+ if !requires_nightly(&name) {
+ yml.push_str(&format!("\n cargo test --target ${{{{ matrix.target }}}} -p {} &&", name));
}
}
@@ -81,33 +73,77 @@ jobs:
yml.push_str(
r#"
- if: contains(matrix.rust, 'stable')
+ if: matrix.version == 'stable'
- - name: Test nightly (${{ matrix.os }})
+ - name: Test nightly
run: |"#,
);
- for name in dirs(&root, "crates/tests") {
- if name.starts_with("implement") {
- yml.push_str(&format!("\n cargo test --target ${{{{ matrix.other }}}} -p test_{} &&", name));
+ for name in crates(&root) {
+ if requires_nightly(&name) {
+ yml.push_str(&format!("\n cargo test --target ${{{{ matrix.target }}}} -p {} &&", name));
}
}
- for name in dirs(&root, "crates/samples") {
- yml.push_str(&format!("\n cargo test --target ${{{{ matrix.other }}}} -p {} &&", name));
+ yml.truncate(yml.len() - 2);
+
+ yml.push_str(
+ r#"
+ if: matrix.version == 'nightly'
+
+ - name: Test clippy
+ run: |"#,
+ );
+
+ for name in crates(&root) {
+ yml.push_str(&format!("\n cargo clippy -p {} &&", name));
}
yml.truncate(yml.len() - 2);
yml.push_str(
r#"
- if: contains(matrix.rust, 'nightly')
+ if: matrix.version == 'nightly' && matrix.target == 'x86_64-pc-windows-gnu'
"#,
);
std::fs::write(root.join(".github/workflows/test.yml"), yml.as_bytes()).unwrap();
}
+fn crates(root: &std::path::Path) -> Vec {
+ let mut crates = vec![];
+
+ for dir in dirs(root, "crates/libs") {
+ if dir == "windows" {
+ crates.push("windows".to_string());
+ } else {
+ crates.push(format!("windows-{}", dir));
+ }
+ }
+
+ for dir in dirs(root, "crates/samples") {
+ crates.push(format!("sample_{}", dir));
+ }
+
+ for dir in dirs(root, "crates/targets") {
+ crates.push(format!("windows_{}", dir));
+ }
+
+ for dir in dirs(root, "crates/tests") {
+ crates.push(format!("test_{}", dir));
+ }
+
+ for dir in dirs(root, "crates/tools") {
+ crates.push(format!("tool_{}", dir));
+ }
+
+ crates
+}
+
+fn requires_nightly(name: &str) -> bool {
+ name.contains("implement") || name.starts_with("sample")
+}
+
fn dirs(root: &std::path::Path, path: &str) -> Vec {
let mut dirs = vec![];