Header-Only Library - pragma(root)

Adam D. Ruppe destructionator at gmail.com
Wed Jun 17 02:51:20 UTC 2020


On Tuesday, 16 June 2020 at 13:27:00 UTC, Mathias LANG wrote:
> If I check it out as "arsd-v1.1.1", suddenly it breaks, unless 
> I use two DMD flags to solve the situation (-I and -mv).

Which is required in ALL cases by the dub approach, you just 
don't notice it as much because `dub build` sets all that based 
on the settings in the dub config file (or their conventional 
defaults).

But you lose something there: optional modules are compiled in by 
dub (unless you go through the config process to separate it), 
whereas with dmd -i they would not be processed at all. It is 
also impossible to mix versions of dependencies with the dub 
approach; you can rename that directory to -v1.1.1 but put in a 
-v1.2.1 next to it and you just have trouble (which is why dub 
resolves it down to just the one compatible version, or fails if 
it can't find one...)

Maybe one of these days I'll actually write my competing package 
manager and demo all this stuff (you wouldn't even have to change 
your layouts btw since it is easy to auto-scan packages for D 
modules and rearrange them as needed; my doc site does exactly 
this).

But since I don't use packages it isn't a big priority of mine.


More information about the Digitalmars-d mailing list