| 
									
										
										
										
											2017-06-30 19:21:38 +02:00
										 |  |  | import methods | 
					
						
							| 
									
										
										
										
											2015-10-08 15:00:40 -03:00
										 |  |  | import os | 
					
						
							| 
									
										
										
										
											2017-06-30 19:21:38 +02:00
										 |  |  | import sys | 
					
						
							| 
									
										
										
										
											2015-10-08 15:00:40 -03:00
										 |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | def is_active(): | 
					
						
							| 
									
										
										
										
											2016-10-30 18:44:57 +01:00
										 |  |  |     return True | 
					
						
							| 
									
										
										
										
											2016-04-02 20:26:12 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-10-30 19:05:14 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-10-08 15:00:40 -03:00
										 |  |  | def get_name(): | 
					
						
							| 
									
										
										
										
											2016-11-02 19:22:49 -02:00
										 |  |  |     return "UWP" | 
					
						
							| 
									
										
										
										
											2015-10-08 15:00:40 -03:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-10-30 19:05:14 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-10-08 15:00:40 -03:00
										 |  |  | def can_build(): | 
					
						
							| 
									
										
										
										
											2020-03-30 08:28:32 +02:00
										 |  |  |     if os.name == "nt": | 
					
						
							| 
									
										
										
										
											2016-10-30 18:57:40 +01:00
										 |  |  |         # building natively on windows! | 
					
						
							| 
									
										
										
										
											2020-03-30 08:28:32 +02:00
										 |  |  |         if os.getenv("VSINSTALLDIR"): | 
					
						
							| 
									
										
										
										
											2016-09-03 19:25:43 -03:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-03-30 08:28:32 +02:00
										 |  |  |             if os.getenv("ANGLE_SRC_PATH") is None: | 
					
						
							| 
									
										
										
										
											2016-10-30 18:44:57 +01:00
										 |  |  |                 return False | 
					
						
							| 
									
										
										
										
											2016-09-03 19:25:43 -03:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-10-30 18:44:57 +01:00
										 |  |  |             return True | 
					
						
							|  |  |  |     return False | 
					
						
							| 
									
										
										
										
											2016-04-02 20:26:12 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-10-30 19:05:14 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-10-08 15:00:40 -03:00
										 |  |  | def get_opts(): | 
					
						
							| 
									
										
										
										
											2017-06-30 19:21:38 +02:00
										 |  |  |     return [ | 
					
						
							| 
									
										
										
										
											2020-03-30 08:28:32 +02:00
										 |  |  |         ("msvc_version", "MSVC version to use (ignored if the VCINSTALLDIR environment variable is set)", None), | 
					
						
							| 
									
										
										
										
											2017-06-30 19:21:38 +02:00
										 |  |  |     ] | 
					
						
							| 
									
										
										
										
											2016-04-02 20:26:12 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-10-30 19:05:14 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-10-08 15:00:40 -03:00
										 |  |  | def get_flags(): | 
					
						
							| 
									
										
										
										
											2016-10-30 18:44:57 +01:00
										 |  |  |     return [ | 
					
						
							| 
									
										
										
										
											2020-03-30 08:28:32 +02:00
										 |  |  |         ("tools", False), | 
					
						
							|  |  |  |         ("xaudio2", True), | 
					
						
							|  |  |  |         ("builtin_pcre2_with_jit", False), | 
					
						
							| 
									
										
										
										
											2016-10-30 18:44:57 +01:00
										 |  |  |     ] | 
					
						
							| 
									
										
										
										
											2015-10-08 15:00:40 -03:00
										 |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | def configure(env): | 
					
						
							| 
									
										
										
										
											2018-03-29 18:17:38 +02:00
										 |  |  |     env.msvc = True | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-03-30 08:28:32 +02:00
										 |  |  |     if env["bits"] != "default": | 
					
						
							| 
									
										
										
										
											2017-06-30 19:21:38 +02:00
										 |  |  |         print("Error: bits argument is disabled for MSVC") | 
					
						
							| 
									
										
										
										
											2020-03-30 08:28:32 +02:00
										 |  |  |         print( | 
					
						
							|  |  |  |             """
 | 
					
						
							| 
									
										
										
										
											2017-06-30 19:21:38 +02:00
										 |  |  |             Bits argument is not supported for MSVC compilation. Architecture depends on the Native/Cross Compile Tools Prompt/Developer Console | 
					
						
							|  |  |  |             (or Visual Studio settings) that is being used to run SCons. As a consequence, bits argument is disabled. Run scons again without bits | 
					
						
							|  |  |  |             argument (example: scons p=uwp) and SCons will attempt to detect what MSVC compiler will be executed and inform you. | 
					
						
							| 
									
										
										
										
											2020-03-30 08:28:32 +02:00
										 |  |  |             """
 | 
					
						
							|  |  |  |         ) | 
					
						
							| 
									
										
										
										
											2016-10-30 18:44:57 +01:00
										 |  |  |         sys.exit() | 
					
						
							| 
									
										
										
										
											2015-10-08 15:00:40 -03:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-06-30 19:21:38 +02:00
										 |  |  |     ## Build type | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-03-30 08:28:32 +02:00
										 |  |  |     if env["target"] == "release": | 
					
						
							|  |  |  |         env.Append(CCFLAGS=["/O2", "/GL"]) | 
					
						
							|  |  |  |         env.Append(CCFLAGS=["/MD"]) | 
					
						
							|  |  |  |         env.Append(LINKFLAGS=["/SUBSYSTEM:WINDOWS", "/LTCG"]) | 
					
						
							| 
									
										
										
										
											2017-06-30 19:21:38 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-03-30 08:28:32 +02:00
										 |  |  |     elif env["target"] == "release_debug": | 
					
						
							|  |  |  |         env.Append(CCFLAGS=["/O2", "/Zi"]) | 
					
						
							|  |  |  |         env.Append(CCFLAGS=["/MD"]) | 
					
						
							|  |  |  |         env.Append(CPPDEFINES=["DEBUG_ENABLED"]) | 
					
						
							|  |  |  |         env.Append(LINKFLAGS=["/SUBSYSTEM:CONSOLE"]) | 
					
						
							| 
									
										
										
										
											2020-09-14 19:56:41 +02:00
										 |  |  |         env.AppendUnique(CPPDEFINES=["WINDOWS_SUBSYSTEM_CONSOLE"]) | 
					
						
							| 
									
										
										
										
											2017-06-30 19:21:38 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-03-30 08:28:32 +02:00
										 |  |  |     elif env["target"] == "debug": | 
					
						
							|  |  |  |         env.Append(CCFLAGS=["/Zi"]) | 
					
						
							|  |  |  |         env.Append(CCFLAGS=["/MDd"]) | 
					
						
							| 
									
										
										
										
											2020-07-23 09:39:07 +02:00
										 |  |  |         env.Append(CPPDEFINES=["DEBUG_ENABLED"]) | 
					
						
							| 
									
										
										
										
											2020-03-30 08:28:32 +02:00
										 |  |  |         env.Append(LINKFLAGS=["/SUBSYSTEM:CONSOLE"]) | 
					
						
							| 
									
										
										
										
											2020-09-14 19:56:41 +02:00
										 |  |  |         env.AppendUnique(CPPDEFINES=["WINDOWS_SUBSYSTEM_CONSOLE"]) | 
					
						
							| 
									
										
										
										
											2020-03-30 08:28:32 +02:00
										 |  |  |         env.Append(LINKFLAGS=["/DEBUG"]) | 
					
						
							| 
									
										
										
										
											2017-06-30 19:21:38 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  |     ## Compiler configuration | 
					
						
							| 
									
										
										
										
											2015-10-08 15:00:40 -03:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-03-30 08:28:32 +02:00
										 |  |  |     env["ENV"] = os.environ | 
					
						
							|  |  |  |     vc_base_path = os.environ["VCTOOLSINSTALLDIR"] if "VCTOOLSINSTALLDIR" in os.environ else os.environ["VCINSTALLDIR"] | 
					
						
							| 
									
										
										
										
											2017-05-23 13:50:21 -03:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-10-08 10:49:33 +02:00
										 |  |  |     # Force to use Unicode encoding | 
					
						
							| 
									
										
										
										
											2020-10-09 13:56:20 +03:00
										 |  |  |     env.AppendUnique(CCFLAGS=["/utf-8"]) | 
					
						
							| 
									
										
										
										
											2020-10-08 10:49:33 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-10-30 18:44:57 +01:00
										 |  |  |     # ANGLE | 
					
						
							|  |  |  |     angle_root = os.getenv("ANGLE_SRC_PATH") | 
					
						
							| 
									
										
										
										
											2020-03-30 08:28:32 +02:00
										 |  |  |     env.Prepend(CPPPATH=[angle_root + "/include"]) | 
					
						
							| 
									
										
										
										
											2016-10-30 18:44:57 +01:00
										 |  |  |     jobs = str(env.GetOption("num_jobs")) | 
					
						
							| 
									
										
										
										
											2020-03-30 08:28:32 +02:00
										 |  |  |     angle_build_cmd = ( | 
					
						
							|  |  |  |         "msbuild.exe " | 
					
						
							|  |  |  |         + angle_root | 
					
						
							|  |  |  |         + "/winrt/10/src/angle.sln /nologo /v:m /m:" | 
					
						
							|  |  |  |         + jobs | 
					
						
							|  |  |  |         + " /p:Configuration=Release /p:Platform=" | 
					
						
							|  |  |  |     ) | 
					
						
							| 
									
										
										
										
											2015-10-08 15:00:40 -03:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-10-30 18:44:57 +01:00
										 |  |  |     if os.path.isfile(str(os.getenv("ANGLE_SRC_PATH")) + "/winrt/10/src/angle.sln"): | 
					
						
							|  |  |  |         env["build_angle"] = True | 
					
						
							| 
									
										
										
										
											2016-09-20 20:02:58 -03:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-06-30 19:21:38 +02:00
										 |  |  |     ## Architecture | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     arch = "" | 
					
						
							| 
									
										
										
										
											2020-03-30 08:28:32 +02:00
										 |  |  |     if str(os.getenv("Platform")).lower() == "arm": | 
					
						
							| 
									
										
										
										
											2015-10-08 15:00:40 -03:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-06-30 19:21:38 +02:00
										 |  |  |         print("Compiled program architecture will be an ARM executable. (forcing bits=32).") | 
					
						
							| 
									
										
										
										
											2015-10-08 15:00:40 -03:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-10-30 18:57:40 +01:00
										 |  |  |         arch = "arm" | 
					
						
							|  |  |  |         env["bits"] = "32" | 
					
						
							| 
									
										
										
										
											2020-03-30 08:28:32 +02:00
										 |  |  |         env.Append(LINKFLAGS=["/MACHINE:ARM"]) | 
					
						
							|  |  |  |         env.Append(LIBPATH=[vc_base_path + "lib/store/arm"]) | 
					
						
							| 
									
										
										
										
											2015-10-08 15:00:40 -03:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-10-30 18:44:57 +01:00
										 |  |  |         angle_build_cmd += "ARM" | 
					
						
							| 
									
										
										
										
											2015-10-08 15:00:40 -03:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-03-30 08:28:32 +02:00
										 |  |  |         env.Append(LIBPATH=[angle_root + "/winrt/10/src/Release_ARM/lib"]) | 
					
						
							| 
									
										
										
										
											2015-10-08 15:00:40 -03:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-10-30 18:44:57 +01:00
										 |  |  |     else: | 
					
						
							| 
									
										
										
										
											2020-03-30 08:28:32 +02:00
										 |  |  |         compiler_version_str = methods.detect_visual_c_compiler_version(env["ENV"]) | 
					
						
							| 
									
										
										
										
											2015-10-08 15:00:40 -03:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-03-30 08:28:32 +02:00
										 |  |  |         if compiler_version_str == "amd64" or compiler_version_str == "x86_amd64": | 
					
						
							| 
									
										
										
										
											2016-10-30 18:57:40 +01:00
										 |  |  |             env["bits"] = "64" | 
					
						
							| 
									
										
										
										
											2017-06-30 19:21:38 +02:00
										 |  |  |             print("Compiled program architecture will be a x64 executable (forcing bits=64).") | 
					
						
							| 
									
										
										
										
											2020-03-30 08:28:32 +02:00
										 |  |  |         elif compiler_version_str == "x86" or compiler_version_str == "amd64_x86": | 
					
						
							| 
									
										
										
										
											2016-10-30 18:57:40 +01:00
										 |  |  |             env["bits"] = "32" | 
					
						
							| 
									
										
										
										
											2017-06-30 19:21:38 +02:00
										 |  |  |             print("Compiled program architecture will be a x86 executable. (forcing bits=32).") | 
					
						
							| 
									
										
										
										
											2016-10-30 18:44:57 +01:00
										 |  |  |         else: | 
					
						
							| 
									
										
										
										
											2020-03-30 08:28:32 +02:00
										 |  |  |             print( | 
					
						
							| 
									
										
										
										
											2020-07-26 19:38:10 +02:00
										 |  |  |                 "Failed to detect MSVC compiler architecture version... Defaulting to 32-bit executable settings" | 
					
						
							|  |  |  |                 " (forcing bits=32). Compilation attempt will continue, but SCons can not detect for what architecture" | 
					
						
							|  |  |  |                 " this build is compiled for. You should check your settings/compilation setup." | 
					
						
							| 
									
										
										
										
											2020-03-30 08:28:32 +02:00
										 |  |  |             ) | 
					
						
							| 
									
										
										
										
											2016-10-30 18:57:40 +01:00
										 |  |  |             env["bits"] = "32" | 
					
						
							| 
									
										
										
										
											2015-10-08 15:00:40 -03:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-03-30 08:28:32 +02:00
										 |  |  |         if env["bits"] == "32": | 
					
						
							| 
									
										
										
										
											2016-10-30 18:44:57 +01:00
										 |  |  |             arch = "x86" | 
					
						
							| 
									
										
										
										
											2015-10-08 15:00:40 -03:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-10-30 18:44:57 +01:00
										 |  |  |             angle_build_cmd += "Win32" | 
					
						
							| 
									
										
										
										
											2015-10-08 15:00:40 -03:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-03-30 08:28:32 +02:00
										 |  |  |             env.Append(LINKFLAGS=["/MACHINE:X86"]) | 
					
						
							|  |  |  |             env.Append(LIBPATH=[vc_base_path + "lib/store"]) | 
					
						
							|  |  |  |             env.Append(LIBPATH=[angle_root + "/winrt/10/src/Release_Win32/lib"]) | 
					
						
							| 
									
										
										
										
											2015-10-08 15:00:40 -03:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-10-30 18:44:57 +01:00
										 |  |  |         else: | 
					
						
							|  |  |  |             arch = "x64" | 
					
						
							| 
									
										
										
										
											2015-10-08 15:00:40 -03:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-10-30 18:44:57 +01:00
										 |  |  |             angle_build_cmd += "x64" | 
					
						
							| 
									
										
										
										
											2015-10-08 15:00:40 -03:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-03-30 08:28:32 +02:00
										 |  |  |             env.Append(LINKFLAGS=["/MACHINE:X64"]) | 
					
						
							|  |  |  |             env.Append(LIBPATH=[os.environ["VCINSTALLDIR"] + "lib/store/amd64"]) | 
					
						
							|  |  |  |             env.Append(LIBPATH=[angle_root + "/winrt/10/src/Release_x64/lib"]) | 
					
						
							| 
									
										
										
										
											2015-10-08 15:00:40 -03:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-06-30 19:21:38 +02:00
										 |  |  |     env["PROGSUFFIX"] = "." + arch + env["PROGSUFFIX"] | 
					
						
							|  |  |  |     env["OBJSUFFIX"] = "." + arch + env["OBJSUFFIX"] | 
					
						
							|  |  |  |     env["LIBSUFFIX"] = "." + arch + env["LIBSUFFIX"] | 
					
						
							| 
									
										
										
										
											2015-10-08 15:00:40 -03:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-06-30 19:21:38 +02:00
										 |  |  |     ## Compile flags | 
					
						
							| 
									
										
										
										
											2015-10-08 15:00:40 -03:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-03-30 08:28:32 +02:00
										 |  |  |     env.Prepend(CPPPATH=["#platform/uwp", "#drivers/windows"]) | 
					
						
							|  |  |  |     env.Append(CPPDEFINES=["UWP_ENABLED", "WINDOWS_ENABLED", "TYPED_METHOD_BIND"]) | 
					
						
							|  |  |  |     env.Append(CPPDEFINES=["GLES_ENABLED", "GL_GLEXT_PROTOTYPES", "EGL_EGLEXT_PROTOTYPES", "ANGLE_ENABLED"]) | 
					
						
							|  |  |  |     winver = "0x0602"  # Windows 8 is the minimum target for UWP build | 
					
						
							|  |  |  |     env.Append(CPPDEFINES=[("WINVER", winver), ("_WIN32_WINNT", winver), "WIN32"]) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     env.Append(CPPDEFINES=["__WRL_NO_DEFAULT_LIB__", ("PNG_ABORT", "abort")]) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     env.Append(CPPFLAGS=["/AI", vc_base_path + "lib/store/references"]) | 
					
						
							|  |  |  |     env.Append(CPPFLAGS=["/AI", vc_base_path + "lib/x86/store/references"]) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     env.Append( | 
					
						
							| 
									
										
										
										
											2020-07-26 19:38:10 +02:00
										 |  |  |         CCFLAGS=( | 
					
						
							|  |  |  |             '/FS /MP /GS /wd"4453" /wd"28204" /wd"4291" /Zc:wchar_t /Gm- /fp:precise /errorReport:prompt /WX-' | 
					
						
							|  |  |  |             " /Zc:forScope /Gd /EHsc /nologo".split() | 
					
						
							|  |  |  |         ) | 
					
						
							| 
									
										
										
										
											2020-03-30 08:28:32 +02:00
										 |  |  |     ) | 
					
						
							|  |  |  |     env.Append(CPPDEFINES=["_UNICODE", "UNICODE", ("WINAPI_FAMILY", "WINAPI_FAMILY_APP")]) | 
					
						
							|  |  |  |     env.Append(CXXFLAGS=["/ZW"]) | 
					
						
							|  |  |  |     env.Append( | 
					
						
							|  |  |  |         CCFLAGS=[ | 
					
						
							|  |  |  |             "/AI", | 
					
						
							|  |  |  |             vc_base_path + "\\vcpackages", | 
					
						
							|  |  |  |             "/AI", | 
					
						
							|  |  |  |             os.environ["WINDOWSSDKDIR"] + "\\References\\CommonConfiguration\\Neutral", | 
					
						
							|  |  |  |         ] | 
					
						
							|  |  |  |     ) | 
					
						
							| 
									
										
										
										
											2015-10-08 15:00:40 -03:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-06-30 19:21:38 +02:00
										 |  |  |     ## Link flags | 
					
						
							| 
									
										
										
										
											2015-10-08 15:00:40 -03:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-03-30 08:28:32 +02:00
										 |  |  |     env.Append( | 
					
						
							|  |  |  |         LINKFLAGS=[ | 
					
						
							|  |  |  |             "/MANIFEST:NO", | 
					
						
							|  |  |  |             "/NXCOMPAT", | 
					
						
							|  |  |  |             "/DYNAMICBASE", | 
					
						
							|  |  |  |             "/WINMD", | 
					
						
							|  |  |  |             "/APPCONTAINER", | 
					
						
							|  |  |  |             "/ERRORREPORT:PROMPT", | 
					
						
							|  |  |  |             "/NOLOGO", | 
					
						
							|  |  |  |             "/TLBID:1", | 
					
						
							|  |  |  |             '/NODEFAULTLIB:"kernel32.lib"', | 
					
						
							|  |  |  |             '/NODEFAULTLIB:"ole32.lib"', | 
					
						
							|  |  |  |         ] | 
					
						
							|  |  |  |     ) | 
					
						
							| 
									
										
										
										
											2016-11-03 05:20:26 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-10-30 18:44:57 +01:00
										 |  |  |     LIBS = [ | 
					
						
							| 
									
										
										
										
											2020-03-30 08:28:32 +02:00
										 |  |  |         "WindowsApp", | 
					
						
							|  |  |  |         "mincore", | 
					
						
							|  |  |  |         "ws2_32", | 
					
						
							|  |  |  |         "libANGLE", | 
					
						
							|  |  |  |         "libEGL", | 
					
						
							|  |  |  |         "libGLESv2", | 
					
						
							|  |  |  |         "bcrypt", | 
					
						
							| 
									
										
										
										
											2016-10-30 18:44:57 +01:00
										 |  |  |     ] | 
					
						
							| 
									
										
										
										
											2016-10-30 18:57:40 +01:00
										 |  |  |     env.Append(LINKFLAGS=[p + ".lib" for p in LIBS]) | 
					
						
							| 
									
										
										
										
											2015-10-08 15:00:40 -03:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-10-30 18:44:57 +01:00
										 |  |  |     # Incremental linking fix | 
					
						
							| 
									
										
										
										
											2020-03-30 08:28:32 +02:00
										 |  |  |     env["BUILDERS"]["ProgramOriginal"] = env["BUILDERS"]["Program"] | 
					
						
							|  |  |  |     env["BUILDERS"]["Program"] = methods.precious_program | 
					
						
							| 
									
										
										
										
											2016-09-03 19:25:43 -03:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-03-30 08:28:32 +02:00
										 |  |  |     env.Append(BUILDERS={"ANGLE": env.Builder(action=angle_build_cmd)}) |