我是cmake的新手。 有没有更好的教程可以深入研究这个问题? 有没有关于cmake“良好实践”的文章? 这里有关于所有cmake命令及其功能的任何好的概述吗?在我看来,最初的cmake文档相当令人困惑和搞砸......
现在有更具体的内容: 据我所知,你必须告诉cmake 应该编译的每个源文件(.cpp)。是不是可以简单地告诉“只编译你在文件夹/ src中找到的所有东西”(就像你可以简单地定义一个没有havinf的include文件夹来定义每个.h文件)?
告诉cmake还编译不在/ src目录中的文件的最佳方法是什么?我有另一个外部源代码文件夹,它也有子目录和一切。我是否必须(再次..)将每个.cpp文件写入cmake脚本,以便让它知道外部代码也应该被编译?
基本上我正在寻找将新的源/头文件添加到项目中的最快最好的方法,而不必经常调整cmake文件。
答案 0 :(得分:3)
你可以只是全球*.cpp
*.h
等,但如果您的文件列表发生变化,除非您触摸CMakeLists.txt
文件,否则CMake不会注意到。
但最佳做法是不断调整CMake文件。如果列出文件,您将获得一致的行为,这是非常重要的。
实际上,实际上并没有那么多工作。
对每个目录使用CMakeLists.txt
文件,并使用add_subdirectory通常是管理它的最简单方法。这样你就不会处理当前和子范围之外的路径。