1cmake_minimum_required (VERSION 3.14) 2 3project(CMSISDSPComplexMath) 4 5include(configLib) 6include(configDsp) 7 8add_library(CMSISDSPComplexMath STATIC) 9 10configLib(CMSISDSPComplexMath ${ROOT}) 11configDsp(CMSISDSPComplexMath ${ROOT}) 12 13 14include(interpol) 15interpol(CMSISDSPFastMath) 16 17 18if (CONFIGTABLE AND ALLFAST) 19 target_compile_definitions(CMSISDSPComplexMath PUBLIC ARM_ALL_FAST_TABLES) 20endif() 21 22# Vectorized code is defining sqrt 23# so fast tables required even if Fast Math not built. 24if (CONFIGTABLE AND (HELIUM OR MVEF OR MVEI)) 25 target_compile_definitions(CMSISDSPComplexMath PUBLIC ARM_FAST_ALLOW_TABLES) 26endif() 27 28 29# MVE code is using a table for computing the fast sqrt arm_cmplx_mag_q31 30# There is the possibility of not compiling this function and not including 31# the table. 32if (NOT CONFIGTABLE OR ALLFAST OR ARM_CMPLX_MAG_Q31 OR (NOT HELIUM AND NOT MVEI)) 33target_sources(CMSISDSPComplexMath PRIVATE arm_cmplx_mag_q31.c) 34endif() 35 36if (NOT CONFIGTABLE OR ALLFAST OR ARM_CMPLX_MAG_Q15 OR (NOT HELIUM AND NOT MVEI)) 37target_sources(CMSISDSPComplexMath PRIVATE arm_cmplx_mag_q15.c) 38endif() 39 40target_sources(CMSISDSPComplexMath PRIVATE arm_cmplx_conj_f32.c) 41target_sources(CMSISDSPComplexMath PRIVATE arm_cmplx_conj_q15.c) 42target_sources(CMSISDSPComplexMath PRIVATE arm_cmplx_conj_q31.c) 43target_sources(CMSISDSPComplexMath PRIVATE arm_cmplx_dot_prod_f32.c) 44target_sources(CMSISDSPComplexMath PRIVATE arm_cmplx_dot_prod_q15.c) 45target_sources(CMSISDSPComplexMath PRIVATE arm_cmplx_dot_prod_q31.c) 46target_sources(CMSISDSPComplexMath PRIVATE arm_cmplx_mag_f32.c) 47target_sources(CMSISDSPComplexMath PRIVATE arm_cmplx_mag_squared_f32.c) 48target_sources(CMSISDSPComplexMath PRIVATE arm_cmplx_mag_squared_q15.c) 49target_sources(CMSISDSPComplexMath PRIVATE arm_cmplx_mag_squared_q31.c) 50target_sources(CMSISDSPComplexMath PRIVATE arm_cmplx_mult_cmplx_f32.c) 51target_sources(CMSISDSPComplexMath PRIVATE arm_cmplx_mult_cmplx_q15.c) 52target_sources(CMSISDSPComplexMath PRIVATE arm_cmplx_mult_cmplx_q31.c) 53target_sources(CMSISDSPComplexMath PRIVATE arm_cmplx_mult_real_f32.c) 54target_sources(CMSISDSPComplexMath PRIVATE arm_cmplx_mult_real_q15.c) 55target_sources(CMSISDSPComplexMath PRIVATE arm_cmplx_mult_real_q31.c) 56 57if ((NOT ARMAC5) AND (NOT DISABLEFLOAT16)) 58target_sources(CMSISDSPComplexMath PRIVATE arm_cmplx_conj_f16.c) 59target_sources(CMSISDSPComplexMath PRIVATE arm_cmplx_dot_prod_f16.c) 60target_sources(CMSISDSPComplexMath PRIVATE arm_cmplx_mag_f16.c) 61target_sources(CMSISDSPComplexMath PRIVATE arm_cmplx_mag_squared_f16.c) 62target_sources(CMSISDSPComplexMath PRIVATE arm_cmplx_mult_cmplx_f16.c) 63target_sources(CMSISDSPComplexMath PRIVATE arm_cmplx_mult_real_f16.c) 64endif() 65 66### Includes 67target_include_directories(CMSISDSPComplexMath PUBLIC "${DSP}/Include") 68