mirror of
				https://github.com/godotengine/godot.git
				synced 2025-11-03 23:21:15 +00:00 
			
		
		
		
	Better detect Emscripten toolchain.
Emscripten is apparently changing the variables in its config file, causing potential breakage of our build system. Binaries of the latest/latest-upstream releases are located in a subfolder of BINARYEN_ROOT called emscripten. Binaries of the other releases (e.g. sdk-1.38.31-64bit) are instead placed under the EMSCRIPTEN_ROOT folder. This PR checks if BINARYEN_ROOT has a subfolder called emscripten, if that does not exists, it falls back to checking the EMSCRIPTEN_ROOT. This way we give precedence to the new releases, given that activating multiple releases sequentially might result in having mismatching BINARYEN_ROOT and EMSCRIPTEN_ROOT.
This commit is contained in:
		
							parent
							
								
									9580c2b13e
								
							
						
					
					
						commit
						0c19674621
					
				
					 1 changed files with 7 additions and 2 deletions
				
			
		| 
						 | 
					@ -69,9 +69,14 @@ def configure(env):
 | 
				
			||||||
            exec(f.read(), em_config)
 | 
					            exec(f.read(), em_config)
 | 
				
			||||||
        except StandardError as e:
 | 
					        except StandardError as e:
 | 
				
			||||||
            raise RuntimeError("Emscripten configuration file '%s' is invalid:\n%s" % (em_config_file, e))
 | 
					            raise RuntimeError("Emscripten configuration file '%s' is invalid:\n%s" % (em_config_file, e))
 | 
				
			||||||
    if 'BINARYEN_ROOT' not in em_config and 'EMSCRIPTEN_ROOT' not in em_config:
 | 
					    if 'BINARYEN_ROOT' in em_config and os.path.isdir(os.path.join(em_config.get('BINARYEN_ROOT'), 'emscripten')):
 | 
				
			||||||
 | 
					        # New style, emscripten path as a subfolder of BINARYEN_ROOT
 | 
				
			||||||
 | 
					        env.PrependENVPath('PATH', os.path.join(em_config.get('BINARYEN_ROOT'), 'emscripten'))
 | 
				
			||||||
 | 
					    elif 'EMSCRIPTEN_ROOT' in em_config:
 | 
				
			||||||
 | 
					        # Old style (but can be there as a result from previous activation, so do last)
 | 
				
			||||||
 | 
					        env.PrependENVPath('PATH', em_config.get('EMSCRIPTEN_ROOT'))
 | 
				
			||||||
 | 
					    else:
 | 
				
			||||||
        raise RuntimeError("'BINARYEN_ROOT' or 'EMSCRIPTEN_ROOT' missing in Emscripten configuration file '%s'" % em_config_file)
 | 
					        raise RuntimeError("'BINARYEN_ROOT' or 'EMSCRIPTEN_ROOT' missing in Emscripten configuration file '%s'" % em_config_file)
 | 
				
			||||||
    env.PrependENVPath('PATH', em_config.get('BINARYEN_ROOT', em_config.get('EMSCRIPTEN_ROOT')))
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
    env['CC'] = 'emcc'
 | 
					    env['CC'] = 'emcc'
 | 
				
			||||||
    env['CXX'] = 'em++'
 | 
					    env['CXX'] = 'em++'
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue