Skip to content

Commit

Permalink
add back dynamically linked build
Browse files Browse the repository at this point in the history
  • Loading branch information
Young-Lord committed May 28, 2024
1 parent 12cf7b1 commit 9826361
Showing 1 changed file with 21 additions and 5 deletions.
26 changes: 21 additions & 5 deletions .github/workflows/build-windows.yml
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,8 @@ jobs:
name: Build
runs-on: ${{ matrix.os }}
env:
VCPKG_DEFAULT_TRIPLET: ${{ matrix.arch == 'Win32' && 'x86' || matrix.arch == 'Win64' && 'x64' }}-windows
VCPKG_DYNAMIC_TRIPLET: ${{ matrix.arch == 'Win32' && 'x86' || matrix.arch == 'Win64' && 'x64' }}-windows
VCPKG_STATIC_TRIPLET: ${{ matrix.arch == 'Win32' && 'x86' || matrix.arch == 'Win64' && 'x64' }}-windows-static
SQLCIPHER_NMAKE_VARS: USE_AMALGAMATION=1 NO_TCL=1 SQLITE3DLL=sqlcipher.dll SQLITE3LIB=sqlcipher.lib SQLITE3EXE=sqlcipher.exe
SQLCIPHER_NMAKE_OPT_FEATURE_FLAGS: -DSQLITE_TEMP_STORE=2 -DSQLITE_HAS_CODEC=1 -DSQLITE_ENABLE_FTS3=1 -DSQLITE_ENABLE_FTS5=1 -DSQLITE_ENABLE_FTS3_PARENTHESIS=1 -DSQLITE_ENABLE_STAT4=1 -DSQLITE_SOUNDEX=1 -DSQLITE_ENABLE_JSON1=1 -DSQLITE_ENABLE_GEOPOLY=1 -DSQLITE_ENABLE_RTREE=1 -DSQLCIPHER_CRYPTO_OPENSSL=1 -DSQLITE_MAX_ATTACHED=125
permissions:
Expand Down Expand Up @@ -46,7 +47,7 @@ jobs:
- name: Setup OpenSSL
run: |
vcpkg install openssl:${{ env.VCPKG_DEFAULT_TRIPLET }}-static --binarysource="clear;x-gha,readwrite"
vcpkg install openssl:${{ env.VCPKG_DYNAMIC_TRIPLET }} openssl:${{ env.VCPKG_STATIC_TRIPLET }} --binarysource="clear;x-gha,readwrite"
- name: Init folders
continue-on-error: true
Expand All @@ -66,13 +67,28 @@ jobs:
# ref: https://github.com/actions/runner-images/blob/main/images/windows/scripts/build/Install-OpenSSL.ps1#L12
# ref: https://blog.hamaluik.ca/posts/statically-linking-sqlcipher-on-windows
run: |
mkdir -p sqlcipher\static
nmake /f Makefile.msc clean
nmake /f Makefile.msc ${{ env.SQLCIPHER_NMAKE_VARS }} LTLINKOPTS="`"$env:VCPKG_INSTALLATION_ROOT\packages\openssl_${{ env.VCPKG_DEFAULT_TRIPLET }}-static\lib\libcrypto.lib`"" TCCOPTS="`"-I$env:VCPKG_INSTALLATION_ROOT\packages\openssl_${{ env.VCPKG_DEFAULT_TRIPLET }}-static\include`"" RCCOPTS="`"-I$env:VCPKG_INSTALLATION_ROOT\packages\openssl_${{ env.VCPKG_DEFAULT_TRIPLET }}-static\include`"" LTLIBPATHS="`"/LIBPATH:$env:VCPKG_INSTALLATION_ROOT\packages\openssl_${{ env.VCPKG_DEFAULT_TRIPLET }}-static\lib`"" OPT_FEATURE_FLAGS="${{ env.SQLCIPHER_NMAKE_OPT_FEATURE_FLAGS }} `"-I$env:VCPKG_INSTALLATION_ROOT\packages\openssl_${{ env.VCPKG_DEFAULT_TRIPLET }}-static\include`"" LTLIBS="libcrypto.lib libssl.lib WS2_32.Lib Gdi32.Lib AdvAPI32.Lib Crypt32.Lib User32.Lib"
nmake /f Makefile.msc ${{ env.SQLCIPHER_NMAKE_VARS }} LTLINKOPTS="`"$env:VCPKG_INSTALLATION_ROOT\packages\openssl_${{ env.VCPKG_STATIC_TRIPLET }}\lib\libcrypto.lib`"" TCCOPTS="`"-I$env:VCPKG_INSTALLATION_ROOT\packages\openssl_${{ env.VCPKG_STATIC_TRIPLET }}\include`"" RCCOPTS="`"-I$env:VCPKG_INSTALLATION_ROOT\packages\openssl_${{ env.VCPKG_STATIC_TRIPLET }}\include`"" LTLIBPATHS="`"/LIBPATH:$env:VCPKG_INSTALLATION_ROOT\packages\openssl_${{ env.VCPKG_STATIC_TRIPLET }}\lib`"" OPT_FEATURE_FLAGS="${{ env.SQLCIPHER_NMAKE_OPT_FEATURE_FLAGS }} `"-I$env:VCPKG_INSTALLATION_ROOT\packages\openssl_${{ env.VCPKG_STATIC_TRIPLET }}\include`"" LTLIBS="libcrypto.lib libssl.lib WS2_32.Lib Gdi32.Lib AdvAPI32.Lib Crypt32.Lib User32.Lib"
copy sqlcipher.exe sqlcipher-${{ matrix.arch == 'Win32' && 'x86' || matrix.arch == 'Win64' && 'x64' }}.exe
copy sqlcipher.exe sqlcipher
copy sqlite3.c,sqlite3.h,sqlcipher.dll,sqlcipher.lib sqlcipher
copy sqlite3.c,sqlite3.h,sqlcipher.dll,sqlcipher.lib,sqlcipher.exe sqlcipher\static
working-directory: C:\dev\SQLCipher-${{ matrix.arch }}

