Skip to content

Smarter way to compute a quaternion from a rotation matrix #1594

Smarter way to compute a quaternion from a rotation matrix

Smarter way to compute a quaternion from a rotation matrix #1594

Workflow file for this run

name: Build
on: [ push, pull_request ]
jobs:
build:
name: ${{ matrix.config.name }} SCALAR_DOUBLE=${{ matrix.scalar_double }}
runs-on: ${{ matrix.config.os }}
if: "!contains(github.event.head_commit.message, '[skip ci]')"
strategy:
fail-fast: false
matrix:
scalar_double: ["OFF", "ON"]
config:
- {
name: "Windows MSVC",
os: windows-latest,
generator: "Ninja",
conda_library_dir: "Library"
}
- {
name: "macOS Clang",
os: macos-latest,
generator: "Ninja",
conda_library_dir: "."
}
steps:
- name: Checkout
uses: actions/checkout@v4
with:
submodules: recursive
- name: Install Dependencies
uses: conda-incubator/setup-miniconda@v3
with:
activate-environment: CCCoreLib
auto-activate-base: false
environment-file: .ci/conda.yml
mamba-version: '*'
- name: Configure MSVC console (Windows)
if: matrix.config.os == 'windows-latest'
uses: ilammy/msvc-dev-cmd@v1
- name: Set environment for MSVC (Windows)
if: matrix.config.os == 'windows-latest'
run: |
# Set these env vars so cmake picks the correct compiler
# https://docs.github.com/en/free-pro-team@latest/actions/reference/workflow-commands-for-github-actions#environment-files
echo "CXX=cl.exe" | Out-File -FilePath $env:GITHUB_ENV -Encoding utf8 -Append
echo "CC=cl.exe" | Out-File -FilePath $env:GITHUB_ENV -Encoding utf8 -Append
- name: Configure (macOS)
if: matrix.config.os == 'macos-latest'
shell: bash -l {0}
run: |
mkdir cccorelib-build
export CONDA_LIB_DIR="$CONDA_PREFIX/${{ matrix.config.conda_library_dir }}"
cmake \
-B cccorelib-build \
-G "${{ matrix.config.generator }}" \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_PREFIX_PATH="$CONDA_LIB_DIR" \
-DCCCORELIB_SCALAR_DOUBLE=${{ matrix.scalar_double }} \
-DCCCORELIB_USE_CGAL=FALSE \
-DCCCORELIB_USES_TBB=TRUE \
.
- name: Configure (Windows)
if: matrix.config.os == 'windows-latest'
shell: bash -l {0}
run: |
mkdir build
# DGM: without caching, using conda takes too long.
# Therefore we can't set -DCCCORELIB_USE_CGAL=TRUE
cmake \
-B cccorelib-build \
-G "${{ matrix.config.generator }}" \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_PREFIX_PATH="$CONDA_LIB_DIR" \
-DCCCORELIB_SCALAR_DOUBLE=${{ matrix.scalar_double }} \
-DCCCORELIB_USE_CGAL=FALSE \
-DCCCORELIB_USES_TBB=TRUE \
.
- name: Build
run: cmake --build cccorelib-build --parallel
ubuntu-build:
name: Ubuntu ${{ matrix.compiler }} SCALAR_DOUBLE=${{ matrix.scalar_double }}
runs-on: ubuntu-22.04
if: "!contains(github.event.head_commit.message, '[skip ci]')"
strategy:
fail-fast: false
matrix:
scalar_double: [ "OFF", "ON" ]
compiler: ["GCC", "Clang"]
steps:
- name: Checkout
uses: actions/checkout@v3
with:
submodules: recursive
- name: Install Dependencies
run: >
sudo apt-get update -qq
sudo apt-get install -qy cmake ninja-build
qtbase5-dev qttools5-dev qttools5-dev-tools
libtbb-dev
libcgal-dev libcgal-qt5-dev
- name: Setup GCC
if: matrix.compiler == 'GCC'
run: |
echo "CC=gcc" >> $GITHUB_ENV
echo "CXX=g++" >> $GITHUB_ENV
- name: Setup Clang
if: matrix.compiler == 'Clang'
run: |
echo "CC=clang" >> $GITHUB_ENV
echo "CXX=clang++" >> $GITHUB_ENV
- name: Configure cmake
run: >
mkdir cccorelib-build
cmake
-B cccorelib-build
-S .
-G Ninja
-DCMAKE_BUILD_TYPE=Release
-DCCCORELIB_SCALAR_DOUBLE=${{ matrix.scalar_double }}
-DCCCORELIB_USE_CGAL=TRUE
-DCCCORELIB_USES_TBB=TRUE
.
- name: Build
run: cmake --build cccorelib-build --parallel