I'm having problems understanding how to create multiple packages.
Running dub master.
Here I have a project a
which creates a binary, and I have project b
that relies on that binary.
When building b
, it states "no source files". I'm guessing it refers to a
. Is this a bug..? Or what is happening here?
And if I look at a
, dub build
has not been run. Doesn't dependencies in dub build the packages?
Also.. How can I refer to the location of the package a
? I know it produces a binary (well, hopefully once I sort this out), and I wish to copy this binary to my project. I see the preBuildCommands
and $PACKAGE_DIR
, but how can I get the $PACKAGE_DIR
of a
? The best thing would be if I could reference the targetName
of a
directly, so my preBuildCommands
could copy $(TARGET_NAME a)
to b
s directory. After all, a
is a dependency of b
, and a
has a targetType
to create an executable.
Any tips on how this should be structured?
In b/dub.json
below (the e dub.json
line), I added "a" : "~master"
as a dependency.
➜ test dub init a
Successfully created an empty project in '/home/simendsjo/code/d/dtutorials/test/a'.
➜ test dub init b
Successfully created an empty project in '/home/simendsjo/code/d/dtutorials/test/b'.
➜ test cd b
➜ b e dub.json
➜ b dub add-local ../a "~master"
Registered package: a (version: ~master)
➜ b dub build
Package a contains no source files. Please add {"targetType": "none"} to it's package description to avoid building it.
b: ["b", "a"]
Building b configuration "application", build type debug.
Compiling...
Linking...
➜ b ./b
Edit source/app.d to start your project.
➜ b