Skip to content

Commit 34975b6

Browse files
committed
ci: stage Shining Light OpenSSL into a standard layout on Windows
FindOpenSSL does not search lib/VC/x64/MD and ignores the OPENSSL_*_LIBRARY env vars, so copy the x64/MD import libs plus headers to D:\openssl (lib/ + include/) and point OPENSSL_ROOT_DIR there. Also put the OpenSSL bin dir on PATH for the test step's runtime DLLs.
1 parent a875348 commit 34975b6

1 file changed

Lines changed: 12 additions & 8 deletions

File tree

‎.github/workflows/ci.yml‎

Lines changed: 12 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -111,14 +111,18 @@ jobs:
111111
shell: pwsh
112112
run: |
113113
choco install openssl.light -y --no-progress
114-
"OPENSSL_ROOT_DIR=C:\Program Files\OpenSSL" >> $env:GITHUB_ENV
115-
# Shining Light layouts differ by version; locate the import libs
116-
# explicitly so CMake's FindOpenSSL finds them.
117-
$crypto = Get-ChildItem -Path 'C:\Program Files\OpenSSL' -Recurse -Filter 'libcrypto*.lib' | Select-Object -First 1
118-
$ssl = Get-ChildItem -Path 'C:\Program Files\OpenSSL' -Recurse -Filter 'libssl*.lib' | Select-Object -First 1
119-
if ($crypto) { "OPENSSL_CRYPTO_LIBRARY=$($crypto.FullName)" >> $env:GITHUB_ENV }
120-
if ($ssl) { "OPENSSL_SSL_LIBRARY=$($ssl.FullName)" >> $env:GITHUB_ENV }
121-
Get-ChildItem -Path 'C:\Program Files\OpenSSL' -Recurse -Filter '*.lib' | ForEach-Object { $_.FullName }
114+
# Shining Light keeps the x64/MD import libs under lib/VC/x64/MD,
115+
# which CMake's FindOpenSSL does not search (and it ignores the
116+
# OPENSSL_*_LIBRARY env vars), so stage a standard layout in a
117+
# space-free dir and point OPENSSL_ROOT_DIR at it.
118+
New-Item -ItemType Directory -Force -Path D:\openssl\lib | Out-Null
119+
Copy-Item -Recurse 'C:\Program Files\OpenSSL\include' D:\openssl\
120+
Copy-Item 'C:\Program Files\OpenSSL\lib\VC\x64\MD\libcrypto.lib' D:\openssl\lib\
121+
Copy-Item 'C:\Program Files\OpenSSL\lib\VC\x64\MD\libssl.lib' D:\openssl\lib\
122+
"OPENSSL_ROOT_DIR=D:\openssl" >> $env:GITHUB_ENV
123+
# Runtime DLLs (libcrypto/libssl-3-x64.dll) for the test step.
124+
'C:\Program Files\OpenSSL\bin' >> $env:GITHUB_PATH
125+
Get-ChildItem D:\openssl -Recurse | ForEach-Object { $_.FullName }
122126
123127
- name: Build Node.js native module (Windows)
124128
if: ${{ matrix.platform == 'win32' }}

0 commit comments

Comments
 (0)