To get you started with D, this is a small hello world application. The Makefile will automatically download a D compiler - no installation necessary:
make
./bin/hello
You can use LDC as well:
make bin/hello_opt
./bin/hello_opt
I'm sure you can take it from there. It's all up to you! Happy coding!
Instead of a Makefile, you can of course always use the install script to setup a D compiler:
source $(curl https://dlang.org/install.sh | bash -s dmd)
Or maybe you have a D compiler already installed on your system? You can use this Makefile for bootstrapping your D compiler and making sure the same compiler is used on all systems:
make setup-dmd
./bin/dmd
Analogous the command make setup-ldc
makes sure ldc
is installed locally and available
via bin/ldc
(LLVM-like interface) and bin/ldmd
(DMD-like interface).
For more advanced projects, usage of DUB
-
D's package manager - is recommended. If you work in a environment where a D compiler isn't easily available or you simply want to lock your project to a specific compiler version, you can use the packaged
dub
for your scripts:./bin/dub
Of course, you can also call dub
from Make and integrate dub with other build steps:
make dub
Simply enable the project on Travis.
The D compiler bootstrapping in make
will auto-magically work.
Alternatively, use the install script.
The easiest way to get started, is to use ddox
:
dub -b ddox
Have a look at veelo's gist to see how it can be setup to automatically publish the latest documentation to your GitHub pages.
You might also want to try dpldocs.info's automatic generation.
First, add a unittests:
unittest
{
assert(1 == 1, "D math works as expected.");
}
All tests can be executed with:
dub test
To generate coverage listing too, use the unittest-cov
build mode:
dub test -b unittest-cov
You can browse the .lst
files manually, but if you use GitHub or BitBucket,
usage of the CodeCov app is recommended.
D-Scanner is the swiss-army knife for D source code:
dub fetch dscanner
dub run dscanner -- --styleCheck source
Add a custom configuration:
dub run dscanner -- --defaultConfig
mv ~/.config/dscanner/dscanner.ini .dscanner.ini
dub run dscanner -- --styleCheck source --config .dscanner.ini
dfmt is a source code formatter for D:
dub fetch dfmt
dub run dfmt
Docker is typically used to allow a consistent work environment, but in my use cases Docker isn't available. If you want to use Docker, check out the D docker images.
Target | Description |
---|---|
bin/hello | A normal build with DMD |
bin/hello_opt | An optimized build with LDC |
bin/hello_lto | An optimized build with LDC and link-time optimization (LTO) |
dub | Runs the application via DUB |
dub_opt | Runs the application via DUB with LDC |
test | Runs all unittests |
style | Runs static code analysis and style checking |
format | Reformats all code |
clean | Removes all generated data |
Feel to ask them at the D: Learn Forum.