D, SCons, Dub

Alex via Digitalmars-d digitalmars-d at puremagic.com
Mon Apr 17 13:56:55 PDT 2017


On Monday, 17 April 2017 at 17:51:33 UTC, Russel Winder wrote:
> Just in case anyone gives a ####:
>
> I have submitted a pull request that adds ProgramAllAtOnce

I have been trying to do the opposite with scons - incremental 
builds. In c++ the .h and .cpp files allowed the compilation from 
many edits to be limited to one translation unit.

One thing people are often confused about is whether everything 
needs to be in the header (or di file).

An influence is that most of the code they see written by skilled 
language users is libraries like the standard library. These 
typically benefit little from interfaces files because everything 
is templates and must be in the header to compile. Hence why 
boost is mostly headers in c++ land and the D ecosystem 
encourages all at once / all everytime compilation.

In a large code base this becomes cumbersome. Changing a unit 
test should not result in everything recompiling.

I think there is a difference between library style code and 
application code. My application code doesn't have templates and 
can make use of di files. It makes sense that the language 
developers spend most of their time on library type code, and 
have been focused on it.

I just need to work out how to get scons to recognise two targets 
from one builder properly : the object file and the di file.
I can add DFLAGs to make a Object builder make the di files too, 
and the d scanner finds di files where d files are not available, 
but the build tree dependency from d to di file is missing. Dies 
anyone know how to do this ?


More information about the Digitalmars-d mailing list