From fc6d2f6c05ce3258b27306686a56c84e0a87d7e3 Mon Sep 17 00:00:00 2001 From: Kenny Kerr Date: Thu, 27 Jan 2022 15:59:01 -0800 Subject: [PATCH] Improve crate naming and build validation (#1469) --- .github/readme.md | 2 +- .github/workflows/build.yml | 10 +- .github/workflows/test.yml | 262 ++++++++++++------ crates/libs/bindgen/Cargo.toml | 4 +- crates/libs/bindgen/src/lib.rs | 4 +- crates/libs/{macros => implement}/Cargo.toml | 4 +- .../{macros => implement}/src/implement.rs | 2 +- crates/libs/{macros => implement}/src/lib.rs | 0 crates/libs/{reader => metadata}/Cargo.toml | 2 +- .../default/Windows.Win32.Interop.winmd | Bin .../default/Windows.Win32.winmd | Bin .../default/Windows.winmd | Bin .../{reader => metadata}/default/readme.md | 0 .../{reader => metadata}/src/async_kind.rs | 0 crates/libs/{reader => metadata}/src/blob.rs | 0 crates/libs/{reader => metadata}/src/codes.rs | 0 .../src/constant_value.rs | 0 .../{reader => metadata}/src/element_type.rs | 0 crates/libs/{reader => metadata}/src/file.rs | 0 crates/libs/{reader => metadata}/src/guid.rs | 0 .../src/interface_kind.rs | 0 crates/libs/{reader => metadata}/src/lib.rs | 0 .../{reader => metadata}/src/method_info.rs | 0 .../src/method_signature.rs | 0 .../{reader => metadata}/src/param_flags.rs | 0 crates/libs/{reader => metadata}/src/row.rs | 0 .../{reader => metadata}/src/signature.rs | 0 .../src/signature_kind.rs | 0 .../src/tables/assembly_ref.rs | 0 .../src/tables/attribute.rs | 0 .../src/tables/class_layout.rs | 0 .../src/tables/constant.rs | 0 .../{reader => metadata}/src/tables/field.rs | 0 .../src/tables/generic_param.rs | 0 .../src/tables/impl_map.rs | 0 .../src/tables/interface_impl.rs | 0 .../src/tables/member_ref.rs | 0 .../src/tables/method_def.rs | 0 .../{reader => metadata}/src/tables/mod.rs | 0 .../{reader => metadata}/src/tables/module.rs | 0 .../src/tables/module_ref.rs | 0 .../src/tables/nested_class.rs | 0 .../{reader => metadata}/src/tables/param.rs | 0 .../src/tables/type_def.rs | 0 .../src/tables/type_ref.rs | 0 .../src/tables/type_spec.rs | 0 .../libs/{reader => metadata}/src/traits.rs | 0 .../{reader => metadata}/src/type_kind.rs | 0 .../{reader => metadata}/src/type_name.rs | 0 .../{reader => metadata}/src/type_reader.rs | 0 .../{reader => metadata}/src/type_tree.rs | 0 .../{reader => metadata}/src/workspace.rs | 0 crates/libs/{quote => tokens}/Cargo.toml | 2 +- crates/libs/{quote => tokens}/src/lib.rs | 0 crates/libs/{quote => tokens}/src/runtime.rs | 0 .../libs/{quote => tokens}/src/to_tokens.rs | 0 .../{quote => tokens}/src/token_stream.rs | 0 crates/libs/windows/Cargo.toml | 4 +- crates/libs/windows/src/core/mod.rs | 2 +- crates/samples/com_uri/Cargo.toml | 2 +- crates/samples/core_app/Cargo.toml | 2 +- crates/samples/core_app/appx/AppxManifest.xml | 2 +- crates/samples/create_window/Cargo.toml | 2 +- crates/samples/create_window_sys/Cargo.toml | 2 +- crates/samples/direct2d/Cargo.toml | 2 +- crates/samples/direct3d12/Cargo.toml | 2 +- crates/samples/enum_windows/Cargo.toml | 2 +- crates/samples/enum_windows_sys/Cargo.toml | 2 +- crates/samples/kernel_event/Cargo.toml | 2 +- crates/samples/memory_buffer/Cargo.toml | 2 +- crates/samples/message_box/Cargo.toml | 2 +- crates/samples/ocr/Cargo.toml | 2 +- crates/samples/overlapped/Cargo.toml | 2 +- crates/samples/rss/Cargo.toml | 2 +- crates/samples/simple/Cargo.toml | 2 +- crates/samples/spellchecker/Cargo.toml | 2 +- crates/samples/uiautomation/Cargo.toml | 2 +- crates/samples/xaml_app/Cargo.toml | 2 +- crates/samples/xaml_app/appx/AppxManifest.xml | 2 +- crates/samples/xml/Cargo.toml | 2 +- crates/tests/implement_winrt/Cargo.toml | 3 - crates/tools/bindings/Cargo.toml | 4 +- crates/tools/bindings/src/main.rs | 2 +- crates/tools/gnu/Cargo.toml | 4 +- crates/tools/gnu/src/main.rs | 4 +- crates/tools/msvc/Cargo.toml | 4 +- crates/tools/msvc/src/main.rs | 4 +- crates/tools/sys/Cargo.toml | 4 +- crates/tools/sys/src/main.rs | 8 +- crates/tools/{api => windows}/Cargo.toml | 4 +- crates/tools/{api => windows}/src/main.rs | 12 +- crates/tools/yml/Cargo.toml | 4 +- crates/tools/yml/src/main.rs | 132 +++++---- 93 files changed, 322 insertions(+), 207 deletions(-) rename crates/libs/{macros => implement}/Cargo.toml (77%) rename crates/libs/{macros => implement}/src/implement.rs (99%) rename crates/libs/{macros => implement}/src/lib.rs (100%) rename crates/libs/{reader => metadata}/Cargo.toml (89%) rename crates/libs/{reader => metadata}/default/Windows.Win32.Interop.winmd (100%) rename crates/libs/{reader => metadata}/default/Windows.Win32.winmd (100%) rename crates/libs/{reader => metadata}/default/Windows.winmd (100%) rename crates/libs/{reader => metadata}/default/readme.md (100%) rename crates/libs/{reader => metadata}/src/async_kind.rs (100%) rename crates/libs/{reader => metadata}/src/blob.rs (100%) rename crates/libs/{reader => metadata}/src/codes.rs (100%) rename crates/libs/{reader => metadata}/src/constant_value.rs (100%) rename crates/libs/{reader => metadata}/src/element_type.rs (100%) rename crates/libs/{reader => metadata}/src/file.rs (100%) rename crates/libs/{reader => metadata}/src/guid.rs (100%) rename crates/libs/{reader => metadata}/src/interface_kind.rs (100%) rename crates/libs/{reader => metadata}/src/lib.rs (100%) rename crates/libs/{reader => metadata}/src/method_info.rs (100%) rename crates/libs/{reader => metadata}/src/method_signature.rs (100%) rename crates/libs/{reader => metadata}/src/param_flags.rs (100%) rename crates/libs/{reader => metadata}/src/row.rs (100%) rename crates/libs/{reader => metadata}/src/signature.rs (100%) rename crates/libs/{reader => metadata}/src/signature_kind.rs (100%) rename crates/libs/{reader => metadata}/src/tables/assembly_ref.rs (100%) rename crates/libs/{reader => metadata}/src/tables/attribute.rs (100%) rename crates/libs/{reader => metadata}/src/tables/class_layout.rs (100%) rename crates/libs/{reader => metadata}/src/tables/constant.rs (100%) rename crates/libs/{reader => metadata}/src/tables/field.rs (100%) rename crates/libs/{reader => metadata}/src/tables/generic_param.rs (100%) rename crates/libs/{reader => metadata}/src/tables/impl_map.rs (100%) rename crates/libs/{reader => metadata}/src/tables/interface_impl.rs (100%) rename crates/libs/{reader => metadata}/src/tables/member_ref.rs (100%) rename crates/libs/{reader => metadata}/src/tables/method_def.rs (100%) rename crates/libs/{reader => metadata}/src/tables/mod.rs (100%) rename crates/libs/{reader => metadata}/src/tables/module.rs (100%) rename crates/libs/{reader => metadata}/src/tables/module_ref.rs (100%) rename crates/libs/{reader => metadata}/src/tables/nested_class.rs (100%) rename crates/libs/{reader => metadata}/src/tables/param.rs (100%) rename crates/libs/{reader => metadata}/src/tables/type_def.rs (100%) rename crates/libs/{reader => metadata}/src/tables/type_ref.rs (100%) rename crates/libs/{reader => metadata}/src/tables/type_spec.rs (100%) rename crates/libs/{reader => metadata}/src/traits.rs (100%) rename crates/libs/{reader => metadata}/src/type_kind.rs (100%) rename crates/libs/{reader => metadata}/src/type_name.rs (100%) rename crates/libs/{reader => metadata}/src/type_reader.rs (100%) rename crates/libs/{reader => metadata}/src/type_tree.rs (100%) rename crates/libs/{reader => metadata}/src/workspace.rs (100%) rename crates/libs/{quote => tokens}/Cargo.toml (90%) rename crates/libs/{quote => tokens}/src/lib.rs (100%) rename crates/libs/{quote => tokens}/src/runtime.rs (100%) rename crates/libs/{quote => tokens}/src/to_tokens.rs (100%) rename crates/libs/{quote => tokens}/src/token_stream.rs (100%) rename crates/tools/{api => windows}/Cargo.toml (61%) rename crates/tools/{api => windows}/src/main.rs (93%) 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![];