【发布时间】:2013-11-14 19:22:49
【问题描述】:
我正在考虑在CMake 中重新实现我们的构建系统(目前基于GNU Make)。
免责声明:这更像是一个理论和“最佳实践”问题。我不深入了解CMake。另外,如果问题更切题,请随时将问题转移给程序员。
据我了解,CMake 的标准工作流程是
cmake .
make
我怀疑CMake 文件和 Makefile 可能存在去同步问题。
因此,在通常的开发过程中,您应该运行make 以避免不必要地重新构建CMakeCache 和Makefiles,并且通常会使过程更加直接。但是,如果你向CMakeLists 添加一个新的源文件并运行make,它将使用旧的CMakeCache 和Makefiles,并且不会自动重新生成它们。我认为它在大规模使用时可能会导致重大问题,因为如果某些东西没有按应有的方式构建,您将不得不尝试执行make clean,然后,如果它没有帮助,您将需要删除CMakeCache 并重新生成所有内容(手动!)。
如果我对上面的某些事情不正确,请纠正我。
我只想做
awesome-cmake
并让它更新所有需要更新和构建项目的东西。
那么,问题来了:有没有办法使用 CMake 进行“原子构建”,以便跟踪所有必需的信息并抽象出 make 的使用?
【问题讨论】:
标签: build makefile cmake build-process