Skip to content

RCPP-41 Add Conan support #154

RCPP-41 Add Conan support

RCPP-41 Add Conan support #154

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'
- name: "Set environmental variables"
shell: bash
run: |
echo "VCPKG_ROOT=$VCPKG_INSTALLATION_ROOT" >> $GITHUB_ENV
- 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=x64-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: Open a tmate debug session
if: ${{ failure() }}
uses: mxschmitt/action-tmate@v3
with:
timeout-minutes: 15
- 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'
- name: "Set environmental variables"
shell: bash
run: |
echo "VCPKG_ROOT=$VCPKG_INSTALLATION_ROOT" >> $GITHUB_ENV
- 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=x64-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
- name: Open a tmate debug session
if: ${{ failure() }}
uses: mxschmitt/action-tmate@v3
with:
timeout-minutes: 15