Note: This website is archived. For up-to-date information about D projects and development, please visit wiki.dlang.org.

Welcome to CMakeD

CMakeD is a CMake module for the D programming language.

There are several other build systems available for D (including bud (build), DSSS, etc), and CMakeD does not aim to replace them, as they are very good at what they do.

Some projects may require a more flexible build system that allows for full configure support which is where CMake really shines. Some D applications may be linked to external libraries that need to be detected at compile time, and if the intent is to distribute open source apps, or deliver a source code package to clients, CMakeD may be exactly what is needed.

CMakeD provides the following features:

  • Consistent build system on all platforms (Linux, Mac, Windows), compilers (gdc, dmd), and standard libraries (Phobos, Tango)
  • Configure support for automatically detecting and linking system libraries and headers
  • Platform checks
  • Conditionally built source files, targets, and directories
  • Automatic source and binary packaging
  • Source code documentation building with both dmd and gdc, including automatic generation of Candydoc ddocs (currently gdc only)
  • Does not require the user to have any special software installed (including CMakeD!) other than CMake (which is usually already installed on Linux systems)
  • Pretty colored compile output, and percent completed display

Look at sample build sessions to get an idea of how CMakeD works. Patches, bug reports, and suggestions of every type are welcome. Please use the Ticket System or post a message to the CMakeD Forum.

Download CMakeD

How to Install?

Note that installation is not required to build CMakeD based projects. See the samples, as they show how a project can be created without needing CMakeD to be installed system wide. CMakeD does this by locally including the necessary files.

However, installation is still made available for people who desire this functionality.

GNU/Linux

  • install cmake
  • install gdc or dmd or both
  • cmake .
  • sudo make install

If you are using a package based distribution look packages for this programs. example; Arch Linux packages for gdc and dmd.

Windows/MinGW

  • install MinGW
  • install cmake
  • install gdcwin
  • cmake.exe -G "MinGW Makefiles" .
  • make install

Windows/DMD

  • install MinGW
  • install cmake
  • install dmd
  • cmake.exe -G "MinGW Makefiles" .
  • path/to/MinGW/bin/mingw32-make install

Compiler Preference

CMakeD first looks for "gdc" then for "dmd". If one is installed it will use it, and if both are installed and you prefer "dmd" the DC environment variable can be used. Unix example:

export DC=/opt/dmd/bin/dmd

Windows example:

export DC=C:/dmd/bin/dmd

Note the unix style slashes in the windows export!

Authors