Skip to content

Try fix static initialisation on Windows #399

Try fix static initialisation on Windows

Try fix static initialisation on Windows #399

Workflow file for this run

name: Test vcpkg integration
on:
push:
branches:
- main
pull_request:
jobs:
build-static:
runs-on: ${{ matrix.os }}
name: "Static linkage"
strategy:
matrix:
os: [ubuntu-latest, windows-latest, macos-latest]
build_type: [Debug, Release]
steps:
- name: Checkout
uses: actions/checkout@v2
with:
submodules: 'recursive'
- uses: friendlyanon/setup-vcpkg@v1
with: { committish: 6e31ee33cc9fc93599c4ceb38e229098cf339bb7 }
- name: Install dependencies
if: matrix.os == 'ubuntu-latest'
run: |
sudo apt-get update
sudo apt-get install -y \
ninja-build
- name: Setup Ninja
if: matrix.os == 'macos-latest'
uses: seanmiddleditch/gha-setup-ninja@master
- name: Configure and build (macOS)
working-directory: ./tests
if: matrix.os == 'macos-latest'
run: |
cmake -GNinja -B build -S . -DCMAKE_TOOLCHAIN_FILE="$VCPKG_ROOT/scripts/buildsystems/vcpkg.cmake" -DVCPKG_OVERLAY_PORTS="../ports" -DCMAKE_BUILD_TYPE=${{matrix.build_type}} -DVCPKG_TARGET_TRIPLET=arm64-osx
cd build
cmake --build . --config ${{matrix.build_type}}
- name: Configure and build (Ubuntu)
working-directory: ./tests
if: matrix.os == 'ubuntu-latest'
run: |
cmake -GNinja -B build -S . -DCMAKE_TOOLCHAIN_FILE="$VCPKG_ROOT/scripts/buildsystems/vcpkg.cmake" -DVCPKG_OVERLAY_PORTS="../ports" -DCMAKE_BUILD_TYPE=${{matrix.build_type}} -DVCPKG_TARGET_TRIPLET=x64-linux
cd build
cmake --build . --config ${{matrix.build_type}}
- name: Configure and build (Windows)
working-directory: ./tests
if: matrix.os == 'windows-latest'
run: |
cmake -B build -S . -DCMAKE_TOOLCHAIN_FILE="$env:VCPKG_ROOT/scripts/buildsystems/vcpkg.cmake" -DVCPKG_OVERLAY_PORTS="../ports" -DCMAKE_BUILD_TYPE=${{matrix.build_type}} -DVCPKG_TARGET_TRIPLET=x64-windows-static -DENABLE_STATIC=ON
cd build
cmake --build . --config ${{matrix.build_type}}
- name: Run Application (Unix)
working-directory: ./tests/build
if: matrix.os == 'ubuntu-latest' || matrix.os == 'macos-latest'
run: |
./cpprealm_db_tests
- name: Run Application (Windows)
working-directory: ./tests/build
if: matrix.os == 'windows-latest'
run: |
cd ${{matrix.build_type}}
start cpprealm_db_tests.exe
build-dynamic:
runs-on: ${{ matrix.os }}
name: "Dynamic linkage"
strategy:
matrix:
os: [ ubuntu-latest, windows-latest, macos-latest ]
build_type: [ Debug, Release ]
steps:
- name: Checkout
uses: actions/checkout@v2
with:
submodules: 'recursive'
- uses: friendlyanon/setup-vcpkg@v1
with: { committish: 6e31ee33cc9fc93599c4ceb38e229098cf339bb7 }
- name: Install dependencies
if: matrix.os == 'ubuntu-latest'
run: |
sudo apt-get update
sudo apt-get install -y \
ninja-build
- name: Setup Ninja
if: matrix.os == 'macos-latest'
uses: seanmiddleditch/gha-setup-ninja@master
- name: Configure and build (macOS)
working-directory: ./tests
if: matrix.os == 'macos-latest'
run: |
cmake -GNinja -B build -S . -DCMAKE_TOOLCHAIN_FILE="$VCPKG_ROOT/scripts/buildsystems/vcpkg.cmake" -DVCPKG_OVERLAY_PORTS="../ports" -DCMAKE_BUILD_TYPE=${{matrix.build_type}} -DVCPKG_TARGET_TRIPLET=arm64-osx-dynamic
cd build
cmake --build . --config ${{matrix.build_type}}
- name: Configure and build (Ubuntu)
working-directory: ./tests
if: matrix.os == 'ubuntu-latest'
run: |
cmake -GNinja -B build -S . -DCMAKE_TOOLCHAIN_FILE="$VCPKG_ROOT/scripts/buildsystems/vcpkg.cmake" -DVCPKG_OVERLAY_PORTS="../ports" -DCMAKE_BUILD_TYPE=${{matrix.build_type}} -DVCPKG_TARGET_TRIPLET=x64-linux-dynamic
cd build
cmake --build . --config ${{matrix.build_type}}
- name: Configure and build (Windows)
working-directory: ./tests
if: matrix.os == 'windows-latest'
run: |
cmake -B build -S . -DCMAKE_TOOLCHAIN_FILE="$env:VCPKG_ROOT/scripts/buildsystems/vcpkg.cmake" -DVCPKG_OVERLAY_PORTS="../ports" -DCMAKE_BUILD_TYPE=${{matrix.build_type}} -DVCPKG_TARGET_TRIPLET=x64-windows
cd build
cmake --build . --config ${{matrix.build_type}}
- name: Run Application (Unix)
working-directory: ./tests/build
if: matrix.os == 'ubuntu-latest' || matrix.os == 'macos-latest'
run: |
./cpprealm_db_tests
- name: Run Application (Windows)
working-directory: ./tests/build
if: matrix.os == 'windows-latest'
run: |
cd ${{matrix.build_type}}
start cpprealm_db_tests.exe