5 Commits

Author SHA1 Message Date
06d657d014 Update windows-arm.yml 2025-07-09 14:37:48 -05:00
35cc767803 Update windows-arm.yml 2025-07-09 14:24:59 -05:00
beb4a25ce2 Update windows-arm.yml 2025-07-09 14:18:32 -05:00
c7a9681530 Update windows-arm.yml 2025-07-09 14:17:19 -05:00
49d5de68f6 Update windows-arm.yml 2025-07-09 14:11:23 -05:00

View File

@ -39,7 +39,7 @@ jobs:
cmake_arch: ARM
sdk_version: '10.0.17763.0'
- arch: arm64
arch_compilename: arm64
arch_compilename: amd64_arm64
vcpkg_arch: arm64-windows-static
cmake_arch: ARM64
sdk_version: '10.0.17763.0'
@ -53,52 +53,18 @@ jobs:
- name: Checkout Source Tree
uses: actions/checkout@v4
- name: Setup vcpkg
if: matrix.arch == 'arm64'
shell: pwsh
run: |
git clone https://github.com/Microsoft/vcpkg.git
cd vcpkg
.\bootstrap-vcpkg.bat
echo "VCPKG_ROOT=$env:GITHUB_WORKSPACE/vcpkg" | Out-File -FilePath $env:GITHUB_ENV -Append
echo "VCPKG_DEFAULT_BINARY_CACHE=$env:GITHUB_WORKSPACE/vcpkg/bincache" | Out-File -FilePath $env:GITHUB_ENV -Append
echo "VCPKG_BINARY_SOURCES=clear;default,readwrite" | Out-File -FilePath $env:GITHUB_ENV -Append
- name: Cache vcpkg packages
if: matrix.arch == 'arm64'
uses: actions/cache@v4
with:
path: |
${{ github.workspace }}/vcpkg/bincache
${{ github.workspace }}/vcpkg/installed
${{ github.workspace }}/vcpkg/packages
key: vcpkg-${{ matrix.arch }}-${{ hashFiles('**/CMakeLists.txt') }}-${{ hashFiles('**/*.cmake') }}
restore-keys: |
vcpkg-${{ matrix.arch }}-${{ hashFiles('**/CMakeLists.txt') }}-
vcpkg-${{ matrix.arch }}-
- name: Cache OpenSSL Binaries
if: matrix.arch == 'arm32'
uses: actions/cache@v4
uses: actions/cache/restore@v4
with:
path: |
${{ github.workspace }}/openssl-install
key: openssl-${{ matrix.arch }}-${{ hashFiles('**/CMakeLists.txt') }}
restore-keys: |
${{ github.workspace }}-OpenSSL-MSVC-${{ matrix.arch }}
key: openssl-1.1.1-${{ matrix.arch }}-${{ hashFiles('**/CMakeLists.txt') }}
- name: Install OpenSSL
- name: Checkout and Compile OpenSSL v1.1.1
shell: pwsh
run: |
if ("${{ matrix.arch }}" -eq "arm32") {
# For ARM32, build OpenSSL from source
$opensslVersion = "1.1.1w"
$opensslDir = "openssl-src"
# Download OpenSSL source
Invoke-WebRequest -Uri "https://www.openssl.org/source/openssl-$opensslVersion.tar.gz" -OutFile "openssl.tar.gz"
tar -xf openssl.tar.gz
Rename-Item -Path "openssl-$opensslVersion" -NewName $opensslDir
cd $opensslDir
git clone https://github.com/UMSKT/openssl --branch OpenSSL_1_1_1-stable --depth 1 openssl-src
cd openssl-src
# Install Perl if needed
choco install strawberryperl -y
@ -110,32 +76,31 @@ jobs:
$vsPath = & "${env:ProgramFiles(x86)}\Microsoft Visual Studio\Installer\vswhere.exe" -latest -property installationPath
$vcvarsall = Join-Path $vsPath "VC\Auxiliary\Build\vcvarsall.bat"
# Configure OpenSSL
perl Configure VC-WIN32-ARM no-shared no-asm no-engine --prefix="$env:GITHUB_WORKSPACE/openssl-install"
# Build using MSVC ARM32 tools
cmd /c "call `"$vcvarsall`" amd64_arm && nmake && nmake install_sw"
cd ..
$vcTarget = ""
if ("${{ matrix.arch}}" -eq "arm32") {
$vcTarget = "VC-WIN32-ARM"
} else {
# For ARM64, use vcpkg as before
New-Item -ItemType Directory -Force -Path $env:VCPKG_DEFAULT_BINARY_CACHE
& "$env:VCPKG_ROOT\vcpkg.exe" install openssl:${{ matrix.vcpkg_arch }} --clean-after-build
echo "OPENSSL_ROOT_DIR=$env:VCPKG_ROOT/installed/${{ matrix.vcpkg_arch }}" | Out-File -FilePath $env:GITHUB_ENV -Append
$vcTarget = "VC-WIN64-ARM"
}
# Configure OpenSSL
perl Configure $vcTarget no-shared no-asm no-engine --prefix="$env:GITHUB_WORKSPACE/OpenSSL-MSVC-${{ matrix.arch }}"
# Build using MSVC ARM32 tools
cmd /c "call `"$vcvarsall`" ${{matrix.arch_compilename}} && nmake && nmake install_sw"
cd ..
- name: Save OpenSSL Binaries
if: matrix.arch == 'arm32'
uses: actions/cache/save@v4
with:
path: |
${{ github.workspace }}/openssl-install
key: openssl-${{ matrix.arch }}-${{ hashFiles('**/CMakeLists.txt') }}
${{ github.workspace }}/OpenSSL-MSVC-${{ matrix.arch }}
key: openssl-1.1.1-${{ matrix.arch }}-${{ hashFiles('**/CMakeLists.txt') }}
- name: Set OpenSSL Environment
if: matrix.arch == 'arm32'
shell: pwsh
run: |
echo "OPENSSL_ROOT=$env:GITHUB_WORKSPACE/openssl-install" | Out-File -FilePath $env:GITHUB_ENV -Append
echo "OPENSSL_ROOT=$env:GITHUB_WORKSPACE/OpenSSL-MSVC-${{ matrix.arch }}" | Out-File -FilePath $env:GITHUB_ENV -Append
echo "OPENSSL_LIBDIR=lib" | Out-File -FilePath $env:GITHUB_ENV -Append
- name: Configure UMSKT