Thread overview | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
|
July 31, 2015 What is the current status of D build systems? | ||||
---|---|---|---|---|
| ||||
Hi, I'm working on a project that mixes both C and D code, and does code generation as well. I've been using a shell script to hack this together, since I can't figure out how to do this with dub. Now I'm looking for a proper build system for building this project. reggae (https://github.com/atilaneves/reggae) seems to be promising, but it has bugs with indirect dependencies and failed to build my project. I have come across cmake-d and a modified version of cmake (https://github.com/trentforkert/cmake). I haven't tested them yet, because neither of them is updated recently, and I don't know if I should invest time in them. So I want to know what is the current status of those build systems? Are they abandoned or still actively developed? And are there any other build systems I should look into? Thanks. --- Regards, Yuxuan Shui |
July 31, 2015 Re: What is the current status of D build systems? | ||||
---|---|---|---|---|
| ||||
Posted in reply to Yuxuan Shui | On Friday, 31 July 2015 at 00:13:42 UTC, Yuxuan Shui wrote: > are there any other build systems I should look into? > Premake [1] supports mixing languages in the same build script. It's not a build tool itself, but can generate makefiles and IDE projects. Manu [2] maintains extensions for D support. [1] https://premake.github.io/ [2] https://github.com/premake/premake-dlang |
July 31, 2015 Re: What is the current status of D build systems? | ||||
---|---|---|---|---|
| ||||
Posted in reply to Mike Parker | On Friday, 31 July 2015 at 02:00:41 UTC, Mike Parker wrote:
> On Friday, 31 July 2015 at 00:13:42 UTC, Yuxuan Shui wrote:
>
>> are there any other build systems I should look into?
>>
>
> Premake [1] supports mixing languages in the same build script. It's not a build tool itself, but can generate makefiles and IDE projects. Manu [2] maintains extensions for D support.
>
> [1] https://premake.github.io/
> [2] https://github.com/premake/premake-dlang
It seems premake-dlang is not capable of fetch dub packages, is that correct?
|
July 31, 2015 Re: What is the current status of D build systems? | ||||
---|---|---|---|---|
| ||||
Posted in reply to Yuxuan Shui | On 31 July 2015 at 13:20, Yuxuan Shui via Digitalmars-d <digitalmars-d@puremagic.com> wrote:
> On Friday, 31 July 2015 at 02:00:41 UTC, Mike Parker wrote:
>>
>> On Friday, 31 July 2015 at 00:13:42 UTC, Yuxuan Shui wrote:
>>
>>> are there any other build systems I should look into?
>>>
>>
>> Premake [1] supports mixing languages in the same build script. It's not a build tool itself, but can generate makefiles and IDE projects. Manu [2] maintains extensions for D support.
>>
>> [1] https://premake.github.io/
>> [2] https://github.com/premake/premake-dlang
>
>
> It seems premake-dlang is not capable of fetch dub packages, is that correct?
In that it doesn't have a special command to fetch dub packages, that is true. Premake projects are expressed with a scripting language though (Lua), so it's very easy to execute dub commands to fetch packages as part of your script if that's what you want to do.
I haven't received any interest in built-in dub integration, but it's
theoretically possible to make a built-in solution for fetching dub
packages as part of the process quite easily.
Using dub as a build system though is off the table though if you mix
languages. It may be useful as a package manager, but generating
standard makefiles for the multi-language build is necessary.
|
July 31, 2015 Re: What is the current status of D build systems? | ||||
---|---|---|---|---|
| ||||
Posted in reply to Yuxuan Shui | On Friday, 31 July 2015 at 00:13:42 UTC, Yuxuan Shui wrote:
> Hi,
>
> I'm working on a project that mixes both C and D code, and does code generation as well.
>
> [...]
I'll get that bug fixed soon. I planned on doing it today but ran out of time.
Atila
|
July 31, 2015 Re: What is the current status of D build systems? | ||||
---|---|---|---|---|
| ||||
Posted in reply to Yuxuan Shui | On Friday, 31 July 2015 at 00:13:42 UTC, Yuxuan Shui wrote:
> I have come across cmake-d and a modified version of cmake (https://github.com/trentforkert/cmake). I haven't tested them yet, because neither of them is updated recently, and I don't know if I should invest time in them.
I'm not sure about cmake-d. I think dcarp stated somewhere that he wasn't actively using D any more, or something to that effect.
The fork of CMake is still active. Trentforkert said he is just waiting for things to progress in the D ecosystem before continuing work. (Mostly related to shared libraries.)
If you're willing to build and use the fork (it's actually really easy,) then you can use the CMake generator I wrote for dub a few months back. Simply run `dub generate cmake` and it will spit out build scripts for your project and all of its dependencies.
|
July 31, 2015 Re: What is the current status of D build systems? | ||||
---|---|---|---|---|
| ||||
Posted in reply to Yuxuan Shui | On Friday, 31 July 2015 at 00:13:42 UTC, Yuxuan Shui wrote: > I have come across cmake-d and a modified version of cmake (https://github.com/trentforkert/cmake). Oh hey, that's me! > I haven't tested them yet, because neither of them is > updated recently, and I don't know if I should invest time > in them. I've got a handful of work-in-progress changes I've yet to push publicly, and even more I've yet to commit. (Yes, I have weird work habits.) > So I want to know what is the current status of those build systems? I'm still around, and I fix bugs when they get in my way or someone else complains. > Are they abandoned No. Neglected, but not abandoned. > or still actively developed? If I can find the time (and the files, which hopefully survived a recent Linux distro-switch), I'll see about cleaning up and publishing the additional changes I have soon, and getting things on to a more recent version of CMake. As Steven Dwy said, I put the project on a bit of a hiatus while waiting for shared lib support to be ironed out (specifically, the behavior of `export`). Part of my unpublished changes includes a change that renders my previous concerns on that front solved regardless of what becomes of `export`. I would still like to be able to run tests for building shared libraries, and I won't even consider upstreaming until I can. Like I said though, I'll deal with bug reports if you file them. - Trent Forkert |
July 31, 2015 Re: What is the current status of D build systems? | ||||
---|---|---|---|---|
| ||||
Posted in reply to Trent Forkert | On Friday, 31 July 2015 at 22:40:25 UTC, Trent Forkert wrote: > On Friday, 31 July 2015 at 00:13:42 UTC, Yuxuan Shui wrote: >> [...] > > Oh hey, that's me! > >> [...] > > I've got a handful of work-in-progress changes I've yet to push publicly, and even more I've yet to commit. (Yes, I have weird work habits.) > > [...] Hi, I just want to let you know I've tried to build my project with your cmake fork, and it worked like a charm :) Good to hear it's still alive. Let's hope the situation about shared libraries can improve and you can move on. > > [...] |
August 01, 2015 Re: What is the current status of D build systems? | ||||
---|---|---|---|---|
| ||||
Posted in reply to Yuxuan Shui | On Friday, 31 July 2015 at 23:59:07 UTC, Yuxuan Shui wrote:
> On Friday, 31 July 2015 at 22:40:25 UTC, Trent Forkert wrote:
>> On Friday, 31 July 2015 at 00:13:42 UTC, Yuxuan Shui wrote:
>>> [...]
>>
>> Oh hey, that's me!
>>
>>> [...]
>>
>> I've got a handful of work-in-progress changes I've yet to push publicly, and even more I've yet to commit. (Yes, I have weird work habits.)
>>
>> [...]
>
> Hi, I just want to let you know I've tried to build my project with your cmake fork, and it worked like a charm :)
>
> Good to hear it's still alive. Let's hope the situation about shared libraries can improve and you can move on.
>
>>
>> [...]
I use CMake on mixed C/D projects and dub for D-only projects. On one project I'm using CMake to invoke dub to keep the D libs up to date and no another I invoke CMake from dub to build the C cruft.
I find both work extremely well and are much better than shell scripts or plain Makefile bashing.
bye,
lobo
|
Copyright © 1999-2021 by the D Language Foundation