我正在尝试将 CMake 和 ninja 配置为我的项目的构建系统。除了应用程序本身,我还有一个额外的可执行文件,用于由 gtest 提供支持的单元测试。我认为让它们在构建时自动执行会很好。以下是我的制作方法:
├── build
└── source
├── CMakeLists.txt
├── main.cc
└── ut
├── CMakeLists.txt
├── gtest
│ ├── ...
└── ut.cc
源/CMakeLists.txt...
cmake_minimum_required (VERSION 2.6)
project (trial)
add_subdirectory(ut)
add_executable(trial main.cc)
...和源/ut/CMakeLists.txt:
add_subdirectory(gtest)
include_directories ("gtest/include")
add_executable(ut ut.cc)
target_link_libraries(ut LINK_PUBLIC gtest_main)
add_custom_target(run_uts
COMMAND ut
DEPENDS ut
WORKING_DIRECTORY ${CMAKE_PROJECT_DIR}
)
现在当我构建它时,即:
cd build
cmake -GNinja ../source
ninja run_uts
它工作正常,只是输出是无色的。当我手动运行 ut 二进制文件时,build/ut/ut
我得到了漂亮的绿色和红色。当我使用 Unix Makefiles 作为 CMake 的生成器时,颜色也在那里。
由于我只学习 CMake,有什么我错过的还是忍者的问题?