On Sunday, 22 August 2021 at 10:24:13 UTC, Mathias LANG wrote:
On Sunday, 22 August 2021 at 03:22:02 UTC, Brian Tiffin wrote:
...

IIUC, you want to generate multiple binaries, too ?
In which case, I think you need more of a build tool solution than a language solution.

Recent-ish versions of DUB (>= v1.24.0) support this out of the box.
Provided the following structure:
```
+ $(pwd)
+ - dub.json
+ - source/
+ - source/appname/
+ - source/appname/prog1.d
+ - source/appname/prog2.d
+ - source/appname/common.d
```

If your `dub.json` contains:
```
{
  "name": "swissarmyknife",
  "targetType": "executable",

  "configurations": [
    {
      "name": "prog1",
      "targetName": "prog1",
      "mainSourceFile": "source/appname/prog1.d"
    },
    {
      "name": "prog2",
      "targetName": "prog2",
      "mainSourceFile": "source/appname/prog2.d"
    }
}
```

It will build `prog1` by default, and `prog2` if you use `dub build -c prog2`. Note that you might want to put a `library` configuration as first entry, so that you can also use your code base as a library if you wish to extend your project later.

Cool, thanks Mathias. I'm still using `gdc-11` on the play machine. I tried `dub` with vibe.d and it's borked on this 32bit laptop. Probably simple, but at this point on the learning curve, the hassles with dmd and dub are keeping me away from those tools. Might be soon to those steps, but not today. ;-) Bookmarks made to revisit this thread when the time comes.

I do look forward to attaining a more complete grasp of the D space. The hint that Ali passed on about `version` settings not carrying through to imports helped enough that I'm pretty happy with the plans for now. They might be wrong headed plans in the grand scheme, but for now, things are working out. A bunch of stand alone CLI programs, with a boss that can manage them all, without need of shelling out a process.

Have good, make well

Reply via email to