module battery.backend.command

Code Map

module battery.backend.command;


struct ArgsGenerator
{
public:
	enum Kind
	{
		VoltaSrc,
		VoltaLink,
		VoltaBc,
		VoltaAr,
		ClangAssemble,
		ClangLink,
		LinkLink,
		Dmd,
		Gdc,
		AnyLdLink,
		AnyLink,
		AnyVolta,
		AnyClang,
	}


public:
	alias Callback = scope (string[] delegate(Project));


public:
	config: Configuration;
	libs: Lib[];
	exes: Exe[];
	store: Project[string];
	voltaArgs: string[];
	archStr: string;
	platformStr: string;
	buildDir: string;
	//! The runtime.
	rt: Lib;


public:
	fn setup(config: Configuration, libs: Lib[], exes: Exe[]) { }
	//! Generates a Volta command line to build a binary.
	fn genVoltArgs(base: Project, kind: Kind, cb: scope (Callback)) string[] { }
	fn shouldSourceInclude(b: Project) bool { }
	//! Should when we are building generate json files.
	fn shouldJSON(b: Project) string { }
	fn genVolted() string { }
	fn getFileOFromBC(name: string) string { }
	fn genFileBC(name: string) string { }
	fn genAsmO(name: string) string { }
	fn genCO(name: string) string { }
	fn genSO(name: string) string { }
	fn genVoltO(name: string) string { }
	fn genVoltA(name: string) string { }
	fn genVoltBc(name: string) string { }
	fn genVoltDep(name: string) string { }
	fn genVoltJSON(name: string) string { }
}