| 
									
										
										
										
											2016-10-17 08:50:25 +02:00
										 |  |  | #!/usr/bin/env python | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-03-30 08:28:32 +02:00
										 |  |  | Import("env") | 
					
						
							|  |  |  | Import("env_modules") | 
					
						
							| 
									
										
										
										
											2016-10-13 19:40:40 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  | env_theora = env_modules.Clone() | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | # Thirdparty source files | 
					
						
							| 
									
										
										
										
											2020-12-17 16:01:36 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  | thirdparty_obj = [] | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-03-30 08:28:32 +02:00
										 |  |  | if env["builtin_libtheora"]: | 
					
						
							| 
									
										
										
										
											2016-10-30 18:44:57 +01:00
										 |  |  |     thirdparty_dir = "#thirdparty/libtheora/" | 
					
						
							|  |  |  |     thirdparty_sources = [ | 
					
						
							| 
									
										
										
										
											2020-03-30 08:28:32 +02:00
										 |  |  |         # "analyze.c", | 
					
						
							|  |  |  |         # "apiwrapper.c", | 
					
						
							| 
									
										
										
										
											2016-10-30 18:44:57 +01:00
										 |  |  |         "bitpack.c", | 
					
						
							|  |  |  |         "cpu.c", | 
					
						
							| 
									
										
										
										
											2020-03-30 08:28:32 +02:00
										 |  |  |         # "decapiwrapper.c", | 
					
						
							| 
									
										
										
										
											2016-10-30 18:44:57 +01:00
										 |  |  |         "decinfo.c", | 
					
						
							|  |  |  |         "decode.c", | 
					
						
							|  |  |  |         "dequant.c", | 
					
						
							| 
									
										
										
										
											2020-03-30 08:28:32 +02:00
										 |  |  |         # "encapiwrapper.c", | 
					
						
							|  |  |  |         # "encfrag.c", | 
					
						
							|  |  |  |         # "encinfo.c", | 
					
						
							|  |  |  |         # "encode.c", | 
					
						
							|  |  |  |         # "encoder_disabled.c", | 
					
						
							|  |  |  |         # "enquant.c", | 
					
						
							|  |  |  |         # "fdct.c", | 
					
						
							| 
									
										
										
										
											2016-10-30 18:44:57 +01:00
										 |  |  |         "fragment.c", | 
					
						
							|  |  |  |         "huffdec.c", | 
					
						
							| 
									
										
										
										
											2020-03-30 08:28:32 +02:00
										 |  |  |         # "huffenc.c", | 
					
						
							| 
									
										
										
										
											2016-10-30 18:44:57 +01:00
										 |  |  |         "idct.c", | 
					
						
							|  |  |  |         "info.c", | 
					
						
							|  |  |  |         "internal.c", | 
					
						
							| 
									
										
										
										
											2020-03-30 08:28:32 +02:00
										 |  |  |         # "mathops.c", | 
					
						
							|  |  |  |         # "mcenc.c", | 
					
						
							| 
									
										
										
										
											2016-10-30 18:44:57 +01:00
										 |  |  |         "quant.c", | 
					
						
							| 
									
										
										
										
											2020-03-30 08:28:32 +02:00
										 |  |  |         # "rate.c", | 
					
						
							| 
									
										
										
										
											2016-10-30 18:44:57 +01:00
										 |  |  |         "state.c", | 
					
						
							| 
									
										
										
										
											2020-03-30 08:28:32 +02:00
										 |  |  |         # "tokenize.c", | 
					
						
							| 
									
										
										
										
											2016-10-30 18:44:57 +01:00
										 |  |  |     ] | 
					
						
							| 
									
										
										
										
											2016-10-13 19:40:40 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-10-30 18:44:57 +01:00
										 |  |  |     thirdparty_sources_x86 = [ | 
					
						
							| 
									
										
										
										
											2020-03-30 08:28:32 +02:00
										 |  |  |         # "x86/mmxencfrag.c", | 
					
						
							|  |  |  |         # "x86/mmxfdct.c", | 
					
						
							| 
									
										
										
										
											2016-10-30 18:44:57 +01:00
										 |  |  |         "x86/mmxfrag.c", | 
					
						
							|  |  |  |         "x86/mmxidct.c", | 
					
						
							|  |  |  |         "x86/mmxstate.c", | 
					
						
							| 
									
										
										
										
											2020-03-30 08:28:32 +02:00
										 |  |  |         # "x86/sse2fdct.c", | 
					
						
							|  |  |  |         # "x86/x86enc.c", | 
					
						
							| 
									
										
										
										
											2016-10-30 18:44:57 +01:00
										 |  |  |         "x86/x86state.c", | 
					
						
							|  |  |  |     ] | 
					
						
							| 
									
										
										
										
											2016-10-13 19:40:40 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-10-30 18:44:57 +01:00
										 |  |  |     thirdparty_sources_x86_vc = [ | 
					
						
							| 
									
										
										
										
											2020-03-30 08:28:32 +02:00
										 |  |  |         # "x86_vc/mmxencfrag.c", | 
					
						
							|  |  |  |         # "x86_vc/mmxfdct.c", | 
					
						
							| 
									
										
										
										
											2016-10-30 18:44:57 +01:00
										 |  |  |         "x86_vc/mmxfrag.c", | 
					
						
							|  |  |  |         "x86_vc/mmxidct.c", | 
					
						
							|  |  |  |         "x86_vc/mmxstate.c", | 
					
						
							| 
									
										
										
										
											2020-03-30 08:28:32 +02:00
										 |  |  |         # "x86_vc/x86enc.c", | 
					
						
							| 
									
										
										
										
											2016-10-30 18:44:57 +01:00
										 |  |  |         "x86_vc/x86state.c", | 
					
						
							|  |  |  |     ] | 
					
						
							| 
									
										
										
										
											2016-10-13 19:40:40 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-03-30 08:28:32 +02:00
										 |  |  |     if env["x86_libtheora_opt_gcc"]: | 
					
						
							| 
									
										
										
										
											2016-10-30 18:44:57 +01:00
										 |  |  |         thirdparty_sources += thirdparty_sources_x86 | 
					
						
							| 
									
										
										
										
											2016-10-13 19:40:40 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-03-30 08:28:32 +02:00
										 |  |  |     if env["x86_libtheora_opt_vc"]: | 
					
						
							| 
									
										
										
										
											2016-10-30 18:44:57 +01:00
										 |  |  |         thirdparty_sources += thirdparty_sources_x86_vc | 
					
						
							| 
									
										
										
										
											2016-10-13 19:40:40 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-03-30 08:28:32 +02:00
										 |  |  |     if env["x86_libtheora_opt_gcc"] or env["x86_libtheora_opt_vc"]: | 
					
						
							| 
									
										
										
										
											2019-07-03 09:16:20 +02:00
										 |  |  |         env_theora.Append(CPPDEFINES=["OC_X86_ASM"]) | 
					
						
							| 
									
										
										
										
											2016-10-13 19:40:40 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-10-30 18:44:57 +01:00
										 |  |  |     thirdparty_sources = [thirdparty_dir + file for file in thirdparty_sources] | 
					
						
							| 
									
										
										
										
											2016-10-13 19:40:40 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-04-30 13:12:02 +02:00
										 |  |  |     env_theora.Prepend(CPPPATH=[thirdparty_dir]) | 
					
						
							| 
									
										
										
										
											2016-10-13 19:40:40 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-10-30 18:44:57 +01:00
										 |  |  |     # also requires libogg and libvorbis | 
					
						
							| 
									
										
										
										
											2020-03-30 08:28:32 +02:00
										 |  |  |     if env["builtin_libogg"]: | 
					
						
							| 
									
										
										
										
											2019-04-30 13:12:02 +02:00
										 |  |  |         env_theora.Prepend(CPPPATH=["#thirdparty/libogg"]) | 
					
						
							| 
									
										
										
										
											2020-03-30 08:28:32 +02:00
										 |  |  |     if env["builtin_libvorbis"]: | 
					
						
							| 
									
										
										
										
											2019-04-30 13:12:02 +02:00
										 |  |  |         env_theora.Prepend(CPPPATH=["#thirdparty/libvorbis"]) | 
					
						
							| 
									
										
										
										
											2016-10-13 19:40:40 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-09-28 13:29:52 +02:00
										 |  |  |     env_thirdparty = env_theora.Clone() | 
					
						
							|  |  |  |     env_thirdparty.disable_warnings() | 
					
						
							| 
									
										
										
										
											2020-12-17 16:01:36 +01:00
										 |  |  |     env_thirdparty.add_source_files(thirdparty_obj, thirdparty_sources) | 
					
						
							|  |  |  |     env.modules_sources += thirdparty_obj | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-09-28 13:29:52 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-10-13 19:40:40 +02:00
										 |  |  | # Godot source files | 
					
						
							| 
									
										
										
										
											2020-12-17 16:01:36 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  | module_obj = [] | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | env_theora.add_source_files(module_obj, "*.cpp") | 
					
						
							|  |  |  | env.modules_sources += module_obj | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | # Needed to force rebuilding the module files when the thirdparty library is updated. | 
					
						
							|  |  |  | env.Depends(module_obj, thirdparty_obj) |