#!/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 = [ "bitpack.c", "decinfo.c", "decode.c", "dequant.c", "fragment.c", "huffdec.c", "idct.c", "info.c", "internal.c", "quant.c", "state.c", ] if env.editor_build: thirdparty_sources += [ "analyze.c", "encfrag.c", "encinfo.c", "encode.c", "enquant.c", "fdct.c", "huffenc.c", "mathops.c", "mcenc.c", "rate.c", "tokenize.c", ] thirdparty_sources_x86 = [ "x86/mmxfrag.c", "x86/mmxidct.c", "x86/mmxstate.c", "x86/sse2idct.c", "x86/x86cpu.c", "x86/x86state.c", ] if env.editor_build: thirdparty_sources_x86 += [ "x86/mmxencfrag.c", "x86/mmxfdct.c", "x86/sse2encfrag.c", "x86/sse2fdct.c", "x86/x86enc.c", "x86/x86enquant.c", ] thirdparty_sources_x86_vc = [ "x86_vc/mmxfrag.c", "x86_vc/mmxidct.c", "x86_vc/mmxstate.c", "x86_vc/x86cpu.c", "x86_vc/x86state.c", ] if env.editor_build: thirdparty_sources_x86_vc += [ "x86_vc/mmxencfrag.c", "x86_vc/mmxfdct.c", "x86_vc/x86enc.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(CPPEXTPATH=[thirdparty_dir]) # also requires libogg and libvorbis if env["builtin_libogg"]: env_theora.Prepend(CPPEXTPATH=["#thirdparty/libogg"]) if env["builtin_libvorbis"]: env_theora.Prepend(CPPEXTPATH=["#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") if env.editor_build: env_theora.add_source_files(module_obj, "editor/*.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)