在为Eclipse生成之后管理CMake项目

时间:2015-01-18 14:30:36

标签: eclipse cmake eclipse-cdt

我即将为eclipse CDT生成一个基于CMake的项目,并将其导入eclipse。

现在,每当我添加新的源/头文件时,如何告诉CMakeLists.txt已添加新文件?
A.我是否应该每次手动向CMakeLists.txt添加一个条目以使其保持最新状态?

B中。是否有可以自动执行此操作的插件?

℃。我不应该经常这样做,但是当我不得不与其他团队成员分享我的项目时偶尔这样做吗?

感谢所有人指出我的最佳做法......

2 个答案:

答案 0 :(得分:0)

CMakeLists.txt是配置信息的主要来源。修改生成的项目文件(适用于任何IDE /编辑器)没有任何意义。您甚至不应该在VCS中使用它们 - 将它们视为 build artefacts 。我从未使用过Eclipse,但是假设它必须在修改CMakeLists.txt后重新生成项目,然后Eclipse应该重新加载它们并继续构建。

此外,我不喜欢某个插件或IDE本身会自动修改CMakeLists.txt的想法。除了该操作的实现复杂性之外,IDE很可能会破坏其中的某些内容。 至于我,手动修改它总是更好(实际上并不那么难)。

答案 1 :(得分:0)

  

一个。我应该每次手动向CMakeLists.txt添加一个条目以使其保持最新状态吗?

一种方法是使用globbing指定源文件:

file(GLOB_RECURSE MY_SRCS src/*.cpp)

这意味着您不必每次都指定新的源文件;相反,你说“此文件夹中的任何文件都是项目的一部分”

  

B中。是否有可以自动执行此操作的插件?

我不知道,但似乎没有;就像@zaufi所说,这需要一些东西来自动维护CMakelists.txt文件,这看起来像一个混乱的问题。但是,有一些Eclipse plugins应该可以简化文件的维护。 CMakeEd提供语法高亮,CMakeBuilder提供了一个用于设置各种CMake选项的gui。

  

℃。我不应该经常这样做,但是当我不得不与其他团队成员分享我的项目时偶尔这样做吗?

同样,使用Globbing,您可以删除文件夹中的文件并再次运行CMake。您不需要再次指定-G选项,因为新文件应自动显示在eclipse中。就像@zaufi所说,你通常不需要与团队成员共享.project和.cproject文件。相反,他们可以从CMake中生成自己的。