Skip to content

Use doublecross instead of cross(Cross(a, b)) in NavState #416

Use doublecross instead of cross(Cross(a, b)) in NavState

Use doublecross instead of cross(Cross(a, b)) in NavState #416

Workflow file for this run

name: vcpkg
on:
pull_request:
push:
# Runs on pushes targeting the develop branch
branches: [develop]
# Cancels any in-progress workflow runs for the same PR when a new push is made,
# allowing the runner to become available more quickly for the latest changes.
concurrency:
group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }}
cancel-in-progress: true
jobs:
build:
name: ${{ matrix.os }}
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
include:
- os: windows-latest
triplet: x64-windows-release
build_type: Release
test_target: RUN_TESTS
binary_cache: C:\Users\runneradmin\AppData\Local\vcpkg\archives
python: python
# check_constrained_program fail on windows. should fix it for windows.
# Remove this excluded test when you fix it for windows.
ctest_extra_flags: -E "check_constrained_program|check_inference_program|check_symbolic_program|check_discrete_program"
# Exclude test_sumProduct and test_sumProduct_chain from pytest on windows.
# These tests should be fixed for windows.
pytest_extra_flags: -k "not test_sumProduct"
- os: ubuntu-latest
triplet: x64-linux-release
build_type: Release
test_target: test
binary_cache: /home/runner/.cache/vcpkg/archives
python: python3
- os: macos-latest
triplet: arm64-osx-release
build_type: Release
test_target: test
binary_cache: /Users/runner/.cache/vcpkg/archives
python: python3
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Restore cache dependencies
uses: actions/cache/restore@v3
with:
path: ${{ matrix.binary_cache }}
key: ${{ matrix.os }}
restore-keys: ${{ matrix.os }}
- name: Setup msbuild
if: runner.os == 'Windows'
uses: ilammy/msvc-dev-cmd@v1
with:
arch: x64
toolset: 14.40
- name: cl version
if: runner.os == 'Windows'
shell: cmd
run: cl
- name: Install vcpkg python dependencies
if: runner.os == 'Linux'
shell: bash
run: |
sudo apt-get install autoconf automake autoconf-archive
- name: Install vcpkg python dependencies
if: runner.os == 'macOS'
shell: bash
run: |
brew install autoconf automake autoconf-archive
- name: "Install dependencies"
run: >
vcpkg x-set-installed --triplet ${{ matrix.triplet }} --host-triplet ${{ matrix.triplet }}
boost-assign
boost-bimap
boost-chrono
boost-date-time
boost-filesystem
boost-format
boost-graph
boost-math
boost-program-options
boost-regex
boost-serialization
boost-system
boost-thread
boost-timer
eigen3
tbb
pybind11
- name: copy files for hash
shell: bash
run: |
VCPKG_BASH_PATH=${VCPKG_INSTALLATION_ROOT//\\//}
echo $VCPKG_BASH_PATH
mkdir -p vcpkg-info
find $VCPKG_BASH_PATH/installed/ -type f -name 'vcpkg_abi_info.txt' | \
while read filepath; do
triplet=$(echo "$filepath" | awk -F/ '{print $(NF-3)}')
port=$(echo "$filepath" | awk -F/ '{print $(NF-1)}')
cp "$filepath" "vcpkg-info/${triplet}_${port}.txt"
done
- name: Save cache dependencies
uses: actions/cache/save@v4
with:
path: ${{ matrix.binary_cache }}
key: ${{ matrix.os }}-${{ hashFiles('vcpkg-info/*') }}
- name: Install python packages
shell: bash
run: |
$VCPKG_INSTALLATION_ROOT/installed/${{ matrix.triplet }}/tools/python3/${{ matrix.python }} -m ensurepip --upgrade
$VCPKG_INSTALLATION_ROOT/installed/${{ matrix.triplet }}/tools/python3/${{ matrix.python }} -m pip install -r python/dev_requirements.txt
- name: cmake config
if: success()
shell: bash
run: |
export CL=-openmp
cmake . -B build -G Ninja \
-DCMAKE_TOOLCHAIN_FILE=$VCPKG_INSTALLATION_ROOT/scripts/buildsystems/vcpkg.cmake \
-DVCPKG_INSTALLED_DIR=$VCPKG_INSTALLATION_ROOT/installed \
-DVCPKG_TARGET_TRIPLET=${{ matrix.triplet }} \
-DVCPKG_HOST_TRIPLET=${{ matrix.triplet }} \
-DCMAKE_BUILD_TYPE=${{ matrix.build_type }} \
-DGTSAM_BUILD_EXAMPLES_ALWAYS=ON \
-DGTSAM_ROT3_EXPMAP=ON \
-DGTSAM_POSE3_EXPMAP=ON \
-DGTSAM_BUILD_PYTHON=ON \
-DGTSAM_BUILD_TESTS=ON \
-DGTSAM_BUILD_UNSTABLE=ON \
-DGTSAM_ALLOW_DEPRECATED_SINCE_V43=OFF \
-DGTSAM_USE_SYSTEM_EIGEN=ON \
-DGTSAM_USE_SYSTEM_METIS=OFF \
-DGTSAM_USE_SYSTEM_PYBIND=ON \
-DGTSAM_SUPPORT_NESTED_DISSECTION=ON \
-DCTEST_EXTRA_ARGS='${{ matrix.ctest_extra_flags }}' \
-DPYTEST_EXTRA_ARGS='${{ matrix.pytest_extra_flags }}'
- name: cmake build
shell: bash
run: |
cmake --build build --config ${{ matrix.build_type }}
- name: Run Python tests
shell: bash
run: |
export PATH="$PATH:$VCPKG_INSTALLATION_ROOT/installed/${{ matrix.triplet }}/bin"
cmake --build build --target python-install
cmake --build build --target python-test
cmake --build build --target python-test-unstable
- name: Run tests
shell: bash
run: |
cmake --build build --config ${{ matrix.build_type }} --target check