garage/snippets/nixctor/README.md

30 lines
823 B
Markdown

## ctor.nix - C/C++/D buildsystem written in Nixlang
Here is a buildsystem I made that incrementally compiles a program and
then links it together at the end. The file default.nix shows an
example on how to use this code in a real derivation, it's as simple
as just adding your source files into the `sourceFiles` array and
ctor.nix will generate a build phase and an install phase for you. It
just calls `stdenv.mkDerivation` so you'll have to supply the required
arguments to that too.
To test:
nix-build
To use a different compiler or flags, you can use the `compiler` and
`cflags` arguments:
```nix
# Example for a D program
constructProgram {
pname = "hello-world";
version = "1.0.0";
src = fetchFromWhatever {};
compiler = "ldc2";
cflags = "-O -wi";
sourceFiles = [ "main.d" "lib.d" ];
}
```