Fix MSVC builds and test runs Change-Id: I79f839b22985a6510965559af54209d89c8703a0
diff --git a/.github/workflows/android.yml b/.github/workflows/android.yml index b2ad9ea..1c76c85 100644 --- a/.github/workflows/android.yml +++ b/.github/workflows/android.yml
@@ -36,8 +36,8 @@ run: | sudo apt-get update sudo apt-get install -y \ - git \ ccache \ + git \ ninja-build - uses: actions/checkout@v4
diff --git a/.github/workflows/linux.yml b/.github/workflows/linux.yml index 86b9a70..c7e2cfa 100644 --- a/.github/workflows/linux.yml +++ b/.github/workflows/linux.yml
@@ -34,10 +34,10 @@ run: | apt-get update apt-get install -y \ - git \ build-essential \ ccache \ cmake \ + git \ libbenchmark-dev \ libblas-dev \ libeigen3-dev \
diff --git a/internal/ceres/CMakeLists.txt b/internal/ceres/CMakeLists.txt index dcbdd36..f4e40fb 100644 --- a/internal/ceres/CMakeLists.txt +++ b/internal/ceres/CMakeLists.txt
@@ -401,6 +401,10 @@ target_link_libraries (test_util PUBLIC GTest::gmock ceres_static) target_compile_definitions(test_util PRIVATE CERES_TEST_SRCDIR_SUFFIX="../../data") + if (BUILD_SHARED_LIBS) + target_compile_definitions(test_util PUBLIC GTEST_LINKED_AS_SHARED_LIBRARY=1) + endif (BUILD_SHARED_LIBS) + macro (CERES_TEST NAME) add_executable(${NAME}_test ${NAME}_test.cc) @@ -425,8 +429,10 @@ target_link_libraries (${NAME}_test PRIVATE SuiteSparse::SPQR) endif (TARGET SuiteSparse::SPQR) - add_test(NAME ${NAME}_test - COMMAND ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/${NAME}_test) + add_test(NAME ${NAME}_test COMMAND ${NAME}_test) + # Override testing::SrcDir to support multi-configuration builds, such as MSVC + # that write binaries into addtional configuration specific subdirectories. + set_tests_properties(${NAME}_test PROPERTIES ENVIRONMENT TEST_SRCDIR=${CMAKE_RUNTIME_OUTPUT_DIRECTORY}) endmacro (CERES_TEST) ceres_test(array_utils)