* Allow the canonical system name to be specified at runtime in the
Nix config file.
This commit is contained in:
		
							parent
							
								
									a945fb7905
								
							
						
					
					
						commit
						d51aede4af
					
				
					 6 changed files with 27 additions and 8 deletions
				
			
		|  | @ -97,3 +97,23 @@ | |||
| # Example: | ||||
| #   build-users = nix-builder-1 nix-builder-2 nix-builder-3 | ||||
| #build-users = | ||||
| 
 | ||||
| 
 | ||||
| ### Option `system' | ||||
| # | ||||
| # This option specifies the canonical Nix system name of the current | ||||
| # installation, such as `i686-linux' or `powerpc-darwin'.  Nix can | ||||
| # only build derivations whose `system' attribute equals the value | ||||
| # specified here.  In general, it never makes sense to modify this | ||||
| # value from its default, since you can use it to `lie' about the | ||||
| # platform you are building on (e.g., perform a Mac OS build on a | ||||
| # Linux machine; the result would obviously be wrong).  It only makes | ||||
| # sense if the Nix binaries can run on multiple platforms, e.g., | ||||
| # `universal binaries' that run on `powerpc-darwin' and `i686-darwin'. | ||||
| # | ||||
| # It defaults to the canonical Nix system name detected by `configure' | ||||
| # at build time. | ||||
| # | ||||
| # Example: | ||||
| #   system = i686-darwin | ||||
| #system = | ||||
|  |  | |||
|  | @ -93,6 +93,8 @@ static void initAndRun(int argc, char * * argv) | |||
|     nixDBPath = getEnv("NIX_DB_DIR", nixStateDir + "/db"); | ||||
|     nixConfDir = canonPath(getEnv("NIX_CONF_DIR", NIX_CONF_DIR)); | ||||
| 
 | ||||
|     thisSystem = querySetting("system", SYSTEM); | ||||
| 
 | ||||
|     /* Catch SIGINT. */ | ||||
|     struct sigaction act, oact; | ||||
|     act.sa_handler = sigintHandler; | ||||
|  |  | |||
|  | @ -17,6 +17,7 @@ bool tryFallback = false; | |||
| Verbosity buildVerbosity = lvlInfo; | ||||
| unsigned int maxBuildJobs = 1; | ||||
| bool readOnlyMode = false; | ||||
| string thisSystem = "unset"; | ||||
| 
 | ||||
| 
 | ||||
| static bool settingsRead = false; | ||||
|  | @ -26,7 +27,7 @@ static map<string, Strings> settings; | |||
| 
 | ||||
| string & at(Strings & ss, unsigned int n) | ||||
| { | ||||
|     Strings::iterator i =ss.begin(); | ||||
|     Strings::iterator i = ss.begin(); | ||||
|     advance(i, n); | ||||
|     return *i; | ||||
| } | ||||
|  |  | |||
|  | @ -53,6 +53,9 @@ extern unsigned int maxBuildJobs; | |||
|    database. */ | ||||
| extern bool readOnlyMode; | ||||
| 
 | ||||
| /* The canonical system name, as returned by config.guess. */  | ||||
| extern string thisSystem; | ||||
| 
 | ||||
| 
 | ||||
| Strings querySetting(const string & name, const Strings & def); | ||||
| 
 | ||||
|  |  | |||
|  | @ -16,9 +16,6 @@ | |||
| #include "util.hh" | ||||
| 
 | ||||
| 
 | ||||
| string thisSystem = SYSTEM; | ||||
| 
 | ||||
| 
 | ||||
| Error::Error(const format & f) | ||||
| { | ||||
|     err = f.str(); | ||||
|  |  | |||
|  | @ -55,10 +55,6 @@ typedef list<Path> Paths; | |||
| typedef set<Path> PathSet; | ||||
| 
 | ||||
| 
 | ||||
| /* The canonical system name, as returned by config.guess. */  | ||||
| extern string thisSystem; | ||||
| 
 | ||||
| 
 | ||||
| /* Return an environment variable. */ | ||||
| string getEnv(const string & key, const string & def = ""); | ||||
| 
 | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue