Note: This website is archived. For up-to-date information about D projects and development, please visit wiki.dlang.org.
NameCDC: Compile D Code
CategoryDevelopment Tools
Status4 - Beta (fairly stable and complete, just needs to be tested on more platforms)
Home Pagehttp://dsource.org/projects/cdc/
Short DescriptionCompile-D-Code: A single-file build script written in D, for any D environment, to bundle with any D project.
LicenseBoost 1.0

CDC is a lightweight D programming language build script (and library) that can be used to compile D source code. Unlike Bud, DSSS/Rebuild, Jake, and similar tools, CDC is contained within a single file that can easily be distributed with projects. This simplifies the build process since no other tools are required.

Example:

// Accepts the same arguments as DMD
dmd -run cdc.d path/to/source -ofmyfile.exe

CDC's philosophy is that D is a very powerful language and there's no reason to rely on a second language for a build script. By modifying the main() function, CDC can be easily converted into a multi-step custom build script for your project.

CDC's only requirement is a D compiler. It is/will be supported on any operating system supported by the language. It works with dmd, ldc (soon), and gdc, phobos or tango.

Without modification, CDC can be used just like dmd, except for the following improvements:

  • CDC can accept paths as as well as individual source files for compilation. Each path is recursively searched for source, library, object, and ddoc files.
  • CDC automatically creates a modules.ddoc file for use with CandyDoc? and similar documentation utilities.
  • CDC defaults to use the compiler that was used to build itself. Compiler flags are passed straight through to that compiler.
  • The -op flag is always used, to prevent name conflicts in object and doc files.
  • Documentation files are all placed in the same folder with their full package names. This makes relative links between documents easier.

For more info, download CDC, read the documentation, and get started.

Projects Using CDC

Yage