dub: Is it possible to have a library target and depend on it in the same dub config?

Steven Schveighoffer schveiguy at gmail.com
Fri Sep 18 14:15:27 UTC 2020

On 9/18/20 7:38 AM, wjoe wrote:
> Something like this:
> configuration "lib" {
>    targetType "dynamicLibrary"
>    sourceDir "source/lib/"
> }
> configuration "app" {
>    targetType "executable"
>    sourceFiles "source/app.d"
>    linkWith "lib"
> }
> I found subConfiguration in the docs but that seems to be related to 
> external dependencies.
> app.d merely provides a CLI to the library as well as an option to run 
> as a server. I don't want to have the overhead of an entire git repo and 
> such for something that is a single file and also closely related to the 
> library.

There are other options.

for instance dub (the project) has a library and an application. the 
config looks like this:

configuration "application" {
	targetType "executable"
	mainSourceFile "source/app.d"
	libs "curl"
	versions "DubUseCurl" "DubApplication"

configuration "library" {
	targetType "library"
	excludedSourceFiles "source/app.d"
	copyFiles "bin/libcurl.dll" "bin/libeay32.dll" "bin/ssleay32.dll" 
	versions "DubUseCurl"

You can also build a subproject in the same repository. In that case, 
you would probably want the app to be the main project, and you then 
depend on the library project via "foo:lib"


More information about the Digitalmars-d-learn mailing list