Make dub part of the standard dmd distribution

Brad Anderson via Digitalmars-d digitalmars-d at puremagic.com
Sun May 31 22:05:20 PDT 2015


On Monday, 1 June 2015 at 04:36:06 UTC, Andrei Alexandrescu wrote:
> On 5/31/15 8:48 PM, Manu via Digitalmars-d wrote:
>> As for dub, I'd use it if it worked like a package manager; 
>> dub get
>> libcurl-d libqt-d zlib-d libsdl2-d etc
>> I have no use for it as a build system, and therefore it's 
>> expression
>> of dependencies is no use to me. I just want something that 
>> works the
>> same way as '-dev' packages already work perfectly well in 
>> linux, that
>> is, they fetch headers and libs, and put them in a standard 
>> location
>> that all the tooling can find.
>
> I thought it does that.
>
> If dub doesn't allow me to type one command to download and 
> install all I need about a package, we need to add that pronto. 
> I consider it a dealbreaker.
>
>
> Andrei

dub fetch does this already (though probably not quite what you 
are thinking of). You'd need to specify the paths manually 
because if it installed them to the global compiler paths we'd 
have dependency hell (what if 5 projects I have need 3 different 
versions of a library?). Also, you'd need root permissions.

That's not really how you use dub though. dub simply isn't a good 
fit for people who want it to be a system package manager. Its 
goals are different. If people want that they should work on 
getting libraries added to their preferred system's package 
registries.

With dub you specify the dependencies in the dub config file, not 
in some obscure section of an INSTALL file as a command the users 
need to run. You can checkout a project using dub and with a 
single command have dub download and build all the dependencies 
(and their dependencies) and then build your project against them.

dub is about making it easy for 99% of users. If you need your 
own build system then using dub just to download packages is 
overkill. Use git submodules or add something to do a download of 
your dependencies from github as part of your custom build system.


More information about the Digitalmars-d mailing list