Skip to content

Commit e41924b

Browse files
committed
Build w/ and w/o Ninja on Windows
1 parent 81618ac commit e41924b

File tree

2 files changed

+42
-18
lines changed

2 files changed

+42
-18
lines changed

.github/workflows/cross.yml

Lines changed: 27 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -140,19 +140,25 @@ jobs:
140140

141141
aws-lc-rs-windows-gnu:
142142
if: github.repository_owner == 'aws'
143-
name: ${{ matrix.target }}
143+
name: ${{ matrix.target }} ${{ (matrix.ninja == '1' && 'w/ Ninja') || 'w/o Ninja'}}
144144
runs-on: windows-latest
145145
strategy:
146146
fail-fast: false
147147
matrix:
148148
target:
149149
- 'x86_64-pc-windows-gnu'
150150
# TODO: 'i686-pc-windows-gnu'
151+
ninja:
152+
- '0'
153+
- '1'
151154
steps:
152155
- uses: ilammy/setup-nasm@v1
153-
- uses: actions/checkout@v3
156+
- uses: actions/checkout@v4
154157
with:
155158
submodules: 'recursive'
159+
- name: Install ninja-build tool
160+
if: ${{ matrix.ninja == '1' }}
161+
uses: seanmiddleditch/gha-setup-ninja@v4
156162
- uses: dtolnay/rust-toolchain@master
157163
id: toolchain
158164
with:
@@ -164,8 +170,8 @@ jobs:
164170
run: cargo test -p aws-lc-rs --release --target ${{ matrix.target }} --features bindgen
165171

166172
aws-lc-rs-windows-msvc:
167-
if: github.repository_owner == 'aws'
168-
name: ${{ matrix.target }}
173+
if: ${{ github.repository_owner == 'aws' }}
174+
name: ${{ matrix.target }} ${{ (matrix.ninja == '1' && 'w/ Ninja') || 'w/o Ninja'}} - ${{ (matrix.crt_static == '1' && '/WX and crt-static') || '/WX' }}
169175
runs-on: windows-latest
170176
strategy:
171177
fail-fast: false
@@ -174,8 +180,12 @@ jobs:
174180
- 'x86_64-pc-windows-msvc'
175181
- 'i686-pc-windows-msvc'
176182
- 'aarch64-pc-windows-msvc'
177-
env:
178-
RUSTFLAGS: '-Clink-arg=/WX'
183+
ninja:
184+
- '0'
185+
- '1'
186+
crt_static:
187+
- '0'
188+
- '1'
179189
steps:
180190
- name: Install NASM
181191
if: ${{ matrix.target == 'x86_64-pc-windows-msvc' || matrix.target == 'i686-pc-windows-msvc' }}
@@ -184,6 +194,7 @@ jobs:
184194
with:
185195
submodules: 'recursive'
186196
- name: Install ninja-build tool
197+
if: ${{ matrix.ninja == '1' }}
187198
uses: seanmiddleditch/gha-setup-ninja@v4
188199
- uses: dtolnay/rust-toolchain@master
189200
id: toolchain
@@ -197,9 +208,16 @@ jobs:
197208
} else {
198209
echo "ACTION_CARGO=test" | Out-File -FilePath $env:GITHUB_ENV -Append
199210
}
200-
- name: Degbug build for ${{ matrix.target }}
211+
- name: Set RUSTFLAGS
212+
run: |
213+
if ('${{ matrix.crt_static }}' -eq '1') {
214+
echo "RUSTFLAGS=-Clink-arg=/WX -Ctarget-feature=+crt-static" | Out-File -FilePath $env:GITHUB_ENV -Append
215+
} else {
216+
echo "RUSTFLAGS=-Clink-arg=/WX" | Out-File -FilePath $env:GITHUB_ENV -Append
217+
}
218+
- name: Debug build
219+
if: ${{ matrix.target != 'aarch64-pc-windows-msvc' || matrix.ninja == '1' }}
201220
run: cargo ${{ env.ACTION_CARGO }} -p aws-lc-rs --all-targets --target ${{ matrix.target }} --features bindgen
202-
- name: No-default-features Debug Build for ${{ matrix.target }}
203-
run: cargo ${{ env.ACTION_CARGO }} -p aws-lc-rs --all-targets --target ${{ matrix.target }} --no-default-features --features aws-lc-sys
204221
- name: Release Build for ${{ matrix.target }}
222+
if: ${{ matrix.target != 'aarch64-pc-windows-msvc' || matrix.ninja == '1' }}
205223
run: cargo ${{ env.ACTION_CARGO }} --release -p aws-lc-rs --all-targets --target ${{ matrix.target }}

aws-lc-sys/builder/cmake_builder.rs

Lines changed: 15 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -67,12 +67,7 @@ impl CmakeBuilder {
6767
}
6868

6969
fn get_cmake_config(&self) -> cmake::Config {
70-
let mut cmake_cfg = cmake::Config::new(&self.manifest_dir);
71-
if cargo_env("CARGO_ENCODED_RUSTFLAGS").contains("-Ctarget-feature=+crt-static") {
72-
// See issue: https://github.com/aws/aws-lc-rs/issues/453
73-
cmake_cfg.static_crt(true);
74-
}
75-
cmake_cfg
70+
cmake::Config::new(&self.manifest_dir)
7671
}
7772

7873
#[allow(clippy::too_many_lines)]
@@ -147,9 +142,20 @@ impl CmakeBuilder {
147142
cmake_cfg.generator("Ninja");
148143
}
149144

150-
if target_os() == "windows" && target_arch() == "x86" && target_env() == "msvc" {
151-
cmake_cfg.define("CMAKE_SYSTEM_NAME", "");
152-
cmake_cfg.define("CMAKE_SYSTEM_PROCESSOR", "");
145+
if target_os() == "windows" {
146+
// See issue: https://github.com/aws/aws-lc-rs/issues/453
147+
if cargo_env("CARGO_ENCODED_RUSTFLAGS").contains("+crt-static") {
148+
cmake_cfg.static_crt(true);
149+
}
150+
// cmake_cfg.define("CMAKE_MSVC_RUNTIME_LIBRARY", "MultiThreaded");
151+
// } else {
152+
// cmake_cfg.static_crt(false);
153+
// cmake_cfg.define("CMAKE_MSVC_RUNTIME_LIBRARY", "MultiThreadedDLL");
154+
// }
155+
if target_arch() == "x86" && target_env() == "msvc" {
156+
cmake_cfg.define("CMAKE_SYSTEM_NAME", "");
157+
cmake_cfg.define("CMAKE_SYSTEM_PROCESSOR", "");
158+
}
153159
}
154160

155161
if target_vendor() == "apple" {

0 commit comments

Comments
 (0)