On Thursday, 25 July 2013 at 17:59:23 UTC, Elie Morisse wrote:
On Wednesday, 30 May 2012 at 08:13:34 UTC, Sputnik wrote:
There is a build and/or package managment system for D2 that is
working?
I googled, and I only can find things like dsss or cmaked that
don't get updated from a long time ago.
I really need to manage to get a project to compile in Windows
and Linux. Actually the code not have any OS dependence, so the
real diferences in each OS are the linking to gtkd and how and
where install the project. Actually I'm using a makfile in
Linux
that works well, but I can't use it in windows for thing like
pkg-config.
CMakeD is actually just a bunch of CMake modules and very
lightweight, it wouldn't be surprising if it still worked or
required more than a few minor changes.
I've decided today to migrate my project from C++ to D after
being annoyed by the lack of conditional evaluation of code in
C++ and the opposition of the core designers of C++ to static
if, so I will report later if CMakeD is still useable.
The thing about CMakeD(2) is that, by my recollection, it *needs*
to be installed in CMAKE_ROOT. It also doesn't support LDC,
technically doesn't detect compilers correctly, and sets
variables that will break multi-language projects.
There's a lot to fix with it, it won't be a simple set of
changes. And it won't be something you can consult documentation
for, as CMake internals are very poorly documented.
That said, I've been working on a new collection of D-related
CMake modules for the past month or so. Real life (and Minecraft
and DOTA2) have been encroaching on my free time lately, but
progress is being made. Right now, I have a D project, which
references a C library built within the same project tree, and
things are working on Linux x86_64 with recent versions of DMD,
LDC, and GDC.
I'll be doing testing and tweaks this weekend, and if it looks
like things are working, I'll move toward getting this documented
and put on github.
It's not quite there yet, and the API has changed twice in the
past week as I deal with CMake quirks, but I should have enough
feature completeness for a v0.1 this next week. I have ideas
kicking around for some potentially interesting features (dub
integration of some sort?) that *definitely* won't be ready for
the v0.1, but they'll be coming.
Good news is, integration into CMake's sister tools (CPack and
CTest) is super easy, so standard installers/archives/packages
for the various platforms will be supported the same as C++ based
CMake projects.
Soon...