module volta.settings

Code Map

module volta.settings;


//! Holds a set of compiler settings.
class Settings
{
public:
	//! The -w argument.
	warningsEnabled: bool;
	//! The -S argument.
	noBackend: bool;
	//! The -c argument
	noLink: bool;
	//! The --emit-llvm argument.
	emitLLVM: bool;
	//! The --no-catch argument.
	noCatch: bool;
	//! The --no-stdlib argument.
	noStdLib: bool;
	//! The -E argument.
	removeConditionalsOnly: bool;
	//! The --simple-trace argument.
	simpleTrace: bool;
	//! The --internal-diff argument.
	internalDiff: bool;
	//! The --internal-dbg argument.
	internalDebug: bool;
	//! The --missing argument;
	missingDeps: bool;
	platform: Platform;
	arch: Arch;
	cRuntime: CRuntime;
	//! Compiler identifier string.
	identStr: string;
	//! How where we launched.
	execCmd: string;
	//! Set on create.
	execDir: string;
	//! Derived from platform.
	platformStr: string;
	//! Derived from arch.
	archStr: string;
	//! The --cc argument.
	cc: string;
	//! Arguments to cc, the --Xcc argument(s).
	xcc: string[];
	//! The --ld argument.
	ld: string;
	//! The --Xld argument(s).
	xld: string[];
	//! The --link argument.
	link: string;
	//! The --Xlink argument(s).
	xlink: string[];
	//! The --clang argument.
	clang: string;
	//! The --Xclang argument(s).
	xclang: string[];
	//! The --llvm-ar argument.
	llvmAr: string;
	//! The --Xllvm-ar argument(s).
	xllvmAr: string[];
	//! The --linker argument
	linker: string;
	//! Arguments to the linker, the -Xlinker argument(s).
	xlinker: string[];
	depFile: string;
	outputFile: string;
	//! The --import-as-src command.
	importAsSrc: string[];
	//! The -I arguments.
	includePaths: string[];
	//! The -src-I arguments.
	srcIncludePaths: string[];
	//! The -L arguments.
	libraryPaths: string[];
	//! The -l arguments.
	libraryFiles: string[];
	//! The -F arguments.
	frameworkPaths: string[];
	//! The --framework arguments.
	frameworkNames: string[];
	//! The -J arguments.
	stringImportPaths: string[];
	//! The -jo argument.
	jsonOutput: string;
	//! The --perf-output argument.
	perfOutput: string;


public:
	this(cmd: string, execDir: string) { }
	fn processConfigs() { }
	fn setStrs() { }
	fn replaceMacros() { }
	fn replaceEscapes(file: string) string { }
	fn setDefault() { }
}
class Settings

Holds a set of compiler settings.

Things like import paths, and so on.

warningsEnabled: bool

The -w argument.

noBackend: bool

The -S argument.

noLink: bool

The -c argument

emitLLVM: bool

The --emit-llvm argument.

noCatch: bool

The --no-catch argument.

noStdLib: bool

The --no-stdlib argument.

removeConditionalsOnly: bool

The -E argument.

simpleTrace: bool

The --simple-trace argument.

internalDiff: bool

The --internal-diff argument.

internalDebug: bool

The --internal-dbg argument.

missingDeps: bool

The --missing argument;

identStr: string

Compiler identifier string.

execCmd: string

How where we launched.

execDir: string

Set on create.

platformStr: string

Derived from platform.

archStr: string

Derived from arch.

cc: string

The --cc argument.

xcc: string[]

Arguments to cc, the --Xcc argument(s).

ld: string

The --ld argument.

xld: string[]

The --Xld argument(s).

link: string

The --link argument.

xlink: string[]

The --Xlink argument(s).

clang: string

The --clang argument.

xclang: string[]

The --Xclang argument(s).

llvmAr: string

The --llvm-ar argument.

xllvmAr: string[]

The --Xllvm-ar argument(s).

linker: string

The --linker argument

xlinker: string[]

Arguments to the linker, the -Xlinker argument(s).

importAsSrc: string[]

The --import-as-src command.

includePaths: string[]

The -I arguments.

srcIncludePaths: string[]

The -src-I arguments.

libraryPaths: string[]

The -L arguments.

libraryFiles: string[]

The -l arguments.

frameworkPaths: string[]

The -F arguments.

frameworkNames: string[]

The --framework arguments.

stringImportPaths: string[]

The -J arguments.

jsonOutput: string

The -jo argument.

perfOutput: string

The --perf-output argument.