Source

xfBuild / GlobalParams.d

Full commit
gos...@earth 3d34005 
Tomasz Stachowia… 95b1338 

Tomasz Stachowia… b9c12bd 
gos...@earth 3d34005 
Tomasz Stachowia… b9c12bd 

Tomasz Stachowia… 95b1338 




Daniel Mierswa a749670 
Tomasz Stachowia… 95b1338 

Tomasz Stachowia… b16e69a 
Tomasz Stachowia… 18fb2f9 
Ralith 0239556 






Tomasz Stachowia… 95b1338 

Tomasz Stachowia… 6bdd0a9 
Tomasz Stachowia… cfd278b 



Tomasz Stachowia… 95b1338 



Leonard Dahlmann 1e91950 
Leonard Dahlmann f279fae 
Leonard Dahlmann 5274582 
Tomasz Stachowia… 95b1338 

Tomasz Stachowia… 66baa79 
Tomasz Stachowia… e5a627f 
Leonard Dahlmann f279fae 
Tomasz Stachowia… 38561a2 
Tomasz Stachowia… 4acde89 


digited a539cda 


Tomasz Stachowia… 18fb2f9 
Tomasz Stachowia… 0c38a4f 





Tomasz Stachowia… 18fb2f9 
Tomasz Stachowia… 95b1338 

Tomasz Stachowia… e5a627f 

Tomasz Stachowia… b9c12bd 


module xfbuild.GlobalParams;

private {
	version (MultiThreaded) {
		import xfbuild.MT : ThreadPoolT;
	}
	
	import tango.io.model.IFile;
}


struct GlobalParams {
	char[] compilerName;
	char[][] compilerOptions;
	char[] objPath = ".objs";
	char[] depsPath = ".deps";
	//char[] projectFile = "project.xfbuild";
	version(Windows) {
		char[] objExt = ".obj";
		char[] exeExt = ".exe";
	} else {
		char[] objExt = ".o";
		char[] exeExt = "";
	}
	char[] outputFile;
	char[] workingPath;
	char[][] ignore;
	
	bool manageHeaders = false;
	char[][] noHeaders;
	
	bool verbose;
	bool printCommands;
	int numThreads = 4;
	bool depCompileUseMT = true;
	bool useOQ = false;
	bool useOP = true;
	bool recompileOnUndefinedReference = false;
	bool storeStrongSymbols = true; // TODO
	char pathSep = FileConst.PathSeparatorChar;
	int maxModulesToCompile = int.max;
	int threadsToUse = 1;
	bool nolink = false;
	bool removeRspOnFail = true;
	
	// it sometimes makes OPTLINK not crash... e.g. in Nucled
	bool reverseModuleOrder = false;

	bool recursiveModuleScan = false;
	bool useDeps = true;

	version (MultiThreaded) {
		bool manageAffinity = true;
	} else {
		bool manageAffinity = false;
	}

	size_t linkerAffinityMask = size_t.max;
}


GlobalParams	globalParams;

version (MultiThreaded) {
	ThreadPoolT		threadPool;
}