From 7b30329d299554044c0167596c0a648e2bbe3cba Mon Sep 17 00:00:00 2001 From: Michael Telatynski <7t3chguy@gmail.com> Date: Wed, 12 Apr 2023 14:38:24 +0100 Subject: [PATCH] Stash windows arm64 work --- .github/workflows/build_and_test.yaml | 2 +- .github/workflows/build_windows.yaml | 17 ++++++++++++----- docs/windows-requirements.md | 6 ++++++ scripts/cl.bat | 7 +++++++ 4 files changed, 26 insertions(+), 6 deletions(-) create mode 100644 scripts/cl.bat diff --git a/.github/workflows/build_and_test.yaml b/.github/workflows/build_and_test.yaml index fc09e03..72c7d2c 100644 --- a/.github/workflows/build_and_test.yaml +++ b/.github/workflows/build_and_test.yaml @@ -19,7 +19,7 @@ jobs: uses: ./.github/workflows/build_windows.yaml strategy: matrix: - arch: [x64, x86] + arch: [x64, x86, arm64] with: arch: ${{ matrix.arch }} diff --git a/.github/workflows/build_windows.yaml b/.github/workflows/build_windows.yaml index f156081..4fa55dc 100644 --- a/.github/workflows/build_windows.yaml +++ b/.github/workflows/build_windows.yaml @@ -72,11 +72,6 @@ jobs: path: | ./.hak - - name: Set up build tools - uses: ilammy/msvc-dev-cmd@v1 - with: - arch: ${{ steps.config.outputs.arch || inputs.arch }} - # ActiveTCL package on choco is from 2015, # this one is newer but includes more than we need - name: Choco install tclsh @@ -109,6 +104,18 @@ jobs: - name: Install Deps run: "yarn install --frozen-lockfile" + - name: Set up sqlcipher macros + if: steps.cache.outputs.cache-hit != 'true' && contains(inputs.arch, 'arm') + shell: pwsh + run: | + echo "NCC=${{ github.workspace }}\scripts\cl.bat" | Out-File -FilePath $env:GITHUB_ENV -Encoding utf8 -Append + + - name: Set up build tools + if: steps.cache.outputs.cache-hit != 'true' + uses: ilammy/msvc-dev-cmd@v1 + with: + arch: ${{ steps.config.outputs.arch || inputs.arch }} + - name: Build Natives if: steps.cache.outputs.cache-hit != 'true' run: | diff --git a/docs/windows-requirements.md b/docs/windows-requirements.md index fc3bb13..130518a 100644 --- a/docs/windows-requirements.md +++ b/docs/windows-requirements.md @@ -13,6 +13,12 @@ If you want to build native modules, make sure that the following tools are inst - [Strawberry Perl](https://strawberryperl.com/) - [Rustup](https://rustup.rs/) - [NASM](https://www.nasm.us/) + +You can install the above tools using [Chocolatey](https://chocolatey.org/install): +```cmd +choco install --no-progress -y git nodejs-lts yarn python StrawberryPerl rustup.install nasm magicsplat-tcl-tk +``` + - [Build Tools for Visual Studio 2019](https://visualstudio.microsoft.com/downloads/#build-tools-for-visual-studio-2019) with the following configuration: - On the Workloads tab: - Desktop & Mobile -> C++ build tools diff --git a/scripts/cl.bat b/scripts/cl.bat new file mode 100644 index 0000000..e5ee0ec --- /dev/null +++ b/scripts/cl.bat @@ -0,0 +1,7 @@ +REM Batch file to aid in cross-compiling sqlcipher for Windows ARM64 +REM Full path should be passed to Makefile.msc as NCC env var + +setlocal +call "C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Auxiliary\Build\vcvarsall.bat" %VSCMD_ARG_HOST_ARCH% +cl.exe %* +endlocal