【发布时间】:2016-06-22 15:54:18
【问题描述】:
我写了一个软件,它的配置、构建和安装都是通过一些 CMake 文件来执行的。该软件是在基于单元和功能测试的持续集成过程中开发的。我注意到与这些测试相对应的目标是在安装步骤中构建的。根本没有必要,我想了解如何阻止 CMake 这样做。
输入后
make install
我得到以下输出:
[ 7%] 构建目标arpack
[ 15%] 内置目标提升
[ 23%] 构建目标特征
[ 31%] 构建目标 yamlcpp
[ 34%] 构建目标 simol-core
[ 36%] 构建目标 simol-quantchem
[ 80%] 构建目标 simol-statphys
[88%] 构建目标 gtest
[ 91%] 构建目标 simol_test_unit
[ 92%] 构建目标 simol_test_functional
[ 93%] 构建目标 test_bichainfpu
[ 94%] 构建目标 test_dpde
[ 95%] 构建目标 test_fluid
[ 96%] 构建目标 test_galerkin
[ 97%] 构建目标 test_hamiltonian
[ 98%] 构建目标 test_langevin
[ 99%] 构建目标 test_rotor
[100%] 构建目标 test_trichain
从 88% 到 100% 的步骤绝对是虚假的,因为我不安装任何测试,而只安装软件的核心及其模块。例如,安装 simol-statphys (80%) 的 CMake 命令是
INSTALL(TARGETS simol-statphys ARCHIVE DESTINATION lib)
我对 simol-core (34%) 和 simol-quantchem (36%) 有类似的命令。我可以理解为什么要构建以前的目标(arpack、boost、eigen、yamlcpp),因为软件的模块依赖于这些外部库。但它们不依赖于测试。反之亦然:测试显然依赖于模块。但对我来说,为什么他们应该参与安装步骤是没有意义的。当然,没有调用 INSTALL 命令进行测试。这些测试只是这样定义的:
ADD_EXECUTABLE(test_galerkin ${CMAKE_SOURCE_DIR}/test/functional/statphys/galerkin/TestGalerkin.cpp)
TARGET_LINK_LIBRARIES(test_galerkin simol-statphys)
有人知道这里发生了什么吗?
【问题讨论】:
标签: cmake