1-
21set (THIRDPARTY_LIBS "" )
32set (THIRDPARTY_INCLUDE_DIRS "" )
43
54include (FetchContent)
65
6+ set (BUILD_TESTING_OLD ${BUILD_TESTING} ) # Save your setting
7+ set (BUILD_TESTING OFF CACHE BOOL "" FORCE) # Disbale third party tests
8+
79# For now, Eigen is mandatory
8- find_package (Eigen3 NO_MODULE)
10+ find_package (Eigen3 QUIET )
11+
912if (EIGEN3_FOUND)
1013 message ("Eigen3 found at ${EIGEN3_INCLUDE_DIR} " )
1114else ()
@@ -19,17 +22,17 @@ else()
1922 )
2023 block (SCOPE_FOR VARIABLES ) # requires cmake 3.25+
2124 set (BUILD_TESTING OFF )
22- set (EIGEN_BUILD_TESTING OFF )
23- set (EIGEN_TEST_CXX11 OFF )
24- set (EIGEN_HAS_CXX11_MATH ON )
25+ set (EIGEN_BUILD_TESTS OFF )
2526 set (EIGEN_BUILD_DOC OFF )
27+ set (EIGEN_BUILD_DEMOS OFF )
2628 set (EIGEN_BUILD_PKGCONFIG OFF )
29+ set (EIGEN_TEST_CXX11 OFF )
2730 FetchContent_MakeAvailable(Eigen)
2831 endblock ()
32+ set (EIGEN3_INCLUDE_DIR "${eigen3_SOURCE_DIR} " CACHE PATH "Eigen3 include directory" FORCE)
2933endif ()
3034add_definitions (-DHAS_EIGEN)
3135set (THIRDPARTY_LIBS ${THIRDPARTY_LIBS} Eigen3::Eigen)
32- set (THIRDPARTY_INCLUDE_DIRS ${THIRDPARTY_INCLUDE_DIRS} ${EIGEN3_INCLUDE_DIR} )
3336
3437if (TINYOPT_USE_FMT)
3538 find_package (fmt REQUIRED)
@@ -40,21 +43,23 @@ endif ()
4043
4144
4245if (TINYOPT_BUILD_CERES)
43- find_package (Ceres)
46+ find_package (Ceres QUIET )
4447 if (NOT Ceres_FOUND)
4548 message ("Ceres not found, fetching..." )
4649 FetchContent_Declare(Ceres
4750 GIT_REPOSITORY https://github.com/ceres-solver/ceres-solver
4851 GIT_TAG 2.2.0
4952 GIT_SHALLOW TRUE
5053 GIT_PROGRESS TRUE )
51- set (BUILD_TESTING OFF )
52- set (BUILD_EXAMPLES OFF )
53- set (BUILD_BENCHMARKS OFF )
54- FetchContent_MakeAvailable(Ceres)
54+ block (SCOPE_FOR VARIABLES ) # requires cmake 3.25+
55+ set (BUILD_TESTING OFF )
56+ set (BUILD_EXAMPLES OFF )
57+ set (BUILD_BENCHMARKS OFF )
58+ set (MINIGLOG ON )
59+ FetchContent_MakeAvailable(Ceres)
60+ endblock ()
5561 set (CERES_LIBRARIES Ceres::ceres)
5662 target_compile_options (ceres PUBLIC "-Wno-reorder" "-Wno-maybe-uninitialized" )
57-
5863 endif ()
5964 set (THIRDPARTY_INCLUDE_DIRS ${THIRDPARTY_INCLUDE_DIRS} ${CERES_INCLUDE_DIRS} )
6065 set (THIRDPARTY_LIBS ${THIRDPARTY_LIBS} ${CERES_LIBRARIES} )
@@ -63,10 +68,10 @@ endif()
6368
6469
6570if (TINYOPT_BUILD_SOPHUS_TEST)
66- find_package (Sophus)
71+ find_package (Sophus QUIET )
6772 if (NOT Sophus_FOUND)
6873 message ("Sophus not found, fetching..." )
69- set (SOPHUS_FIX_CMAKE_VER sed -i -E "s/3.24/3.2 /g" CMakeLists.txt)
74+ set (SOPHUS_FIX_CMAKE_VER sed -i -E "s/3.24/3.5 /g" CMakeLists.txt)
7075 FetchContent_Declare(Sophus
7176 GIT_REPOSITORY https://github.com/strasdat/Sophus.git
7277 GIT_TAG main
@@ -75,8 +80,10 @@ if (TINYOPT_BUILD_SOPHUS_TEST)
7580 PATCH_COMMAND ${SOPHUS_FIX_CMAKE_VER}
7681 UPDATE_DISCONNECTED 1
7782 )
78- set (BUILD_SOPHUS_TESTS OFF )
79- FetchContent_MakeAvailable(Sophus)
83+ block (SCOPE_FOR VARIABLES ) # requires cmake 3.25+
84+ set (BUILD_SOPHUS_TESTS OFF )
85+ FetchContent_MakeAvailable(Sophus)
86+ endblock ()
8087 endif ()
8188 add_definitions (-DHAS_SOPHUS)
8289 #include_directories(${Sophus_SOURCE_DIR}/sophus)
@@ -87,7 +94,7 @@ endif ()
8794
8895
8996if (TINYOPT_BUILD_LIEPLUSPLUS_TEST)
90- find_package (LiePlusPlus)
97+ find_package (LiePlusPlus QUIET )
9198 if (NOT LiePlusPlus_FOUND)
9299 message ("Lie++ not found, fetching..." )
93100 FetchContent_Declare(
@@ -97,8 +104,10 @@ if (TINYOPT_BUILD_LIEPLUSPLUS_TEST)
97104 GIT_SHALLOW TRUE
98105 GIT_PROGRESS TRUE
99106 )
100- set (LIEPLUSPLUS_TESTS OFF )
101- FetchContent_MakeAvailable(LiePlusPlus)
107+ block (SCOPE_FOR VARIABLES ) # requires cmake 3.25+
108+ set (LIEPLUSPLUS_TESTS OFF )
109+ FetchContent_MakeAvailable(LiePlusPlus)
110+ endblock ()
102111 endif ()
103112 add_definitions (-DHAS_LIEPLUSPLUS)
104113 #include_directories(${LiePlusPlus_SOURCE_DIR}/include)
@@ -108,7 +117,7 @@ endif ()
108117
109118
110119if (TINYOPT_BUILD_TESTS OR TINYOPT_BUILD_BENCHMARKS)
111- find_package (Catch2)
120+ find_package (Catch2 QUIET )
112121 if (NOT Catch2_FOUND)
113122 include (FetchContent)
114123 message ("Catch2 is missing, fetching..." )
@@ -118,13 +127,21 @@ if (TINYOPT_BUILD_TESTS OR TINYOPT_BUILD_BENCHMARKS)
118127 GIT_TAG devel
119128 GIT_SHALLOW TRUE
120129 GIT_PROGRESS TRUE
130+ OVERRIDE_FIND_PACKAGE
121131 )
122132 FetchContent_MakeAvailable(Catch2)
133+ if (NOT Catch2_VERSION)
134+ get_directory_property (Catch2_VERSION DIRECTORY "${catch2_SOURCE_DIR} " DEFINITION PROJECT_VERSION)
135+ endif ()
136+ set (Catch2_FOUND TRUE )
123137 endif ()
138+ message (STATUS "Found Catch2 version: ${Catch2_VERSION} " )
124139 set (THIRDPARTY_TEST_LIBS ${THIRDPARTY_LIBS} Catch2::Catch2WithMain)
125140 if (${Catch2_VERSION} GREATER_EQUAL 3.0.0)
126141 add_definitions (-DCATCH2_VERSION=3)
127142 else ()
128143 add_definitions (-DCATCH2_VERSION=2)
129144 endif ()
130- endif ()
145+ endif ()
146+
147+ set (BUILD_TESTING ${BUILD_TESTING_OLD} CACHE BOOL "" FORCE) # Restore testing config
0 commit comments