Use doublecross instead of cross(Cross(a, b)) in NavState #416
Workflow file for this run
This file contains hidden or 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: 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 |