我们有一个相当大的C/C++项目,使用Scons进行构建。我想尝试通过Eclipse-CDT来构建它。有人有这方面的经验并且可以告诉我如何设置Scons作为构建器吗?(不使用SConsBuilder插件,它无法与Fedora-11中的Eclipse-CDT一起使用)。
我们有一个相当大的C/C++项目,使用Scons进行构建。我想尝试通过Eclipse-CDT来构建它。有人有这方面的经验并且可以告诉我如何设置Scons作为构建器吗?(不使用SConsBuilder插件,它无法与Fedora-11中的Eclipse-CDT一起使用)。
你可以使用一个Makefile将重要的目标委托给SCons
.PHONY: all clean install
default: all
all:
scons
clean:
scons -c
install:
scons install
那么可以直接使用“标准的Make C项目”。
我们的一位学生为Eclipse CDT实现了一种新的SCons集成方式,它是双向的,即可以导入SCons文件并使用相应的设置填充Eclipse CDT项目,也可以从Eclipse项目设置生成SCons文件。此外,它还提供了交互式SCons模式,大大加速了较大SCons项目的增量构建。该工具将很快免费公开发布,详情请见http://sconsolidator.com
我之前试过在Eclipse CDT中使用Waf,SCons非常相似。解决方法是创建一个空的Makefile项目,然后在选项中将“make”更改为“scons”。在Windows上,这可能需要将scons.bat文件添加到路径中。这比创建一个具有 all:\n \tscons
类型模式的虚拟Makefile好不了多少,但工作量最小。
SConsBuilder插件不是一个好主意。它里面有一堆硬编码的Python代码,输出到一个SConstruct中。它已经好久没有更新,许多代码现在可能已经在SCons中过时了。我认为比较好的方法是像SCons为Visual Studio所做的那样,或者像CMake为Eclipse CDT所做的那样。这意味着根据您的构建配置动态生成一个.cproject文件。
我曾经写过一个Waf的Eclipse项目生成器,它遍历构建节点收集源文件并生成.project和.cproject文件。类似于CMake的方式,但是Waf的默认行为是创建一个变量目录,这意味着您不必处理源外构建的问题。这已经作为waf本身的附加功能添加了进去。它仅使用Waf API的一部分,因此有可能通过一些较小的工作将其转换为SCons。换句话说,没有太多可用的东西。.cproject格式在任何地方都没有真正记录,并且与Java版本相比非常丑陋。
我与CDT相处不太好 - 它在Java开发工具之后很长一段时间了 - 我仍然使用Vim和:make
,所以最终这有点像纯理论。
只需更改生成器设置,无需插件。选择外部生成器并将scons设置为make,并将工作目录设置为放置SConstruct的目录。
现在,您可以使用make目标视图创建scons构建命令并像make命令一样执行它。默认情况下,scons的错误解析器正常工作,无需进行其他配置。