使用我们的CMake构建系统,我构建了一些库和一些可执行文件.构建产品都输出到特定文件夹.
现在的问题是我有VS2010和VS2008工具链,但我只需要VS2008工具链用于VS2008库.输出可执行文件是两个工具链的win32目标,所以我只需要通过VS2010工具链构建一次可执行文件,而VS2008工具链应该只跳过可执行文件并只构建所需的库(这样可以节省构建时间).
CMake基本脚本和整体设置也可能在未来交付给客户,因此如果CMake中有一种方法可以禁用某些目标,例如通用方式的所有可执行文件,那将是非常好的.否则我必须在我的CMakeLists.txt中编写许多大的IF(BUILD_EXECUTABLES)... ENDIF()构造我的可执行文件设置,而当我忘记它时没有CMake给我错误.
通过一些批处理文件触发构建.理想情况下,我想通过-D选项将变量传递给cmake(例如"-D BUILD_EXECUTABLES = false")
我试图包装ADD_EXECUTABLE宏,但这不起作用,因为我有像TARGET_LINK_LIBRARIES这样的调用,然后抱怨不存在的目标.
我也可以将输出目录设置为一些可以在之后删除的垃圾文件夹,但是(如前所述)不会节省构建时间(我们有一个非常庞大的项目)
任何想法如何以干净和通用的方式实现这一目标?
cmake ×1