1*a58d3d2aSXin Lidnn_sources = sources['DEEP_PLC_SOURCES'] 2*a58d3d2aSXin Li 3*a58d3d2aSXin Lidred_sources = sources['DRED_SOURCES'] 4*a58d3d2aSXin Liif opt_enable_dred 5*a58d3d2aSXin Li dnn_sources += dred_sources 6*a58d3d2aSXin Liendif 7*a58d3d2aSXin Li 8*a58d3d2aSXin Liosce_sources = sources['OSCE_SOURCES'] 9*a58d3d2aSXin Liif opt_enable_osce 10*a58d3d2aSXin Li dnn_sources += osce_sources 11*a58d3d2aSXin Liendif 12*a58d3d2aSXin Li 13*a58d3d2aSXin Lidnn_sources_sse2 = sources['DNN_SOURCES_SSE2'] 14*a58d3d2aSXin Lidnn_sources_sse4_1 = sources['DNN_SOURCES_SSE4_1'] 15*a58d3d2aSXin Lidnn_sources_avx2 = sources['DNN_SOURCES_AVX2'] 16*a58d3d2aSXin Li 17*a58d3d2aSXin Lidnn_sources_neon_intr = sources['DNN_SOURCES_NEON'] 18*a58d3d2aSXin Lidnn_sources_dotprod_intr = sources['DNN_SOURCES_DOTPROD'] 19*a58d3d2aSXin Li 20*a58d3d2aSXin Lidnn_includes = [opus_includes] 21*a58d3d2aSXin Lidnn_static_libs = [] 22*a58d3d2aSXin Li 23*a58d3d2aSXin Liif host_cpu_family in ['x86', 'x86_64'] and opus_conf.has('OPUS_HAVE_RTCD') 24*a58d3d2aSXin Li dnn_sources += sources['DNN_SOURCES_X86_RTCD'] 25*a58d3d2aSXin Liendif 26*a58d3d2aSXin Li 27*a58d3d2aSXin Liif host_cpu_family in ['arm', 'aarch64'] and have_arm_intrinsics_or_asm 28*a58d3d2aSXin Li if opus_conf.has('OPUS_HAVE_RTCD') 29*a58d3d2aSXin Li dnn_sources += sources['DNN_SOURCES_ARM_RTCD'] 30*a58d3d2aSXin Li endif 31*a58d3d2aSXin Liendif 32*a58d3d2aSXin Li 33*a58d3d2aSXin Liforeach intr_name : ['sse2', 'sse4_1', 'avx2', 'neon_intr', 'dotprod_intr'] 34*a58d3d2aSXin Li have_intr = get_variable('have_' + intr_name) 35*a58d3d2aSXin Li if not have_intr 36*a58d3d2aSXin Li continue 37*a58d3d2aSXin Li endif 38*a58d3d2aSXin Li 39*a58d3d2aSXin Li intr_sources = get_variable('dnn_sources_' + intr_name) 40*a58d3d2aSXin Li 41*a58d3d2aSXin Li intr_args = get_variable('opus_@0@_args'.format(intr_name), []) 42*a58d3d2aSXin Li dnn_static_libs += static_library('dnn_' + intr_name, intr_sources, 43*a58d3d2aSXin Li c_args: intr_args, 44*a58d3d2aSXin Li include_directories: dnn_includes, 45*a58d3d2aSXin Li install: false) 46*a58d3d2aSXin Liendforeach 47*a58d3d2aSXin Li 48*a58d3d2aSXin Lidnn_c_args = [] 49*a58d3d2aSXin Liif host_machine.system() == 'windows' 50*a58d3d2aSXin Li dnn_c_args += ['-DDLL_EXPORT'] 51*a58d3d2aSXin Liendif 52*a58d3d2aSXin Li 53*a58d3d2aSXin Li 54*a58d3d2aSXin Liif opt_enable_deep_plc 55*a58d3d2aSXin Li dnn_lib = static_library('opus-dnn', 56*a58d3d2aSXin Li dnn_sources, 57*a58d3d2aSXin Li c_args: dnn_c_args, 58*a58d3d2aSXin Li include_directories: dnn_includes, 59*a58d3d2aSXin Li link_whole: [dnn_static_libs], 60*a58d3d2aSXin Li dependencies: libm, 61*a58d3d2aSXin Li install: false) 62*a58d3d2aSXin Lielse 63*a58d3d2aSXin Li dnn_lib = [] 64*a58d3d2aSXin Liendif 65