On Friday, 4 September 2020 at 07:27:33 UTC, glis-glis wrote:
On Thursday, 3 September 2020 at 14:34:48 UTC, Jacob Carlborg
wrote:
Oh, multiple binaries, I missed that. You can try to add
multiple configurations [1]. Or if you have executables
depending on only one source file, you can use single-file
packages [2].
Thanks, but this still means I would have to write an
install-script running
`dub build --single`
on each script, right?
I looked at tsv-utils [1] which seems to be a similar use-case
as mine, and they declare each tool as a subpackage. The main
package runs a d-file called `dub_build.d` which compiles all
subpackages. Fells like an overkill to me, I'll probably just
stick to a makefile.
[1]
https://github.com/eBay/tsv-utils/blob/master/docs/AboutTheCode.md#building-and-makefile
The `dub_build.d` is so that people can use `$ dub fetch` to
download and build the tools with `$ dub run`, from
code.dlang.org. dub fetch/run is the typical dub sequence. But
it's awkward. And it geared toward users that have a D compiler
plus dub already installed. For building your own binaries you
might as well use `make`. However, if you decide to add your
tools to the public dub package registry you might consider the
technique.
My understanding is that the dub developers recognize that
multiple binaries are inconvenient at present and have ideas on
improvements. Having a few more concrete use cases might help
nail down the requirements.
The tsv-utils directory layout may be worth a look. It's been
pretty successful for multiple binaries in a single repo with
some shared code. (Different folks made suggestions leading to
this structure.) It works for both make and dub, and works well
with other tools, like dlpdocs (Adam Ruppe's doc generator). The
tsv-utils `make` setup is quite messy at this point, you can
probably do quite a bit better.
--Jon