July 26, 2013
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...
1 2
Next ›   Last »