On Friday, 18 September 2020 at 12:03:45 UTC, Mike Parker wrote:
On Friday, 18 September 2020 at 11:38:14 UTC, 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.

Yes, this is possible. Should be something like this:

configuration "lib" {
   targetType "dynamicLibrary"
   targetPath "lib"
   sourcePaths "source/lib/"
   excludedSourceFiles "source/app.d"
}

configuration "app" {
   targetType "executable"
   mainSourceFile "source/app.d"
   excludedSourceFiles "source/lib/*.d"
   importPaths "source/lib"
   libs "lib/libName"
}

Awesome. Thanks. And Danny to you, too.

2 issues though.
- It doesn't build the library automatically, and
- Linking fails because error: ld: cannot find -llib<name>

Built it manually via dub --config=lib and it lives inside the lib directory. Then added lflags "-Llib" to the "app" configuration but that didn't help. ld still can't find the file.
Then I passed the absolute path and ld still complains.

Any ideas as to why ?

Reply via email to