https://github.com/rtbo/dub-build-deep
https://github.com/rtbo/dub-build-deep
Last synced: 4 months ago
JSON representation
- Host: GitHub
- URL: https://github.com/rtbo/dub-build-deep
- Owner: rtbo
- Created: 2022-03-01T14:07:58.000Z (over 4 years ago)
- Default Branch: main
- Last Pushed: 2022-11-22T20:33:51.000Z (over 3 years ago)
- Last Synced: 2025-06-04T14:17:41.495Z (about 1 year ago)
- Language: D
- Size: 10.7 KB
- Stars: 0
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: ReadMe.md
Awesome Lists containing this project
README
# dub-build-deep
`dub-build-deep` is a simple utility that fetches and builds all dependencies
of a DUB package for a specified compiler, architecture, configuration, etc.
This program is needed because DUB won't do a recursive build when sub-dependencies
are static libraries (virtually 100% of Dub library packages).
This is mainly useful for D projects working with Meson, which expects all the needed
DUB dependencies and sub-dependencies to be already available during the `meson setup` phase.
## Manual
```txt
$ dub-build-deep -h
dub-build-deep v1.0.1 - An utility to build DUB sub-dependencies
Usage:
dub-build-deep [options] (package name)[@version]
Most options are the same than expected by DUB describe.
--config Specify a DUB configuration
--override-config Specify a DUB configuration for a sub-dependency
--dub Specify a DUB executable
--compiler D compiler to be used
--arch Architecture to target
--build The build type (debug, release, ...)
-h --help This help information.
```
## Usage example
- Build `vibe-d:http@0.9.4` and all sub-dependencies
- For compiler `dmd`, architecture `x86_64` and build type `release`
- Dub configuration `notls` is specified for the subpackage `vibe-d:tls`
```txt
$ dub run dub-build-deep -- --override-config vibe-d:tls/notls --compiler dmd --arch x86_64 --build release vibe-d:http@0.9.4`
[...]
running "dub" describe ^"vibe-d:http@0.9.4^" --override-config vibe-d:tls/notls --compiler dmd --arch ^"x86_64^" --build release
Warning: vibe-d:http@0.9.4 does not appear to be present locally. Will try to fetch and repeat...
running "dub" fetch ^"vibe-d:http@0.9.4^"
running "dub" describe ^"vibe-d:http@0.9.4^" --override-config vibe-d:tls/notls --compiler dmd --arch ^"x86_64^" --build release
running "dub" build ^"vibe-d:http@0.9.4^" --config library --compiler dmd --arch ^"x86_64^" --build release
running "dub" build ^"vibe-d:inet@0.9.4^" --config library --compiler dmd --arch ^"x86_64^" --build release
running "dub" build ^"vibe-d:data@0.9.4^" --config library --compiler dmd --arch ^"x86_64^" --build release
running "dub" build ^"vibe-d:utils@0.9.4^" --config library --compiler dmd --arch ^"x86_64^" --build release
running "dub" build ^"stdx-allocator@2.77.5^" --config library --compiler dmd --arch ^"x86_64^" --build release
running "dub" build ^"vibe-d:textfilter@0.9.4^" --config library --compiler dmd --arch ^"x86_64^" --build release
running "dub" build ^"vibe-core@1.22.0^" --config winapi --compiler dmd --arch ^"x86_64^" --build release
running "dub" build ^"eventcore@0.9.20^" --config winapi --compiler dmd --arch ^"x86_64^" --build release
running "dub" build ^"taggedalgebraic@0.11.22^" --config library --compiler dmd --arch ^"x86_64^" --build release
running "dub" build ^"vibe-d:stream@0.9.4^" --config library --compiler dmd --arch ^"x86_64^" --build release
running "dub" build ^"vibe-d:tls@0.9.4^" --config notls --compiler dmd --arch ^"x86_64^" --build release
running "dub" build ^"vibe-d:crypto@0.9.4^" --config library --compiler dmd --arch ^"x86_64^" --build release
running "dub" build ^"mir-linux-kernel@1.0.1^" --config library --compiler dmd --arch ^"x86_64^" --build release
running "dub" build ^"diet-ng@1.8.0^" --config library --compiler dmd --arch ^"x86_64^" --build release
```