我有以下情况:
add_executable(TestOne TestOne.cpp)
target_link_libraries(TestOne my_library)
add_test(TestOne TestOne)
set_tests_properties (TestOne
PROPERTIES PASS_REGULAR_EXPRESSION "Passed")
CMakeLists.txt中的cmake代码块位于我的共享库(my_library)项目的/ test目录中。问题是,当我运行“ make”时,它将编译该测试,但是我想使该编译成为可选的,以便仅当我执行“ make test”时才进行编译,而不是当我执行“ make”时才进行编译我的测试是可选的。
最佳答案
您可以使用CMake变量BUILD_TESTING。
请执行下列操作:
IF (BUILD_TESTING)
add_executable(TestOne TestOne.cpp)
target_link_libraries(TestOne my_library)
add_test(TestOne TestOne)
set_tests_properties (TestOne
PROPERTIES PASS_REGULAR_EXPRESSION "Passed")
ENDIF(BUILD_TESTING)
您可以通过运行cmake-gui,ccmake或cmake -DBUILD_TESTING = ON来更改变量。据我所知,不重新运行CMake就不可能做您想做的事情。
关于testing - cmake可选测试,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5260104/