CMake with D support early snapshot

Trent Forkert trentforkert at gmail.com
Tue Mar 25 10:50:30 PDT 2014


Hello all,

Given the recent chatter and movement on CMake D support, I've 
decided to go public with a project of mine earlier than I had 
intended.

Before I go further, a request: do *not* post this to 
HN/reddit/etc just yet. It is still in early stages and an 
upstream CMake 3.0 release (without D support) is incoming. 
Announcing this far and wide will only yield confusion at this 
time.

So, what is this?

It's CMake, with various modifications to work toward making D a 
first-class citizen of the CMake world.

While other projects exist that attempt to add D support, they 
all do so without touching CMake's C++ sources. This means that 
they will inevitably fall short of the mark.

Additionally, when I first started toying with this several 
months ago, there were a lot of implementation/design issues in 
the existing projects, that went against the way CMake's 
internals expect things to be done. I'm not sure how the current 
scene is in that regard.

Status

* GDC is fully supported, as is DMD master
* LDC and older DMD's will work for simpler projects, but won't 
handle linking external libraries at the moment. I had a hack 
workaround for this before, but recently removed it when 
restructuring things a bit.
* 32-bit DMD on Windows can't really be used for a C/C++/D mixed 
project right now because of problems I'm having with Optlink
* VisualD generation works (tested on VS 2010 and VS 2012)
* Makefile generation (and similar generators) work
* Works on Windows and Linux. OS X ought to work, but is 
untested, as I don't have my OS X dev environment set up at the 
moment
* D is listed on the CMake Qt GUI, which is nice

Github: https://github.com/trentforkert/cmake
Wiki: https://github.com/trentforkert/cmake/wiki
Binaries: 
https://drive.google.com/folderview?id=0B5vzzNch4TtET09HM0NLWURKV1U&usp=drive_web#list


As is tradition here, destroy!

  - Trent


More information about the Digitalmars-d-announce mailing list