Build managers

Jonathan Marler via Digitalmars-d digitalmars-d at puremagic.com
Tue Feb 3 08:29:19 PST 2015


On Monday, 2 February 2015 at 16:06:00 UTC, Atila Neves wrote:
> XML? Please, no. Anything but XML.

FWIW, here's the same data written in ASON (the first language 
example anyway)

https://github.com/marler8997/mored/wiki/ASON-(Application-Specific-Object-Notation)

Language {
	Name D
	Extensions [d di]
	Compiler Application=dmd {
		CompileCommand "{cmd} -c {source} -of{ObjectDir}/{source}.obj" 
{includesArgument}
		LinkCommand "{cmd} {objects} {libraries} 
-of{OutputDir}/{name}{extension} {includes}
		IncludesArgument "-I{include}"
		StaticLibraryArgument "-lib"
		DynamicLibraryArgument "-lib"
		Platform Type=windows {
			Targets [win32 win64]
			CompilerLocation "C:/D/dmd2/windows/bin"
			StandardLibrary include="false" 
"C:/D/dmd2/windows/lib/phobos.lib"
			BinaryExtension ".exe"
			DynamicLibraryExtension ".dll"
			StaticLibraryExtension ".lib"
			Compatibility { }
		}
		Platform type=linux {
			CompilerLocation "C:/D/dmd2/windows/bin"
			StandardLibrary include="false" 
"C:/D/dmd2/windows/lib/phobos.lib"
			BinaryExtension ""
			DynamicLibraryExtension ".so"
			StaticLibraryExtension ".s"
			Compatibility {
				Language objectsOnly=true c
			}
		}
		Profile Name=Release {
			LinkCommand "-release"
		}
		Profile Name=Debug {
			CompileCommand "-debug -gc"
			LinkCommand "-debug -gc"
		}
		Profile Name=Unittest {
			CompileCommand "-unittest -gc"
			LinkCommand "-unittest -gc"
		}
		Project {
			SourceDir "{project_dir}"
			OutputDir clean=true "{project_dir}/bin/{target}"
			ObjectDir clean=true "{project_dir}/obj/{target}"
			ResourceDir
			Includes []
			ProvidesModules []
			target "{hostPlatform}"
		}
	}
}


More information about the Digitalmars-d mailing list