Skip to content

fix windows CI build #159

fix windows CI build

fix windows CI build #159

Workflow file for this run

name: CI (linux/macOS)
on:
push:
branches: [ master ]
pull_request:
branches: [ master ]
env:
# Customize the CMake build type here (Release, Debug, RelWithDebInfo, etc.)
BUILD_TYPE: Release
CONFIG_GLOBAL:
CONFIG_LINUX: -DWITH_MAGICK=true -DWITH_GMP=true -DWITH_FFTW3=true -DWARNING_AS_ERROR=ON -DWITH_HDF5=true -DWITH_QGLVIEWER=true -DWITH_CAIRO=true -DWITH_EIGEN=true -DDGTAL_ENABLE_FLOATING_POINT_EXCEPTIONS=true
CONFIG_MAC: -DWITH_EIGEN=true -DWITH_GMP=tue
CONFIG_WINDOWS: -DWITH_OPENMP=true
jobs:
build:
runs-on: ${{ matrix.os }}
strategy:
fail-fast: true
matrix:
os: [ubuntu-latest, macOS-latest,windows-latest]
steps:
- uses: actions/checkout@v2
- name: Install linux deps
if: matrix.os == 'ubuntu-latest'
run: |
sudo apt-get update
sudo apt-get install libqglviewer-dev-qt5 libboost-dev libeigen3-dev ninja-build libhdf5-serial-dev libboost-dev libcairo2-dev libgmp-dev libgraphicsmagick++1-dev libfftw3-dev xorg-dev libglu1-mesa-dev freeglut3-dev mesa-common-dev
- name: Install macOS deps
if: matrix.os == 'macOS-latest'
run: brew install boost ninja eigen gmp
- name: Install conan
if: matrix.os == 'windows-latest'
id: conan
uses: turtlebrowser/get-conan@main
with:
version: 2.4.0
- name: Create conan default profile
if: matrix.os == 'windows-latest'
run: |
conan profile detect --force
- uses: actions/cache@v4
if: matrix.os == 'windows-latest'
with:
path: ~/.conan2
key: ${{ runner.os }}-conan2-Release
- name: Create Build Environment
run: cmake -E make_directory ${{runner.workspace}}/build
- name: DGtalBuild (linux)
if: matrix.os == 'ubuntu-latest'
shell: bash
working-directory: ${{runner.workspace}}/build
run: |
git clone --depth 1 https://github.com/DGtal-team/DGtal.git
cd DGtal
mkdir buildDGtal
cd buildDGtal
echo cmake .. $CONFIG_LINUX -DBUILD_EXAMPLES=false -DBUILD_TESTING=false -G Ninja
cmake .. $CONFIG_LINUX -DBUILD_EXAMPLES=false -DBUILD_TESTING=false -G Ninja
ninja
- name: DGtalBuild (macOS)
if: matrix.os == 'macOS-latest'
shell: bash
working-directory: ${{runner.workspace}}/build
run: |
git clone --depth 1 https://github.com/DGtal-team/DGtal.git
cd DGtal
mkdir buildDGtal
cd buildDGtal
echo cmake .. $CONFIG_MAC -DBUILD_EXAMPLES=false -DBUILD_TESTING=false -G Ninja
cmake .. $CONFIG_MAC -DBUILD_EXAMPLES=false -DBUILD_TESTING=false -G Ninja
ninja
- name: DGtalBuild (windows)
if: matrix.os == 'windows-latest'
shell: bash
working-directory: ${{runner.workspace}}/build
run: |
git clone --depth 1 https://github.com/DGtal-team/DGtal.git
cd DGtal
conan install . --build=missing
mkdir buildDGtal
cd buildDGtal
echo cmake .. -DCMAKE_POLICY_DEFAULT_CMP0091=NEW -DCMAKE_BUILD_TYPE=$BUILD_TYPE $CONFIG_WINDOWS -DCMAKE_TOOLCHAIN_FILE="conan_toolchain.cmake" -DBUILD_EXAMPLES=false -DBUILD_TESTING=false
cmake .. -DCMAKE_POLICY_DEFAULT_CMP0091=NEW -DCMAKE_BUILD_TYPE=$BUILD_TYPE $CONFIG_WINDOWS -DCMAKE_TOOLCHAIN_FILE="conan_toolchain.cmake" -DBUILD_EXAMPLES=false -DBUILD_TESTING=false
cmake --build . --config Release --parallel 3
- name: Configure CMake (linux)
if: matrix.os == 'ubuntu-latest'
shell: bash
working-directory: ${{runner.workspace}}/build
run: cmake $GITHUB_WORKSPACE -DDGtal_DIR=${{runner.workspace}}/build/DGtal/buildDGtal -DCMAKE_BUILD_TYPE=$BUILD_TYPE $CONFIG_GLOBAL $CONFIG_LINUX -G Ninja
- name: Configure CMake (macOS)
if: matrix.os == 'macOS-latest'
shell: bash
working-directory: ${{runner.workspace}}/build
run: cmake $GITHUB_WORKSPACE -DDGtal_DIR=${{runner.workspace}}/build/DGtal/buildDGtal -DCMAKE_BUILD_TYPE=$BUILD_TYPE $CONFIG_GLOBAL $CONFIG_MAC -G Ninja
- name: Configure CMake (windows)
if: matrix.os == 'windows-latest'
shell: bash
working-directory: "${{runner.workspace}}/build"
run: |
conan install $GITHUB_WORKSPACE --build=missing
cmake $GITHUB_WORKSPACE -DCMAKE_POLICY_DEFAULT_CMP0091=NEW -DCMAKE_MODULE_PATH="D:/a/DGtalTools-contrib/build/DGtal/buildDGtal" -DDGtal_DIR="D:/a/DGtalTools-contrib/build/DGtal/buildDGtal" -DCMAKE_BUILD_TYPE=$BUILD_TYPE -DDGTAL_RANDOMIZED_TESTING_WHITELIST="${{ steps.whitelist.outputs.WHITELIST }}"
- name: Build
working-directory: ${{runner.workspace}}/build
shell: bash
# Execute the build. You can specify a specific target with "--target <NAME>"
run: cmake --build . --config $BUILD_TYPE