e047f9dbbd
+ set dependencies to said rules + fix tests |
||
---|---|---|
.. | ||
actions | ||
tests | ||
tools | ||
_manifest.lua | ||
_preload.lua | ||
d.lua | ||
LICENSE.txt | ||
README.md |
Premake Extension to support the D language
Features
- Support actions: gmake, vs20xx (VisualD)
- Support all compilers; DMD, LDC, GDC
- Support combined and separate compilation
Usage
Simply add:
language "D"
to your project definition and populate with .d files.
C and C++ projects that include .d files will also support some of the API below. Any API tagged with (D/C/C++) works in D and C/C++ projects. Any API tagged with (C/C++) only works for .d files in C/C++ projects.
APIs
D
- flags
- CodeCoverage
- Deprecated
- Documentation
- GenerateHeader
- GenerateJSON
- GenerateMap
- NoBoundsCheck
- Profile
- Quiet
- RetainPaths
- SeparateCompilation
- SymbolsLikeC
- UnitTest
- Verbose
- versionconstants
- versionlevel
- debugconstants
- debuglevel
- docdir
- docname
- headerdir
- headername
C/C++
- flags
- CodeCoverage
- UnitTest
- Verbose
- Profile
- ProfileGC
- StackFrame
- StackStomp
- AllTemplateInst
- BetterC
- Main
- ShowCommandLine
- ShowTLS
- ShowGC
- IgnorePragma
- ShowDependencies
- versionconstants
- debugconstants
- docdir
- docname
- headerdir
- headername
- dependenciesfile ("filename")
- jsonfile ("filename")
- importpaths { "paths" }
- stringimportpaths { "paths" }
- compilationmodel ("model") [ Project, Package, File ]
- runtime ("type") [ Debug, Release ]
- staticruntime ("state") [ on, off ]
- optimize
- inlining
- boundscheck ("type") [Off, SafeOnly, On]
- deprecatedfeatures ("feature") [ Error, Info, Allow ]
Example
The contents of your premake5.lua file would be:
solution "MySolution"
configurations { "release", "debug" }
project "MyDProject"
kind "ConsoleApp"
language "D"
files { "src/main.d", "src/extra.d" }