= Welcome to CMakeD = CMakeD is a [http://www.cmake.org CMake] module for the D programming language. There are several other build systems available for D (including [http://www.dsource.org/projects/build bud (build)], [http://www.dsource.org/projects/dsss 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 [wiki:SampleBuildSessions sample build sessions] to get an idea of how CMakeD works. Patches, bug reports, and suggestions of every type are __'''welcome'''__. Please use the [http://www.dsource.org/projects/cmaked/newticket Ticket System] or post a message to the [http://www.dsource.org/forums/viewforum.php?f=128 CMakeD Forum]. == Download CMakeD == * svn : svn co http://svn.dsource.org/projects/cmaked/trunk cmaked * stable : [http://www.dsource.org/projects/cmaked/changeset/29/trunk?old_path=%2F&format=zip CMakeD-r29.zip] == 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 [http://www.cmake.org cmake] * install [http://dgcc.sourceforge.net gdc] or [http://www.digitalmars.com/d dmd] or both * cmake . * sudo make install If you are using a package based distribution look packages for this programs. example; [http://www.archlinux.org Arch Linux] packages for [http://aur.archlinux.org/packages.php?K=gdc gdc] and [http://aur.archlinux.org/packages.php?K=dmd dmd]. === Windows/MinGW === * install [http://www.mingw.org MinGW] * install [http://www.cmake.org cmake] * install [http://gdcwin.sourceforge.net gdcwin] * cmake.exe -G "MinGW Makefiles" . * make install === Windows/DMD === * install [http://www.mingw.org MinGW] * install [http://www.cmake.org cmake] * install [http://www.digitalmars.com/d 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 = * Selman Ulug (http://sulug.blogspot.com) * Tim Burrell