我创建了一个命令行便携脚本化的工业化不可知构建系统,有助于快速构建多个依赖项目而不必依赖特定的IDE或构建工厂。它是不可知的,因为它不基于单个构建引擎。我使用了cmake创建第一个版本,因为我的项目大多是C++,但这将会发展(例如包括gradle或其他)。也就是说,我不以CMake为中心,它只是实现目标的一个工具,即易于移植的C ++项目构建。此前我考虑使用BJam,如果有更多的文档,我会一直使用它。
然而,结果是我非常依赖CMake来执行构建和单元测试。截至今天,我意识到测试是在“全部”目标下构建并在“测试”目标下运行。
对于CMake 2- (例如Unix Makefiles生成器):
我想知道是否有办法将“构建项目”阶段与“构建测试”阶段分开(因为在我的构建系统中,将测试构建和运行测试组合在一起感觉更自然)。
重要说明:我不想通过翻转BUILD_TESTING来引导项目的一个视角或另一个视角。想法是有三个阶段,如下所示:
如果我选择不运行测试,我可以直接从上面的第一阶段进入安装阶段,但运行第三阶段将触发先前的依赖阶段。
有什么线索吗?(如果没有,我怀疑我将不得不直接问CMake开发人员......)
提前致谢。谢谢。
然而,结果是我非常依赖CMake来执行构建和单元测试。截至今天,我意识到测试是在“全部”目标下构建并在“测试”目标下运行。
对于CMake 2- (例如Unix Makefiles生成器):
make all # Build project AND tests
make test # Run tests
使用CMake 3+和任何生成器:
cmake --build . --target all # Build project AND tests
cmake --build . --target test # Run tests
我想知道是否有办法将“构建项目”阶段与“构建测试”阶段分开(因为在我的构建系统中,将测试构建和运行测试组合在一起感觉更自然)。
重要说明:我不想通过翻转BUILD_TESTING来引导项目的一个视角或另一个视角。想法是有三个阶段,如下所示:
cmake --build . --target <project> # 1. Build project only
cmake --build . --target <build_tests> # 2. Build tests
cmake --build . --target <run_tests> # 3. Run tests
如果我选择不运行测试,我可以直接从上面的第一阶段进入安装阶段,但运行第三阶段将触发先前的依赖阶段。
有什么线索吗?(如果没有,我怀疑我将不得不直接问CMake开发人员......)
提前致谢。谢谢。