cmake: Add USE_fuzztest option

This commit is contained in:
Mizux Seiha
2025-03-27 17:03:13 +01:00
parent ce7ad3abb0
commit ccca0602d5
4 changed files with 26 additions and 10 deletions

View File

@@ -197,15 +197,27 @@ if(BUILD_TESTING)
"NOT BUILD_DEPS" ON)
CMAKE_DEPENDENT_OPTION(BUILD_benchmark "Build benchmark" OFF
"NOT BUILD_DEPS" ON)
CMAKE_DEPENDENT_OPTION(BUILD_fuzztest "Build fuzztest" OFF
"NOT BUILD_DEPS" ON)
# Fuzztest do not support MSVC
if(NOT MSVC)
CMAKE_DEPENDENT_OPTION(USE_fuzztest "Enable fuzztest" ON "BUILD_CXX" OFF)
else()
set(USE_fuzztest OFF)
endif()
if(NOT USE_fuzztest)
set(BUILD_fuzztest OFF)
else()
CMAKE_DEPENDENT_OPTION(BUILD_fuzztest "Build fuzztest" OFF
"NOT BUILD_DEPS" ON)
endif()
else()
set(BUILD_googletest OFF)
set(BUILD_benchmark OFF)
set(USE_fuzztest OFF)
set(BUILD_fuzztest OFF)
endif()
message(STATUS "Build googletest: ${BUILD_googletest}")
message(STATUS "Build benchmark: ${BUILD_benchmark}")
message(STATUS "Enable fuzztest: ${USE_fuzztest}")
message(STATUS "Build fuzztest: ${BUILD_fuzztest}")
# Optional third party solvers (enabled by default)

View File

@@ -117,7 +117,7 @@ if(BUILD_TESTING)
if(NOT TARGET benchmark::benchmark)
message(FATAL_ERROR "Target benchmark::benchmark not available.")
endif()
if(NOT TARGET fuzztest::fuzztest)
if(USE_fuzztest AND NOT TARGET fuzztest::fuzztest)
message(FATAL_ERROR "Target fuzztest::fuzztest not available.")
endif()
endif()

View File

@@ -105,8 +105,10 @@ if(BUILD_TESTING)
find_package(benchmark REQUIRED)
endif()
if(NOT BUILD_fuzztest AND NOT TARGET fuzztest::fuzztest)
find_package(fuzztest REQUIRED)
if(USE_fuzztest)
if(NOT BUILD_fuzztest AND NOT TARGET fuzztest::fuzztest)
find_package(fuzztest REQUIRED)
endif()
endif()
endif()

View File

@@ -52,15 +52,17 @@ if(BUILD_TESTING)
GTest::gmock
)
endforeach()
ortools_cxx_test(
NAME
if(USE_fuzztest)
ortools_cxx_test(
NAME
algorithms_n_choose_k_test
SOURCES
SOURCES
"./n_choose_k_test.cc"
LINK_LIBRARIES
LINK_LIBRARIES
benchmark::benchmark
fuzztest::fuzztest
fuzztest::fuzztest_gtest_main
GTest::gmock
)
)
endif()
endif()