- name: Build SQLCipher (dynamically linked + amalgamation)
# ref: https://github.com/actions/runner-images/blob/main/images/windows/scripts/build/Install-OpenSSL.ps1#L12
run: |
mkdir -p sqlcipher\dynamic
nmake /f Makefile.msc clean
nmake /f Makefile.msc ${{ env.SQLCIPHER_NMAKE_VARS }} LTLINKOPTS="`"$env:VCPKG_INSTALLATION_ROOT\packages\openssl_${{ env.VCPKG_DYNAMIC_TRIPLET }}\lib\libcrypto.lib`"" OPT_FEATURE_FLAGS="${{ env.SQLCIPHER_NMAKE_OPT_FEATURE_FLAGS }} `"-I$env:VCPKG_INSTALLATION_ROOT\packages\openssl_${{ env.VCPKG_DYNAMIC_TRIPLET }}\include`""
copy sqlcipher.exe,"$env:VCPKG_INSTALLATION_ROOT\packages\openssl_${{ env.VCPKG_DYNAMIC_TRIPLET }}\libcrypto-*" sqlcipher
copy sqlite3.c,sqlite3.h,sqlcipher.dll,sqlcipher.lib,sqlcipher.exe,"$env:VCPKG_INSTALLATION_ROOT\packages\openssl_${{ env.VCPKG_DYNAMIC_TRIPLET }}\libcrypto-*" sqlcipher
working-directory: C:\dev\SQLCipher-${{ matrix.arch }}

# - name: Copy SQLCipher amalgamation
# run: |
# copy sqlite3.c,sqlite3.h sqlcipher
# working-directory: C:\dev\SQLCipher-${{ matrix.arch }}

- name: Copy LICENSE
run: |
copy LICENSE* C:\dev\SQLCipher-${{ matrix.arch }}\sqlcipher
Expand Down

0 comments on commit 9826361

Please sign in to comment.