Jef 20d28e80a5 Initial community commit 10 months ago
..
actions 20d28e80a5 Initial community commit 10 months ago
tests 20d28e80a5 Initial community commit 10 months ago
tools 20d28e80a5 Initial community commit 10 months ago
LICENSE.txt 20d28e80a5 Initial community commit 10 months ago
README.md 20d28e80a5 Initial community commit 10 months ago
_manifest.lua 20d28e80a5 Initial community commit 10 months ago
_preload.lua 20d28e80a5 Initial community commit 10 months ago
d.lua 20d28e80a5 Initial community commit 10 months ago

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

  • flags
    • AllInstantiate
    • CodeCoverage
    • Color
    • Documentation
    • GenerateHeader
    • GenerateJSON
    • GenerateMap
    • IgnorePragma
    • LowMem
    • Main
    • PerformSyntaxCheckOnly
    • Profile
    • ProfileGC
    • Quiet
    • RetainPaths
    • ShowCommandLine
    • ShowDependencies
    • ShowGC
    • ShowTLS
    • StackFrame
    • StackStomp
    • SymbolsLikeC
    • UnitTest
    • UseLDC
    • Verbose
  • boundscheck ("type") [Off, SafeOnly, On]
  • compilationmodel ("model") [ Project, Package, File ]
  • checkaction
  • computetargets
  • debugconstants
  • debuglevel
  • dependenciesfile ("filename")
  • deprecatedfeatures ("feature") [ Error, Info, Allow ]
  • docdir
  • docname
  • headerdir
  • headername
  • importdirs { "paths" }
  • inlining
  • jsonfile ("filename")
  • importdirs
  • optimize
  • preview
  • revert
  • runtime ("type") [ Debug, Release ]
  • staticruntime ("state") [ on, off ]
  • stringimportdirs { "paths" }
  • transition
  • versionconstants
  • versionlevel

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" }