1
0
mirror of https://github.com/godotengine/godot.git synced 2025-11-06 12:20:30 +00:00
Files
godot/modules/opus/SCsub
Rémi Verschelde d52b70fb5e SCons: Always use env.Prepend for CPPPATH
Include paths are processed from left to right, so we use Prepend to
ensure that paths to bundled thirdparty files will have precedence over
system paths (e.g. `/usr/include` should have lowest priority).
2019-04-30 13:12:06 +02:00

244 lines
7.9 KiB
Python

#!/usr/bin/env python
Import('env')
Import('env_modules')
stub = True
env_opus = env_modules.Clone()
# Thirdparty source files
if env['builtin_opus']:
thirdparty_dir = "#thirdparty/opus/"
thirdparty_sources = [
# Sync with opus_sources.mk
"opus.c",
"opus_decoder.c",
"opus_encoder.c",
"opus_multistream.c",
"opus_multistream_encoder.c",
"opus_multistream_decoder.c",
"repacketizer.c",
"analysis.c",
"mlp.c",
"mlp_data.c",
# Sync with libopusfile Makefile.am
"info.c",
"internal.c",
"opusfile.c",
"stream.c",
# Sync with celt_sources.mk
"celt/bands.c",
"celt/celt.c",
"celt/celt_encoder.c",
"celt/celt_decoder.c",
"celt/cwrs.c",
"celt/entcode.c",
"celt/entdec.c",
"celt/entenc.c",
"celt/kiss_fft.c",
"celt/laplace.c",
"celt/mathops.c",
"celt/mdct.c",
"celt/modes.c",
"celt/pitch.c",
"celt/celt_lpc.c",
"celt/quant_bands.c",
"celt/rate.c",
"celt/vq.c",
#"celt/arm/arm_celt_map.c",
#"celt/arm/armcpu.c",
#"celt/arm/celt_ne10_fft.c",
#"celt/arm/celt_ne10_mdct.c",
#"celt/arm/celt_neon_intr.c",
# Sync with silk_sources.mk
"silk/CNG.c",
"silk/code_signs.c",
"silk/init_decoder.c",
"silk/decode_core.c",
"silk/decode_frame.c",
"silk/decode_parameters.c",
"silk/decode_indices.c",
"silk/decode_pulses.c",
"silk/decoder_set_fs.c",
"silk/dec_API.c",
"silk/enc_API.c",
"silk/encode_indices.c",
"silk/encode_pulses.c",
"silk/gain_quant.c",
"silk/interpolate.c",
"silk/LP_variable_cutoff.c",
"silk/NLSF_decode.c",
"silk/NSQ.c",
"silk/NSQ_del_dec.c",
"silk/PLC.c",
"silk/shell_coder.c",
"silk/tables_gain.c",
"silk/tables_LTP.c",
"silk/tables_NLSF_CB_NB_MB.c",
"silk/tables_NLSF_CB_WB.c",
"silk/tables_other.c",
"silk/tables_pitch_lag.c",
"silk/tables_pulses_per_block.c",
"silk/VAD.c",
"silk/control_audio_bandwidth.c",
"silk/quant_LTP_gains.c",
"silk/VQ_WMat_EC.c",
"silk/HP_variable_cutoff.c",
"silk/NLSF_encode.c",
"silk/NLSF_VQ.c",
"silk/NLSF_unpack.c",
"silk/NLSF_del_dec_quant.c",
"silk/process_NLSFs.c",
"silk/stereo_LR_to_MS.c",
"silk/stereo_MS_to_LR.c",
"silk/check_control_input.c",
"silk/control_SNR.c",
"silk/init_encoder.c",
"silk/control_codec.c",
"silk/A2NLSF.c",
"silk/ana_filt_bank_1.c",
"silk/biquad_alt.c",
"silk/bwexpander_32.c",
"silk/bwexpander.c",
"silk/debug.c",
"silk/decode_pitch.c",
"silk/inner_prod_aligned.c",
"silk/lin2log.c",
"silk/log2lin.c",
"silk/LPC_analysis_filter.c",
"silk/LPC_inv_pred_gain.c",
"silk/table_LSF_cos.c",
"silk/NLSF2A.c",
"silk/NLSF_stabilize.c",
"silk/NLSF_VQ_weights_laroia.c",
"silk/pitch_est_tables.c",
"silk/resampler.c",
"silk/resampler_down2_3.c",
"silk/resampler_down2.c",
"silk/resampler_private_AR2.c",
"silk/resampler_private_down_FIR.c",
"silk/resampler_private_IIR_FIR.c",
"silk/resampler_private_up2_HQ.c",
"silk/resampler_rom.c",
"silk/sigm_Q15.c",
"silk/sort.c",
"silk/sum_sqr_shift.c",
"silk/stereo_decode_pred.c",
"silk/stereo_encode_pred.c",
"silk/stereo_find_predictor.c",
"silk/stereo_quant_pred.c",
]
opus_sources_silk = []
if env["platform"] in ["android", "iphone", "javascript"]:
env_opus.Append(CPPFLAGS=["-DFIXED_POINT"])
opus_sources_silk = [
"silk/fixed/LTP_analysis_filter_FIX.c",
"silk/fixed/LTP_scale_ctrl_FIX.c",
"silk/fixed/corrMatrix_FIX.c",
"silk/fixed/encode_frame_FIX.c",
"silk/fixed/find_LPC_FIX.c",
"silk/fixed/find_LTP_FIX.c",
"silk/fixed/find_pitch_lags_FIX.c",
"silk/fixed/find_pred_coefs_FIX.c",
"silk/fixed/noise_shape_analysis_FIX.c",
"silk/fixed/prefilter_FIX.c",
"silk/fixed/process_gains_FIX.c",
"silk/fixed/regularize_correlations_FIX.c",
"silk/fixed/residual_energy16_FIX.c",
"silk/fixed/residual_energy_FIX.c",
"silk/fixed/solve_LS_FIX.c",
"silk/fixed/warped_autocorrelation_FIX.c",
"silk/fixed/apply_sine_window_FIX.c",
"silk/fixed/autocorr_FIX.c",
"silk/fixed/burg_modified_FIX.c",
"silk/fixed/k2a_FIX.c",
"silk/fixed/k2a_Q16_FIX.c",
"silk/fixed/pitch_analysis_core_FIX.c",
"silk/fixed/vector_ops_FIX.c",
"silk/fixed/schur64_FIX.c",
"silk/fixed/schur_FIX.c",
]
else:
opus_sources_silk = [
"silk/float/apply_sine_window_FLP.c",
"silk/float/corrMatrix_FLP.c",
"silk/float/encode_frame_FLP.c",
"silk/float/find_LPC_FLP.c",
"silk/float/find_LTP_FLP.c",
"silk/float/find_pitch_lags_FLP.c",
"silk/float/find_pred_coefs_FLP.c",
"silk/float/LPC_analysis_filter_FLP.c",
"silk/float/LTP_analysis_filter_FLP.c",
"silk/float/LTP_scale_ctrl_FLP.c",
"silk/float/noise_shape_analysis_FLP.c",
"silk/float/prefilter_FLP.c",
"silk/float/process_gains_FLP.c",
"silk/float/regularize_correlations_FLP.c",
"silk/float/residual_energy_FLP.c",
"silk/float/solve_LS_FLP.c",
"silk/float/warped_autocorrelation_FLP.c",
"silk/float/wrappers_FLP.c",
"silk/float/autocorrelation_FLP.c",
"silk/float/burg_modified_FLP.c",
"silk/float/bwexpander_FLP.c",
"silk/float/energy_FLP.c",
"silk/float/inner_product_FLP.c",
"silk/float/k2a_FLP.c",
"silk/float/levinsondurbin_FLP.c",
"silk/float/LPC_inv_pred_gain_FLP.c",
"silk/float/pitch_analysis_core_FLP.c",
"silk/float/scale_copy_vector_FLP.c",
"silk/float/scale_vector_FLP.c",
"silk/float/schur_FLP.c",
"silk/float/sort_FLP.c",
]
thirdparty_sources = [thirdparty_dir + file for file in thirdparty_sources + opus_sources_silk]
# also requires libogg
if env['builtin_libogg']:
env_opus.Prepend(CPPPATH=["#thirdparty/libogg"])
env_opus.Append(CPPFLAGS=["-DHAVE_CONFIG_H"])
thirdparty_include_paths = [
"",
"celt",
"opus",
"silk",
"silk/fixed",
"silk/float",
]
env_opus.Prepend(CPPPATH=[thirdparty_dir + "/" + dir for dir in thirdparty_include_paths])
if env["platform"] == "android":
if ("android_arch" in env and env["android_arch"] in ["armv6", "armv7"]):
env_opus.Append(CPPFLAGS=["-DOPUS_ARM_OPT"])
elif ("android_arch" in env and env["android_arch"] == "arm64v8"):
env_opus.Append(CPPFLAGS=["-DOPUS_ARM64_OPT"])
elif env["platform"] == "iphone":
if ("arch" in env and env["arch"] == "arm"):
env_opus.Append(CPPFLAGS=["-DOPUS_ARM_OPT"])
elif ("arch" in env and env["arch"] == "arm64"):
env_opus.Append(CPPFLAGS=["-DOPUS_ARM64_OPT"])
env_thirdparty = env_opus.Clone()
env_thirdparty.disable_warnings()
env_thirdparty.add_source_files(env.modules_sources, thirdparty_sources)
if not stub:
# Module files
env_opus.add_source_files(env.modules_sources, "*.cpp")
else:
# Module files
env_opus.add_source_files(env.modules_sources, "stub/register_types.cpp")