Add vcpkg ci #57
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Windows | |
on: | |
pull_request: | |
branches: | |
- "*" # Pull request for all branches | |
schedule: | |
- cron: '10 12 * * 0' | |
# Every time you make a push to your PR, it cancel immediately the previous checks, | |
# and start a new one. The other runner will be available more quickly to your PR. | |
concurrency: | |
group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }} | |
cancel-in-progress: true | |
jobs: | |
build: | |
name: vcpkg-windows-${{ matrix.type }} | |
runs-on: windows-latest | |
strategy: | |
fail-fast: false | |
matrix: | |
include: | |
- type: x64 | |
BUILD_DIR: gtsam\3rdparty\vcpkg\cache | |
VCPKG_ROOT: gtsam\3rdparty\vcpkg\cache\vcpkg | |
VCPKG_LINK: https://github.com/microsoft/vcpkg/ | |
VCPKG_CONFIGS: gtsam\3rdparty\vcpkg | |
BINARY_CACHE: gtsam\3rdparty\vcpkg\cache\windows | |
env: | |
BUILD_DIR: ${{ matrix.BUILD_DIR }} | |
VCPKG_ROOT: ${{ matrix.VCPKG_ROOT }} | |
VCPKG_LINK: ${{ matrix.VCPKG_LINK }} | |
VCPKG_CONFIGS: ${{ matrix.VCPKG_CONFIGS }} | |
BINARY_CACHE: ${{ matrix.BINARY_CACHE }} | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v3 | |
- name: Restore cache dependencies | |
uses: actions/cache/restore@v3 | |
with: | |
path: | | |
${{ matrix.BINARY_CACHE }} | |
key: windows-${{ hashFiles('.github/workflows/windows.yml') }} | |
restore-keys: windows-${{ hashFiles('.github/workflows/windows.yml') }} | |
- name: Setup msbuild | |
uses: ilammy/msvc-dev-cmd@v1 | |
with: | |
arch: x64 | |
- name: Install python packages | |
if: success() | |
shell: cmd | |
run: | | |
choco install python311 | |
c:\python311\python.exe -m pip --version | |
c:\python311\python.exe -m pip install pyparsing | |
- name: Install ninja | |
if: success() | |
shell: cmd | |
run: | | |
choco install ninja | |
ninja --version | |
where ninja | |
- name: Fix vcpkg | |
run: vcpkg.exe integrate remove | |
- name: Init vcpkg | |
if: success() | |
shell: cmd | |
run: | | |
mkdir -p %BUILD_DIR% | |
git -C %BUILD_DIR% clone %VCPKG_LINK% | |
- name: Vcpkg build & cmake config | |
if: success() | |
shell: cmd | |
run: | | |
set VCPKG_ROOT=${{ matrix.VCPKG_ROOT }} | |
set VCPKG_BINARY_SOURCES=clear;files,%CD%\%BINARY_CACHE%,readwrite; | |
mkdir %BINARY_CACHE% | |
set CMAKE_GENERATOR=Ninja | |
set CL=-openmp:experimental | |
cmake . -B build ^ | |
-DCMAKE_TOOLCHAIN_FILE=%VCPKG_ROOT%\scripts\buildsystems\vcpkg.cmake ^ | |
-DVCPKG_MANIFEST_DIR=%VCPKG_CONFIGS%\manifest ^ | |
-DVCPKG_INSTALLED_DIR=%VCPKG_ROOT%\installed ^ | |
-DVCPKG_OVERLAY_TRIPLETS=%VCPKG_CONFIGS%\triplets ^ | |
-DVCPKG_TARGET_TRIPLET=x64-windows ^ | |
-DVCPKG_INSTALL_OPTIONS=--clean-after-build ^ | |
-DGTSAM_BUILD_EXAMPLES_ALWAYS=ON ^ | |
-DGTSAM_ROT3_EXPMAP=ON ^ | |
-DGTSAM_POSE3_EXPMAP=ON ^ | |
-DGTSAM_BUILD_PYTHON=OFF ^ | |
-DGTSAM_BUILD_TESTS=ON ^ | |
-DGTSAM_BUILD_UNSTABLE=OFF ^ | |
-DGTSAM_USE_SYSTEM_EIGEN=ON ^ | |
-DGTSAM_USE_SYSTEM_METIS=ON ^ | |
-DGTSAM_SUPPORT_NESTED_DISSECTION=ON | |
- name: Save cache dependencies | |
id: cache-save | |
uses: actions/cache/save@v3 | |
with: | |
path: | | |
${{ matrix.BINARY_CACHE }} | |
key: windows-${{ hashFiles('.github/workflows/windows.yml') }}-${{ hashFiles('gtsam\3rdparty\vcpkg\cache\vcpkg\installed\vcpkg\updates\*') }} | |
- name: Cmake build | |
if: success() | |
shell: cmd | |
run: | | |
cmake --build build --config Release -j 2 | |
- name: Run tests | |
if: success() | |
shell: cmd | |
run: | | |
:: Tests don't compile for windows. Need to be fixed and can remove these comments. | |
:: cmake --build build --target check -j 1 |