• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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