#!/usr/bin/env python from misc.utility.scons_hints import * Import("env") Import("env_modules") env_theora = env_modules.Clone() # Thirdparty source files thirdparty_obj = [] if env["builtin_libtheora"]: thirdparty_dir = "#thirdparty/libtheora/" thirdparty_sources = [ # "analyze.c", # "apiwrapper.c", "bitpack.c", # "collect.c", # "decapiwrapper.c", "decinfo.c", "decode.c", "dequant.c", # "encapiwrapper.c", # "encfrag.c", # "encinfo.c", # "encode.c", # "encoder_disabled.c", # "enquant.c", # "fdct.c", "fragment.c", "huffdec.c", # "huffenc.c", "idct.c", "info.c", "internal.c", # "mathops.c", # "mcenc.c", "quant.c", # "rate.c", "state.c", # "tokenize.c", ] thirdparty_sources_x86 = [ # "x86/mmxencfrag.c", # "x86/mmxfdct.c", "x86/mmxfrag.c", "x86/mmxidct.c", "x86/mmxstate.c", # "x86/sse2encfrag.c", # "x86/sse2fdct.c", "x86/sse2idct.c", "x86/x86cpu.c", # "x86/x86enc.c", # "x86/x86enquant.c" "x86/x86state.c", ] thirdparty_sources_x86_vc = [ # "x86_vc/mmxencfrag.c", # "x86_vc/mmxfdct.c", "x86_vc/mmxfrag.c", "x86_vc/mmxidct.c", "x86_vc/mmxstate.c", "x86_vc/x86cpu.c", # "x86_vc/x86enc.c", "x86_vc/x86state.c", ] if env["x86_libtheora_opt_gcc"]: thirdparty_sources += thirdparty_sources_x86 if env["x86_libtheora_opt_vc"]: thirdparty_sources += thirdparty_sources_x86_vc if env["x86_libtheora_opt_gcc"] or env["x86_libtheora_opt_vc"]: env_theora.Append(CPPDEFINES=["OC_X86_ASM"]) thirdparty_sources = [thirdparty_dir + file for file in thirdparty_sources] env_theora.Prepend(CPPPATH=[thirdparty_dir]) # also requires libogg and libvorbis if env["builtin_libogg"]: env_theora.Prepend(CPPPATH=["#thirdparty/libogg"]) if env["builtin_libvorbis"]: env_theora.Prepend(CPPPATH=["#thirdparty/libvorbis"]) env_thirdparty = env_theora.Clone() env_thirdparty.disable_warnings() env_thirdparty.add_source_files(thirdparty_obj, thirdparty_sources) env.modules_sources += thirdparty_obj # Godot source files 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)