Local library with dub

Andre Pany andre at s-e-a-p.de
Tue Apr 20 18:11:18 UTC 2021


On Tuesday, 20 April 2021 at 17:15:15 UTC, JG wrote:
> Hi
>
> I want to put some code together in a local library that is 
> then used by several other projects. I am running into a few 
> problems. Firstly when I try and configure the code to be a 
> library (dub init, add d files to source, and remove 
> source/app.d - perhaps this wrong) dub test no longer seems to 
> work?
>
> Secondly I am having problems getting dub to add the library 
> code to other projects. It seems to work if I run dub add-local 
> path/to/library and then add the appropriate dependencies to 
> the projects dub.json file. However, I didn't manage to find 
> documentation that explains exactly how this should work. Also 
> there seems to be some mention getting this to work with 
> versions (in the documentation about dub add-path), which I 
> couldn't follow.
>
> Does anyone know in more detail how this works or how I can 
> find out?

You need to add 2 configurations. The first configuration is used 
automatically when you execute `dub build`. Just name the config 
`debug` with targetType `library`. Add a second configuration 
with name `unittest` and targetType `executable` and attribute 
`mainSourceFile` pointing to a module containing your main 
function for your test. For example name this module `testapp.d`.
The module `testapp.d` you need to exclude in your configuration 
`debug` using attribute `excludeSourceFiles`.

The configuration `unittest` is automatically used when you 
execute `dub test`.

Kind regards
Andre


More information about the Digitalmars-d-learn mailing list