【发布时间】:2012-03-14 21:53:50
【问题描述】:
我有一个使用 CMake 配置的 Visual Studio 2008 下的项目。对于这个项目,我有三个构建配置:“调试”、“发布”、“测试”。我所有的 C++ 文件根据它们的功能(模型、视图、控制器......)被分隔在几个目录中。一个目录称为“test”,其中包含仅用于配置“test”的文件。
因此,如果配置为“test”,我对 CMake 要做的就是编译所有目录中的文件,但如果配置为“debug”或“release”,则排除目录“test”。
【问题讨论】:
-
你试过用
if(CMAKE_BUILD_TYPE STREQUAL "test")包裹add_subdirectory(test)吗? -
@arrowdodger。打开 CMAKE_BUILD_TYPE 是个好主意。不幸的是,对于多配置生成器,cmake 并没有真正使用这个生成器(除非在 Cmake 的命令行上明确指定)。
-
你的意思是你有三个配置而不是目标? CMake 中的目标是您通过
ADD_LIBRARY、ADD_EXECUTABLE等添加的库或 exe。 -
@Fraser 是的,事实上它是“配置”