我已按照in this question的说明将CMake项目导入Eclipse CDT,具体为this answer。
除非我对makefile进行更改,否则这种方法很有效 - 它们不会自动拾取。有问题的文件是Makefile.am,它用于自定义构建命令,将SVG文件转换为预定义大小的PNG文件。我添加了一些svgs += blah.svg
行。
在原始答案中重新运行cmake命令。
我尝试通过创建一个自定义构建器来自动执行此步骤,该构建器将在每个构建开始时运行cmake。这在测试运行中运行良好,但在清理项目一次后,我的自定义构建器就消失了。 Moerover,当我尝试重新创建它(使用相同的名称)时,我收到错误消息
A' Program'具有此名称的配置已存在
为什么自定义构建器会被删除?为什么它仍然潜伏在某个地方(导致该名称仍然在使用中)?我该怎么办呢?
更新
更严密的调查(使用git跟踪对工作区的更改)显示以下内容:
project_dir/.externalToolsBuilders/builder_name.launch
中的文件中,其中project_dir
是项目目录,builder_name
是自定义构建器的名称。project_dir/.project
。.launch
文件但删除.project
中的条目。这解释了行为:如果没有.project
中的条目,自定义构建器将不会显示在“构建器”对话框中而不会运行,因为它不再与项目关联。但由于构建器定义的文件仍然存在,因此Eclipse无法添加另一个同名的构建器。
罪魁祸首显然是Eclipse,而不是cmake,因为更改发生在cmake会触及的目录结构之外。
接下来的问题是:如何防止Eclipse在清理时弄乱自定义构建器?