On Saturday, 18 March 2017 at 13:47:34 UTC, alex1974 wrote:
On Saturday, 18 March 2017 at 13:41:12 UTC, Mike Parker wrote:
On Saturday, 18 March 2017 at 12:49:33 UTC, alex1974 wrote:
This simple layout works, but then all parts will be compiled
every time. Is there a way to just compile the "sublibraries"
which have changed?
By "compiled every time", if you're talking about when using
the library as a dependency, that's not quite true. dub will
compile dependencies on the first run, then only in specific
scenarios, not every time. It's really not a big deal. Take a
look at dlib [1], for example. On big monolithic library and I
haven't seen anyone complaining.
But if you really want to, take a look at subpackages[2] in
the dub docs.
[1] https://github.com/gecko0307/dlib
[2]
https://code.dlang.org/package-format?lang=json#sub-packages
Actually the compiling is fast. But its confusing, that all
unittests from all sublibraries are performed every time.
I thought with subpackages I can perform just the test from the
part I'm working on.
But I can't get the right layout for the subpackages.
My folder structure looks like
extensions/
dub.sdl
regex/
dub.sdl
source/
regex.d
files/
dub.sdl
source/
package.d
commons.d
fileexceptions.d
...
the main dub.sdl under extensions/:
dependency "extensions:regex" version="*"
subPackage "./regex/"
dependency "extensions:path" version="*"
subPackage "./path/"
dependency "extensions:files" version="*"
subPackage "./files/"
dependency "extensions:ranges" version="*"
subPackage "./ranges/"
dependency "extensions:arrays" version="*"
subPackage "./arrays/"
dependency "extensions:types" version="*"
subPackage "./types/"
eg regex/dub.sdl:
name "regex"
targetType "library"
"simple" subpackages, like extensions:regex, compile fine with
dub build extensions:regex
but subpackages containing several files won't, like
dub build extensions:files
Also reffering to them from external projects don't work.
Any ideas?