dub with sub packages: sub package with targetType "executable" builds with configuration ""

Tobias Pankrath tobias at pankrath.net
Sat Sep 21 09:59:48 UTC 2019


Hi,

I've got a dub package with the following configuration file

---
{
    "description": "A minimal D application.",
    "license": "proprietary",
    "authors": [
       "me"
    ],
    "copyright": "Copyright © 2019, me",
    "name": "test",
    "targetType"  : "none",

    "dependencies": {
        "test:mylib"      : "*"
       ,"test:myexe1"     : "*"
    },

    "subPackages": [
       {
           "name"        : "mylib"
          ,"targetType"  : "library"
          ,"sourcePaths" : ["mylib/source"]
          ,"importPaths" : ["mylib/source"]
       }
       ,{
           "name"       : "myexe1"
          ,"targetType" : "executable"
          ,"sourcePaths": ["myexe1/source"]
          ,"importPaths": ["myexe1/source"]
          ,"dependencies": {
            "test:mylib" : "*"
          }
       }
    ]
}
---

when building this, dub gives me

---
  dub build --force
Performing "debug" build using /usr/bin/dmd for x86_64.
test:mylib ~master: building configuration "library"...
test:myexe1 ~master: building configuration ""...
Linking...
---

Note that the configuration of myexe1 is "". I want it to be 
'application', just like this:

---
% dub build test:myexe1
Building package test:myexe1 in /home/tobias/projects/test/
Performing "debug" build using /usr/bin/dmd for x86_64.
test:mylib ~master: target for configuration "library" is up to 
date.
test:myexe1 ~master: building configuration "application"...
Linking...
To force a rebuild of up-to-date targets, run again with --force.
---

Background: the project will contain multiple executables that 
use vibe-d. If they are not build as 'application' the version 
VibeDefaultMain seems to have no effect.

What's the best way to configure this?


More information about the Digitalmars-d-learn mailing list