我的 cmake 项目具有以下树结构:
├── CMakeLists.txt
├── basis
├── build
├── deps
├── study
where/deps
包含所有 3rd-party 依赖项,/basis
目录/study
包含我编写的例程。
在我的主 CMakeLists.txt 文件中,我有以下代码来启用 CxxTest
cmake_minimum_required(VERSION 3.14)
project(study_cmake)
set( CMAKE_BUILD_TYPE "Debug" )
add_subdirectory(deps/eigen)
set(CMAKE_PREFIX_PATH ${CMAKE_SOURCE_DIR}/deps/cxxtest/)
find_package(CxxTest REQUIRED)
if(CXXTEST_FOUND)
include_directories(${CXXTEST_INCLUDE_DIR})
message( 'CXXTEST_INCLUDE_DIR:' ${CXXTEST_INCLUDE_DIR} )
enable_testing()
endif()
add_subdirectory(study)
add_subdirectory(basis)
中/basis/CMakeLists.txt
,我有
project(basis)
add_library(
basis
include/bernstein.h
src/bernstein.cpp
)
CXXTEST_ADD_TEST(test_bernstein test_bernstein.cc ${CMAKE_CURRENT_SOURCE_DIR}/test/test_bernstein.h
在/study/CMakeLists.txt
,我有类似的东西/basis/CMakeLists.txt
。运行cmake ..
,目录make
后build
,我可以运行ctest
,来build/basis/
分别build/study/
运行这两个子目录中定义的单元测试。但是我想有一种方法来运行这两个子目录中定义的所有单元测试,所以我尝试ctest
在/build/
. 不幸的是,这个命令似乎也运行在/deps/
. 我们如何强制只运行我自己定义的ctest
所有单元测试?build/basis/
build/study/