Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/opatut/d-build-system

Very simple build system for d language.
https://github.com/opatut/d-build-system

Last synced: 14 days ago
JSON representation

Very simple build system for d language.

Awesome Lists containing this project

README

        

# DBS - D Build System

## What is this?

This is a build system for the [D Programming Language](http://dlang.org). It is very simple and probably will never compete with the bigger ones, like [DSSS](www.dsource.org/projects/dsss). I just wrote it for fun and as a learning effort.

## License

DBS is free software: you can redistribute it and/or modify
it under the terms of the **GNU General Public License** as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.

DBS is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with DBS. If not, see .

## Installation

Compile DBS with `make` or manually with

dmd -odbuild/ -ofbin/dbs -Isrc/ src/*.d

Then copy the executable `bin/dbs` to your path or call it from your project root. For temporary testing, you can add the `bin/` directory to your path environment variable like this:

PATH=$PATH":"$PWD"/bin"

## Usage

Configure the targets in `DBuildFile` (see [DBuildFile Format](#readme-dbuildfile)). Then call `dbs` from your project root. For more usage information, run `dbs --help`.


## DBuildFile Format

# Comments look like this

compiler: DMD
libraryPath: "lib/"
binaryPath: "bin/"
default: derp

Dependency {
name: sfml

# optional, if not provided, uses only `name`
libraries: sfml-audio sfml-graphics sfml-network sfml-system sfml-window
}

External {
name: delerict
command: cd externals/Derelict3/build; rdmd derelict.d

# optional, see `Dependency`
libraries: DerelictAL DerelictFT DerelictGL3 DerelictGLFW3 DerelictIL DerelictUtil

# can be space-seperated list
libraryPath: externals/Derelict3/lib/

# can be space-seperated list
includePath: externals/Derelict3/import/
}

Target {
name: derp

# can be a directory or a list of files
files: derp/

# automatically generated from `files` if not provided and `files`
# is a directory
documentRoot: derp/

# StaticLibrary|SharedLibrary|Executable
type: StaticLibrary

# If not found, a system library is assumed (a dependency object
# will automatically be created)
depends: luajit-5.1 dl curl luad orange delerict
}