D的实际建筑系统

时间:2012-03-12 16:21:53

标签: build-automation d

我知道Jacob Carlborg和DSSSBUDOrbit / build,rdmd。只有Orbit似乎很活跃。 那么,哪些最有用的是构建具有许多依赖关系的庞大,复杂的D程序? 不需要打包,只需要很好的清晰构建过程帮助。

3 个答案:

答案 0 :(得分:4)

不是成品,而是......

DMD已经有一个-deps flag,可以使自动生成make文件相当简单。

答案 1 :(得分:4)

它们也是这里使用makefile的模板:MakefileForD

为什么要使用它:

  • 易于使用
  • 支持所有编译器
  • 能够构建共享和静态库或可执行文件
  • // build

答案 2 :(得分:1)

我肯定会争论rdmd - 这是一个很好的帮手,可以包装你最喜欢的编译器。文档的基本用法是:

rdmd [rdmd args] [compiler args] <source file>[.d] [executable args]

在我的所有D项目中,我只使用了Bash脚本(如果在Windows上使用Cygwin),它的工作效果非常好。这是我最喜欢的一些片段:

运行

rdmd的整体存在理由是将编译 - 编辑 - 运行周期简化为编辑 - 运行,这使得这非常简单:

rdmd helloworld.d [args]

rdmd将不会运行任何时间戳比上次编译更少的文件,因此下次运行相同的源文件而不进行编辑时,它将直接传递给先前编译的可执行文件。

选择编译器

尽管名称如此,但您可以使用大多数rdmd编译器,如GDC,LDC和DMD,如下所示:

rdmd --compiler=dmd ...

构建

通常rdmd使用*.obj源代码中的tmpDir()将源中的可执行文件和rdmd文件存储在临时目录中 - 这基本上可以为{{{{{{ 1}}将rdmd个文件作为脚本运行的感觉。但是,您可以使用*.d标志指定输出文件:

-of