Re: CMake support for D

2018-05-30 Thread King_Duckz via Digitalmars-d-learn

On Tuesday, 27 February 2018 at 14:32:54 UTC, King_DuckZ wrote:
On Tuesday, 27 February 2018 at 09:20:21 UTC, Russel Winder 
wrote:

[...]


Right, I stand corrected about Rust, though as you say there 
are those who use it with CMake.
About cmake-d, there's this 
https://github.com/dcarp/cmake-d/issues/19, which I could work 
around. More seriously though, it doesn't track dependencies 
between .d files. So if for example you have:


[...]


Are there any news at all about CMake support? Should I just give 
up?


Re: CMake support for D

2018-02-27 Thread King_DuckZ via Digitalmars-d-learn

On Tuesday, 27 February 2018 at 09:20:21 UTC, Russel Winder wrote:
On Mon, 2018-02-26 at 20:28 +, King_DuckZ via 
Digitalmars-d-learn wrote:

[…]

One [more] year ahead, and I found this old thread I had 
forgotten about. In the meantime, trentforkert has stopped 
(apparently) working on cmake, and dcarp's has failed me for 
projects larger than a couple files. It also looks like it's 
not receiving updates anymore.


The DCarp CMake-D repository is active. If it doesn't work then 
it just needs more work.


All of this kept me away from D. Now that gdc is rumoured to 
get merged into gcc 8 tho, is there any concrete chance of 
this happening? I think even rust (which came out after D) has 
decent cmake support at this point.


As far as I am aware CMake is not used for Rust, the vast 
majority of people use Cargo. This mean it is certain some Rust 
people will use CMake. :-)


It is worth noting that the Rust plugin to CLion does not 
require CMake, it uses Cargo. CLion not IDEA is not the focus 
of the Rust plugin due to debugging. CLion is the platform for 
all native code language for JetBrains as I understand it 
exacly because of debugging support. I believe the work on D 
plugin support for IntelliJ IDEA should refocus on CLion. It 
can still use Dub it seems, and it can get access to the 
debugging framework.


Clearly it would still be good in D had CMake support. It 
strikes me the DCarp's CMake-D repository is the one to support.


Right, I stand corrected about Rust, though as you say there are 
those who use it with CMake.
About cmake-d, there's this 
https://github.com/dcarp/cmake-d/issues/19, which I could work 
around. More seriously though, it doesn't track dependencies 
between .d files. So if for example you have:


// a.d
void foo() {}

// b.d
import a;
int main() { foo(); return 0; }

and compile it, all goes well. Now if you change a to be:

//a.d
void foo(a=10) { //use a somewhere }

and just 'make' then you're in for some really funky crash (it 
may not be the exact code, but I had a problem very similar to 
this). The only fix is make clean; make. This is really hard to 
spot as soon as you start having more than a couple files, and 
it's really something the build system should take care of. 
Unfortunately I don't think a purely scripted solution for cmake 
will ever be able to handle this problem.


Speaking of CLion, at this point I've pretty much abandoned it, 
vim is more than enough for me. My problem is mixing D with C and 
C++, and with being already so familiar with CMake that starting 
all over again just puts me off to the point I'd rather not do 
any D at all. Build systems are not my passion really, and 
learning CMake was already painful enough.


Re: CMake support for D

2018-02-26 Thread King_DuckZ via Digitalmars-d-learn

On Monday, 16 January 2017 at 19:44:34 UTC, Russel Winder wrote:
On Mon, 2017-01-16 at 17:47 +, King_DuckZ via 
Digitalmars-d-learn wrote:



[…]

> Meson can build D stuff out of the box.
> 

Hadn't heard of this before, I'll have a look. Btw I don't see 
any mention of D on their home page.


It is very nice. D seems to work OOTB.

[…]
I'm not saying we shouldn't be learning things, but time is 
limited and I'd rather practice my C++ or D than learn yet 
another build system, especially if I only have limited use 
for it :)


Some of us find build fun.

[…]


One [more] year ahead, and I found this old thread I had 
forgotten about. In the meantime, trentforkert has stopped 
(apparently) working on cmake, and dcarp's has failed me for 
projects larger than a couple files. It also looks like it's not 
receiving updates anymore.


All of this kept me away from D. Now that gdc is rumoured to get 
merged into gcc 8 tho, is there any concrete chance of this 
happening? I think even rust (which came out after D) has decent 
cmake support at this point.


Re: CMake support for D

2017-01-16 Thread King_DuckZ via Digitalmars-d-learn

On Monday, 16 January 2017 at 12:29:46 UTC, Russel Winder wrote:
On Mon, 2017-01-16 at 11:40 +, King_DuckZ via 
Digitalmars-d-learn wrote:
On Sunday, 3 January 2016 at 17:30:15 UTC, Dibyendu Majumdar 
wrote:

> Does CMake recognise D in the enable_language command?
> 
> If not is there a workaround?
> 
> Thanks and Regards

> Dibyendu

One year later, is there any progress on this? Now that gdc 
has gained support for .so (it seems), lack of cmake support 
is the only thing that is preventing me from adopting D. I 
agree that cmake is not the prettiest thing out there, but I 
think there are many good reasons for wanting it:


Does this do the job?

https://github.com/dcarp/cmake-d

I had forgotten about that... I even used it at some point a long 
time ago, maybe I should give it another try, since it seems to 
have received lots of commits since then!



1) As already said, it's needed for CLion


I wish CLion would support Meson.

Meson can build D stuff out of the box.

Hadn't heard of this before, I'll have a look. Btw I don't see 
any mention of D on their home page.


2) Many programmers, including myself, are already familiar 
with its syntax - pretty or not, learning a new tool is extra 
work


Which can actually be a good thing, learning is something we 
should all be doing all the time.




I'm not saying we shouldn't be learning things, but time is 
limited and I'd rather practice my C++ or D than learn yet 
another build system, especially if I only have limited use for 
it :)



3) As far as I know, you can't mix C++ and D with dub


I'm having difficulty getting Dub to compile D and clean up 
afterwards. :-(


4) I could just drop D code in my pre-existing C++ projects 
without much effort on the build system


I was going to try moving Me TV from C++ to D, but the path of 
least resistance is to just continue with it in C++ and put all 
the C++17 stuff in.




I feel the same about many small tools I wrote.


I hope to hear some promising news on this side!