cmake_minimum_required (VERSION 3.14) project(CMSISDSPComplexMath) include(configLib) include(configDsp) add_library(CMSISDSPComplexMath STATIC) configLib(CMSISDSPComplexMath ${ROOT}) configDsp(CMSISDSPComplexMath ${ROOT}) include(interpol) interpol(CMSISDSPComplexMath) if (CONFIGTABLE AND ALLFAST) target_compile_definitions(CMSISDSPComplexMath PUBLIC ARM_ALL_FAST_TABLES) endif() # Vectorized code is defining sqrt # so fast tables required even if Fast Math not built. if (CONFIGTABLE AND (HELIUM OR MVEF OR MVEI)) target_compile_definitions(CMSISDSPComplexMath PUBLIC ARM_FAST_ALLOW_TABLES) endif() # MVE code is using a table for computing the fast sqrt arm_cmplx_mag_q31 # There is the possibility of not compiling this function and not including # the table. if (NOT CONFIGTABLE OR ALLFAST OR ARM_CMPLX_MAG_Q31 OR (NOT HELIUM AND NOT MVEI)) target_sources(CMSISDSPComplexMath PRIVATE arm_cmplx_mag_q31.c) endif() if (NOT CONFIGTABLE OR ALLFAST OR ARM_CMPLX_MAG_Q15 OR (NOT HELIUM AND NOT MVEI)) target_sources(CMSISDSPComplexMath PRIVATE arm_cmplx_mag_q15.c) endif() if (NOT CONFIGTABLE OR ALLFAST OR ARM_CMPLX_MAG_FAST_Q15 OR (NOT HELIUM AND NOT MVEI)) target_sources(CMSISDSPComplexMath PRIVATE arm_cmplx_mag_fast_q15.c) endif() target_sources(CMSISDSPComplexMath PRIVATE arm_cmplx_conj_f32.c) target_sources(CMSISDSPComplexMath PRIVATE arm_cmplx_conj_q15.c) target_sources(CMSISDSPComplexMath PRIVATE arm_cmplx_conj_q31.c) target_sources(CMSISDSPComplexMath PRIVATE arm_cmplx_dot_prod_f32.c) target_sources(CMSISDSPComplexMath PRIVATE arm_cmplx_dot_prod_q15.c) target_sources(CMSISDSPComplexMath PRIVATE arm_cmplx_dot_prod_q31.c) target_sources(CMSISDSPComplexMath PRIVATE arm_cmplx_mag_f32.c) target_sources(CMSISDSPComplexMath PRIVATE arm_cmplx_mag_f64.c) target_sources(CMSISDSPComplexMath PRIVATE arm_cmplx_mag_squared_f32.c) target_sources(CMSISDSPComplexMath PRIVATE arm_cmplx_mag_squared_f64.c) target_sources(CMSISDSPComplexMath PRIVATE arm_cmplx_mag_squared_q15.c) target_sources(CMSISDSPComplexMath PRIVATE arm_cmplx_mag_squared_q31.c) target_sources(CMSISDSPComplexMath PRIVATE arm_cmplx_mult_cmplx_f32.c) target_sources(CMSISDSPComplexMath PRIVATE arm_cmplx_mult_cmplx_f64.c) target_sources(CMSISDSPComplexMath PRIVATE arm_cmplx_mult_cmplx_q15.c) target_sources(CMSISDSPComplexMath PRIVATE arm_cmplx_mult_cmplx_q31.c) target_sources(CMSISDSPComplexMath PRIVATE arm_cmplx_mult_real_f32.c) target_sources(CMSISDSPComplexMath PRIVATE arm_cmplx_mult_real_q15.c) target_sources(CMSISDSPComplexMath PRIVATE arm_cmplx_mult_real_q31.c) if ((NOT ARMAC5) AND (NOT DISABLEFLOAT16)) target_sources(CMSISDSPComplexMath PRIVATE arm_cmplx_conj_f16.c) target_sources(CMSISDSPComplexMath PRIVATE arm_cmplx_dot_prod_f16.c) target_sources(CMSISDSPComplexMath PRIVATE arm_cmplx_mag_f16.c) target_sources(CMSISDSPComplexMath PRIVATE arm_cmplx_mag_squared_f16.c) target_sources(CMSISDSPComplexMath PRIVATE arm_cmplx_mult_cmplx_f16.c) target_sources(CMSISDSPComplexMath PRIVATE arm_cmplx_mult_real_f16.c) endif() ### Includes target_include_directories(CMSISDSPComplexMath PUBLIC "${DSP}/Include")