3131 # Exclude test_sumProduct and test_sumProduct_chain from pytest on windows.
3232 # These tests should be fixed for windows.
3333 pytest_extra_flags : -k "not test_sumProduct"
34+ additional_vcpkg_ports : intel-mkl
3435 - os : ubuntu-latest
3536 triplet : x64-linux-release
3637 build_type : Release
4041 # vcpkg compile external metis, while test are configured to use vendored metis.
4142 # Need to debug and fix it.
4243 ctest_extra_flags : -E "testFindSeparator"
44+ additional_vcpkg_ports : intel-mkl
45+ cxxflags : -DCMAKE_CXX_FLAGS="-Wno-error=maybe-uninitialized"
4346 - os : macos-latest
4447 triplet : arm64-osx-release
4548 build_type : Release
@@ -106,6 +109,7 @@ jobs:
106109 tbb
107110 pybind11
108111 geographiclib
112+ ${{ matrix.additional_vcpkg_ports }}
109113
110114 - name : copy files for hash
111115 shell : bash
@@ -136,7 +140,18 @@ jobs:
136140 if : success()
137141 shell : bash
138142 run : |
139- export CL=-openmp
143+ # This is due an warning as error found in linux gtsam code:
144+ # In file included from include/Eigen/Core:370,
145+ # from include/Eigen/Dense:1,
146+ # from gtsam/base/OptionalJacobian.h:24,
147+ # from gtsam/base/Matrix.h:27,
148+ # from gtsam/linear/GaussianFactor.h:24,
149+ # from gtsam/linear/HessianFactor.h:21,
150+ # from gtsam/linear/HessianFactor.cpp:18:
151+ # In static member function ‘static void Eigen::internal::selfadjoint_matrix_vector_product<double, Index, StorageOrder, UpLo, ConjugateLhs, ConjugateRhs, 0>::run(Index, const double*, Index, const double*, double*, double) [with Index = long int; int StorageOrder = 1; int UpLo = 1; bool ConjugateLhs = false; bool ConjugateRhs = false]’,
152+ # inlined from ‘static void Eigen::internal::selfadjoint_product_impl<Lhs, LhsMode, false, Rhs, 0, true>::run(Dest&, const Lhs&, const Rhs&, const Scalar&) [with Dest = Eigen::Transpose<Eigen::Matrix<double, 1, -1> >; Lhs = Eigen::Transpose<const Eigen::Block<const Eigen::Matrix<double, -1, -1>, -1, -1, false> >; int LhsMode = 1; Rhs = Eigen::Transpose<const Eigen::Transpose<const Eigen::Matrix<double, -1, 1> > >]’ at include/Eigen/src/Core/products/SelfadjointMatrixVector.h:229:7:
153+ # include/Eigen/src/Core/products/SelfadjointMatrixVector_BLAS.h:69:1: error: ‘result’ may be used uninitialized [-Werror=maybe-uninitialized]
154+ # 69 | EIGEN_BLAS_SYMV_SPECIALIZE(double)
140155
141156 cmake . -B build -G Ninja \
142157 -DCMAKE_TOOLCHAIN_FILE=$VCPKG_INSTALLATION_ROOT/scripts/buildsystems/vcpkg.cmake \
@@ -155,8 +170,11 @@ jobs:
155170 -DGTSAM_USE_SYSTEM_METIS=ON \
156171 -DGTSAM_USE_SYSTEM_PYBIND=ON \
157172 -DGTSAM_SUPPORT_NESTED_DISSECTION=ON \
173+ -DGTSAM_WITH_EIGEN_MKL=ON \
174+ -DGTSAM_WITH_EIGEN_MKL_OPENMP=ON \
158175 -DCTEST_EXTRA_ARGS='${{ matrix.ctest_extra_flags }}' \
159- -DPYTEST_EXTRA_ARGS='${{ matrix.pytest_extra_flags }}'
176+ -DPYTEST_EXTRA_ARGS='${{ matrix.pytest_extra_flags }}' \
177+ ${{ matrix.cxxflags }}
160178
161179 - name : cmake build
162180 shell : bash
@@ -174,4 +192,7 @@ jobs:
174192 - name : Run tests
175193 shell : bash
176194 run : |
195+ VCPKG_BASH_PATH="${VCPKG_INSTALLATION_ROOT//\\//}" # backslashes -> slashes
196+ VCPKG_BASH_PATH="/${VCPKG_BASH_PATH/:/}" # drop colon, add leading /
197+ export PATH="$PATH:$VCPKG_BASH_PATH/installed/${{ matrix.triplet }}/bin"
177198 cmake --build build --config ${{ matrix.build_type }} --target check
0 commit comments