我有一个CMake项目。它是由开发团队开发的跨平台项目。 Visual Studio和其他make文件是库版本和外部开发人员的内部版本控制。每次添加文件时,我们都需要重新编译所有平台的所有prject文件。如何强制CMake一次为所有系统生成新的项目文件(如果可能,从CMakeLists内部生成,而不是作为命令行参数)?
答案 0 :(得分:0)
我认为在CMakeLists中实现这一点并不合理。 CMake是一个makefile生成器。 cmakelists中的所有内容都在配置makefile,它也可以重新用于生成项目文件。如果cmakelists也可以请求生成不同类型的makefile ...它将与cmakelists中的每个其他命令不同,因为它不描述当前选择的makefile。
如果我是你,我只会通过从命令行调用带有适当参数的cmake来创建一个shell脚本或一个简单的makefile,它与重建每个项目文件的CMake分开。
答案 1 :(得分:0)
版本化的CMake的目标是否产生了构建脚本而不强迫开发人员安装CMake?
在任何情况下:最好使用正确的工具来完成正确的工作。 CMake用于生成构建文件和执行此操作所需的小脚本。使用脚本环境(bash,cmd.exe)根据需要为所有平台运行CMake。
这使CMake文件保持干净(可读,CMake脚本难以阅读),并提供清晰的关注点分离。