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?

Reply via email to