Skip to content

Commit 0107064

Browse files
committed
Test more windows targets
1 parent 5b24c1a commit 0107064

File tree

2 files changed

+41
-13
lines changed

2 files changed

+41
-13
lines changed

.github/workflows/cross.yml

Lines changed: 31 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -138,11 +138,28 @@ jobs:
138138
- name: cargo xwin build for `aarch64-pc-windows-msvc`
139139
run: cargo xwin build -p aws-lc-rs --release --target aarch64-pc-windows-msvc
140140

141-
aws-lc-rs-windows-mingw:
141+
aws-lc-rs-windows-cross:
142142
if: github.repository_owner == 'aws'
143-
name: x86_64-pc-windows-gnu
143+
name: ${{ matrix.target }}
144144
runs-on: windows-latest
145+
strategy:
146+
fail-fast: false
147+
matrix:
148+
target:
149+
- 'x86_64-pc-windows-gnu'
150+
- 'i686-pc-windows-msvc'
151+
# TODO: The build for 'i686-pc-windows-gnu' succeeds locally.
152+
# GH CI erroring with `undefined reference` to several assembly functions.
153+
# Verify NASM setup and symbol prefixing are working as expected.
154+
# - 'i686-pc-windows-gnu'
145155
steps:
156+
- if: ${{ matrix.target == 'i686-pc-windows-gnu' }}
157+
name: Set up MinGW
158+
shell: bash
159+
run: |
160+
choco install mingw --x86
161+
echo "C:/ProgramData/mingw64/mingw32/bin/" >> "$GITHUB_PATH"
162+
echo "export COMPILER_PATH=C:/ProgramData/mingw64/mingw32/bin/" >> "$GITHUB_ENV"
146163
- uses: ilammy/setup-nasm@v1
147164
- uses: actions/checkout@v3
148165
with:
@@ -151,11 +168,13 @@ jobs:
151168
id: toolchain
152169
with:
153170
toolchain: stable
154-
target: x86_64-pc-windows-gnu
155-
- name: Debug Test on `x86_64-pc-windows-gnu`
156-
run: cargo test -p aws-lc-rs --target x86_64-pc-windows-gnu --features bindgen
157-
- name: Release test on `x86_64-pc-windows-gnu`
158-
run: cargo test -p aws-lc-rs --release --target x86_64-pc-windows-gnu --features bindgen
171+
target: ${{ matrix.target }}
172+
- name: Debug Test on `${{ matrix.target }}`
173+
shell: bash
174+
run: cargo test -p aws-lc-rs --target ${{ matrix.target }} --features bindgen
175+
- name: Release test on `${{ matrix.target }}`
176+
shell: bash
177+
run: cargo test -p aws-lc-rs --release --target ${{ matrix.target }} --features bindgen
159178

160179
aws-lc-rs-windows-arm64:
161180
if: github.repository_owner == 'aws'
@@ -172,5 +191,9 @@ jobs:
172191
with:
173192
toolchain: stable
174193
target: aarch64-pc-windows-msvc
175-
- name: Build for `aarch64-pc-windows-msvc`
194+
- name: Degbug build for `aarch64-pc-windows-msvc`
176195
run: cargo build -p aws-lc-rs --target aarch64-pc-windows-msvc --features bindgen
196+
- name: No-default-features Debug Build for `aarch64-pc-windows-msvc`
197+
run: cargo build -p aws-lc-rs --target aarch64-pc-windows-msvc --no-default-features --features aws-lc-sys
198+
- name: Release Build for `aarch64-pc-windows-msvc`
199+
run: cargo build --release -p aws-lc-rs --target aarch64-pc-windows-msvc

aws-lc-sys/builder/cmake_builder.rs

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -134,6 +134,16 @@ impl CmakeBuilder {
134134
return cmake_cfg;
135135
}
136136

137+
if test_ninja_command() {
138+
// Use Ninja if available
139+
cmake_cfg.generator("Ninja");
140+
}
141+
142+
if target_os() == "windows" && target_arch() == "x86" && target_env() == "msvc" {
143+
cmake_cfg.define("CMAKE_SYSTEM_NAME", "");
144+
cmake_cfg.define("CMAKE_SYSTEM_PROCESSOR", "");
145+
}
146+
137147
if target_vendor() == "apple" {
138148
if target_os().to_lowercase() == "ios" {
139149
cmake_cfg.define("CMAKE_SYSTEM_NAME", "iOS");
@@ -154,11 +164,6 @@ impl CmakeBuilder {
154164
}
155165
}
156166

157-
if (target_env() != "msvc") && test_ninja_command() {
158-
// Use Ninja if available
159-
cmake_cfg.generator("Ninja");
160-
}
161-
162167
if target_underscored() == "aarch64_pc_windows_msvc" {
163168
cmake_cfg.generator("Ninja");
164169
cmake_cfg.define("CMAKE_C_COMPILER", "clang-cl");

0 commit comments

Comments
 (0)