Config.cmake 9.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204
  1. cmake_minimum_required (VERSION 3.14)
  2. if (CONFIGTABLE AND ALLFFT)
  3. target_compile_definitions(CMSISDSP PUBLIC ARM_ALL_FFT_TABLES)
  4. endif()
  5. target_sources(CMSISDSP PRIVATE TransformFunctions/arm_bitreversal.c)
  6. target_sources(CMSISDSP PRIVATE TransformFunctions/arm_bitreversal2.c)
  7. if ((NOT ARMAC5) AND (NOT DISABLEFLOAT16))
  8. target_sources(CMSISDSP PRIVATE TransformFunctions/arm_bitreversal_f16.c)
  9. endif()
  10. if (NOT CONFIGTABLE OR ALLFFT OR CFFT_F32_16 OR CFFT_F32_32 OR CFFT_F32_64 OR CFFT_F32_128 OR CFFT_F32_256 OR CFFT_F32_512
  11. OR CFFT_F32_1024 OR CFFT_F32_2048 OR CFFT_F32_4096)
  12. target_sources(CMSISDSP PRIVATE TransformFunctions/arm_cfft_radix2_f32.c)
  13. target_sources(CMSISDSP PRIVATE TransformFunctions/arm_cfft_radix4_f32.c)
  14. target_sources(CMSISDSP PRIVATE TransformFunctions/arm_cfft_radix8_f32.c)
  15. target_sources(CMSISDSP PRIVATE TransformFunctions/arm_cfft_f32.c)
  16. target_sources(CMSISDSP PRIVATE TransformFunctions/arm_cfft_init_f32.c)
  17. endif()
  18. if ((NOT ARMAC5) AND (NOT DISABLEFLOAT16))
  19. if (NOT CONFIGTABLE OR ALLFFT OR CFFT_F16_16 OR CFFT_F16_32 OR CFFT_F16_64 OR CFFT_F16_128 OR CFFT_F16_256 OR CFFT_F16_512
  20. OR CFFT_F16_1024 OR CFFT_F16_2048 OR CFFT_F16_4096)
  21. target_sources(CMSISDSP PRIVATE TransformFunctions/arm_cfft_radix2_f16.c)
  22. target_sources(CMSISDSP PRIVATE TransformFunctions/arm_cfft_radix4_f16.c)
  23. target_sources(CMSISDSP PRIVATE TransformFunctions/arm_cfft_f16.c)
  24. target_sources(CMSISDSP PRIVATE TransformFunctions/arm_cfft_init_f16.c)
  25. endif()
  26. endif()
  27. if ((NOT ARMAC5) AND (NOT DISABLEFLOAT16))
  28. if (NOT CONFIGTABLE OR ALLFFT OR RFFT_F16_128 OR RFFT_F16_512 OR RFFT_F16_2048 OR RFFT_F16_8192)
  29. target_sources(CMSISDSP PRIVATE TransformFunctions/arm_cfft_radix4_init_f16.c)
  30. target_sources(CMSISDSP PRIVATE TransformFunctions/arm_cfft_radix4_f16.c)
  31. endif()
  32. endif()
  33. if (NOT CONFIGTABLE OR ALLFFT OR CFFT_F64_16 OR CFFT_F64_32 OR CFFT_F64_64 OR CFFT_F64_128 OR CFFT_F64_256 OR CFFT_F64_512
  34. OR CFFT_F64_1024 OR CFFT_F64_2048 OR CFFT_F64_4096)
  35. target_sources(CMSISDSP PRIVATE TransformFunctions/arm_cfft_f64.c)
  36. target_sources(CMSISDSP PRIVATE TransformFunctions/arm_cfft_init_f64.c)
  37. endif()
  38. if (NOT CONFIGTABLE OR ALLFFT OR CFFT_Q15_16 OR CFFT_Q15_32 OR CFFT_Q15_64 OR CFFT_Q15_128 OR CFFT_Q15_256 OR CFFT_Q15_512
  39. OR CFFT_Q15_1024 OR CFFT_Q15_2048 OR CFFT_Q15_4096)
  40. target_sources(CMSISDSP PRIVATE TransformFunctions/arm_cfft_radix2_q15.c)
  41. target_sources(CMSISDSP PRIVATE TransformFunctions/arm_cfft_radix4_q15.c)
  42. target_sources(CMSISDSP PRIVATE TransformFunctions/arm_cfft_q15.c)
  43. target_sources(CMSISDSP PRIVATE TransformFunctions/arm_cfft_init_q15.c)
  44. endif()
  45. if (NOT CONFIGTABLE OR ALLFFT OR CFFT_Q31_16 OR CFFT_Q31_32 OR CFFT_Q31_64 OR CFFT_Q31_128 OR CFFT_Q31_256 OR CFFT_Q31_512
  46. OR CFFT_Q31_1024 OR CFFT_Q31_2048 OR CFFT_Q31_4096)
  47. target_sources(CMSISDSP PRIVATE TransformFunctions/arm_cfft_radix2_q31.c)
  48. target_sources(CMSISDSP PRIVATE TransformFunctions/arm_cfft_radix4_q31.c)
  49. target_sources(CMSISDSP PRIVATE TransformFunctions/arm_cfft_q31.c)
  50. target_sources(CMSISDSP PRIVATE TransformFunctions/arm_cfft_init_q31.c)
  51. endif()
  52. if (NOT CONFIGTABLE OR ALLFFT OR DCT4_F32_128 OR DCT4_F32_512 OR DCT4_F32_2048 OR DCT4_F32_8192)
  53. target_sources(CMSISDSP PRIVATE TransformFunctions/arm_dct4_f32.c)
  54. target_sources(CMSISDSP PRIVATE TransformFunctions/arm_dct4_init_f32.c)
  55. target_sources(CMSISDSP PRIVATE TransformFunctions/arm_rfft_init_f32.c)
  56. target_sources(CMSISDSP PRIVATE TransformFunctions/arm_rfft_f32.c)
  57. target_sources(CMSISDSP PRIVATE TransformFunctions/arm_cfft_radix4_init_f32.c)
  58. target_sources(CMSISDSP PRIVATE TransformFunctions/arm_cfft_radix4_f32.c)
  59. endif()
  60. if (NOT CONFIGTABLE OR ALLFFT OR DCT4_Q31_128 OR DCT4_Q31_512 OR DCT4_Q31_2048 OR DCT4_Q31_8192)
  61. target_sources(CMSISDSP PRIVATE TransformFunctions/arm_dct4_q31.c)
  62. target_sources(CMSISDSP PRIVATE TransformFunctions/arm_dct4_init_q31.c)
  63. target_sources(CMSISDSP PRIVATE TransformFunctions/arm_rfft_init_q31.c)
  64. target_sources(CMSISDSP PRIVATE TransformFunctions/arm_rfft_q31.c)
  65. target_sources(CMSISDSP PRIVATE TransformFunctions/arm_cfft_q31.c)
  66. target_sources(CMSISDSP PRIVATE TransformFunctions/arm_cfft_init_q31.c)
  67. target_sources(CMSISDSP PRIVATE TransformFunctions/arm_cfft_radix4_init_q31.c)
  68. target_sources(CMSISDSP PRIVATE TransformFunctions/arm_cfft_radix4_q31.c)
  69. endif()
  70. if (NOT CONFIGTABLE OR ALLFFT OR ALLFFT OR DCT4_Q15_128 OR DCT4_Q15_512 OR DCT4_Q15_2048 OR DCT4_Q15_8192)
  71. target_sources(CMSISDSP PRIVATE TransformFunctions/arm_dct4_init_q15.c)
  72. target_sources(CMSISDSP PRIVATE TransformFunctions/arm_dct4_q15.c)
  73. target_sources(CMSISDSP PRIVATE TransformFunctions/arm_rfft_init_q15.c)
  74. target_sources(CMSISDSP PRIVATE TransformFunctions/arm_rfft_q15.c)
  75. target_sources(CMSISDSP PRIVATE TransformFunctions/arm_cfft_q15.c)
  76. target_sources(CMSISDSP PRIVATE TransformFunctions/arm_cfft_init_q15.c)
  77. target_sources(CMSISDSP PRIVATE TransformFunctions/arm_cfft_radix4_init_q15.c)
  78. target_sources(CMSISDSP PRIVATE TransformFunctions/arm_cfft_radix4_q15.c)
  79. endif()
  80. if (NOT CONFIGTABLE OR ALLFFT OR RFFT_FAST_F32_32 OR RFFT_FAST_F32_64 OR RFFT_FAST_F32_128
  81. OR RFFT_FAST_F32_256 OR RFFT_FAST_F32_512 OR RFFT_FAST_F32_1024 OR RFFT_FAST_F32_2048
  82. OR RFFT_FAST_F32_4096 )
  83. target_sources(CMSISDSP PRIVATE TransformFunctions/arm_rfft_fast_f32.c)
  84. target_sources(CMSISDSP PRIVATE TransformFunctions/arm_rfft_fast_init_f32.c)
  85. target_sources(CMSISDSP PRIVATE TransformFunctions/arm_cfft_f32.c)
  86. target_sources(CMSISDSP PRIVATE TransformFunctions/arm_cfft_init_f32.c)
  87. target_sources(CMSISDSP PRIVATE TransformFunctions/arm_cfft_radix8_f32.c)
  88. endif()
  89. if (NOT CONFIGTABLE OR ALLFFT OR RFFT_FAST_F64_32 OR RFFT_FAST_F64_64 OR RFFT_FAST_F64_128
  90. OR RFFT_FAST_F64_256 OR RFFT_FAST_F64_512 OR RFFT_FAST_F64_1024 OR RFFT_FAST_F64_2048
  91. OR RFFT_FAST_F64_4096 )
  92. target_sources(CMSISDSP PRIVATE TransformFunctions/arm_rfft_fast_f64.c)
  93. target_sources(CMSISDSP PRIVATE TransformFunctions/arm_rfft_fast_init_f64.c)
  94. endif()
  95. if ((NOT DISABLEFLOAT16))
  96. if (NOT CONFIGTABLE OR ALLFFT OR RFFT_FAST_F16_32 OR RFFT_FAST_F16_64 OR RFFT_FAST_F16_128
  97. OR RFFT_FAST_F16_256 OR RFFT_FAST_F16_512 OR RFFT_FAST_F16_1024 OR RFFT_FAST_F16_2048
  98. OR RFFT_FAST_F16_4096 )
  99. target_sources(CMSISDSP PRIVATE TransformFunctions/arm_rfft_fast_f16.c)
  100. target_sources(CMSISDSP PRIVATE TransformFunctions/arm_rfft_fast_init_f16.c)
  101. target_sources(CMSISDSP PRIVATE TransformFunctions/arm_cfft_f16.c)
  102. target_sources(CMSISDSP PRIVATE TransformFunctions/arm_cfft_init_f16.c)
  103. target_sources(CMSISDSP PRIVATE TransformFunctions/arm_cfft_radix8_f16.c)
  104. endif()
  105. endif()
  106. if (NOT CONFIGTABLE OR ALLFFT OR RFFT_F32_128 OR RFFT_F32_512 OR RFFT_F32_2048 OR RFFT_F32_8192)
  107. target_sources(CMSISDSP PRIVATE TransformFunctions/arm_rfft_init_f32.c)
  108. target_sources(CMSISDSP PRIVATE TransformFunctions/arm_rfft_f32.c)
  109. target_sources(CMSISDSP PRIVATE TransformFunctions/arm_cfft_radix4_init_f32.c)
  110. target_sources(CMSISDSP PRIVATE TransformFunctions/arm_cfft_radix4_f32.c)
  111. endif()
  112. if (NOT CONFIGTABLE OR ALLFFT OR RFFT_Q15_32 OR RFFT_Q15_64 OR RFFT_Q15_128 OR RFFT_Q15_256
  113. OR RFFT_Q15_512 OR RFFT_Q15_1024 OR RFFT_Q15_2048 OR RFFT_Q15_4096 OR RFFT_Q15_8192)
  114. target_sources(CMSISDSP PRIVATE TransformFunctions/arm_rfft_init_q15.c)
  115. target_sources(CMSISDSP PRIVATE TransformFunctions/arm_rfft_q15.c)
  116. target_sources(CMSISDSP PRIVATE TransformFunctions/arm_cfft_q15.c)
  117. target_sources(CMSISDSP PRIVATE TransformFunctions/arm_cfft_init_q15.c)
  118. target_sources(CMSISDSP PRIVATE TransformFunctions/arm_cfft_radix4_q15.c)
  119. endif()
  120. if (NOT CONFIGTABLE OR ALLFFT OR RFFT_Q31_32 OR RFFT_Q31_64 OR RFFT_Q31_128 OR RFFT_Q31_256
  121. OR RFFT_Q31_512 OR RFFT_Q31_1024 OR RFFT_Q31_2048 OR RFFT_Q31_4096 OR RFFT_Q31_8192)
  122. target_sources(CMSISDSP PRIVATE TransformFunctions/arm_rfft_init_q31.c)
  123. target_sources(CMSISDSP PRIVATE TransformFunctions/arm_rfft_q31.c)
  124. target_sources(CMSISDSP PRIVATE TransformFunctions/arm_cfft_q31.c)
  125. target_sources(CMSISDSP PRIVATE TransformFunctions/arm_cfft_init_q31.c)
  126. target_sources(CMSISDSP PRIVATE TransformFunctions/arm_cfft_radix4_q31.c)
  127. endif()
  128. if (WRAPPER OR ARM_CFFT_RADIX2_Q15)
  129. target_sources(CMSISDSP PRIVATE TransformFunctions/arm_cfft_radix2_init_q15.c)
  130. endif()
  131. if (NOT CONFIGTABLE OR ALLFFT OR ARM_CFFT_RADIX4_Q15)
  132. target_sources(CMSISDSP PRIVATE TransformFunctions/arm_cfft_radix4_init_q15.c)
  133. endif()
  134. if (WRAPPER OR ARM_CFFT_RADIX2_Q31)
  135. target_sources(CMSISDSP PRIVATE TransformFunctions/arm_cfft_radix2_init_q31.c)
  136. endif()
  137. if (NOT CONFIGTABLE OR ALLFFT OR ARM_CFFT_RADIX4_Q31)
  138. target_sources(CMSISDSP PRIVATE TransformFunctions/arm_cfft_radix4_init_q31.c)
  139. endif()
  140. # For scipy or wrappers or benchmarks
  141. if (WRAPPER)
  142. target_sources(CMSISDSP PRIVATE TransformFunctions/arm_cfft_radix2_init_f32.c)
  143. if ((NOT ARMAC5) AND (NOT DISABLEFLOAT16))
  144. target_sources(CMSISDSP PRIVATE TransformFunctions/arm_cfft_radix2_init_f16.c)
  145. endif()
  146. target_compile_definitions(CMSISDSP PUBLIC ARM_TABLE_BITREV_1024)
  147. target_compile_definitions(CMSISDSP PUBLIC ARM_TABLE_TWIDDLECOEF_F32_4096)
  148. target_compile_definitions(CMSISDSP PUBLIC ARM_TABLE_TWIDDLECOEF_Q31_4096)
  149. target_compile_definitions(CMSISDSP PUBLIC ARM_TABLE_TWIDDLECOEF_Q15_4096)
  150. if ((NOT ARMAC5) AND (NOT DISABLEFLOAT16))
  151. target_compile_definitions(CMSISDSP PUBLIC ARM_TABLE_TWIDDLECOEF_F16_4096)
  152. endif()
  153. endif()
  154. target_sources(CMSISDSP PRIVATE TransformFunctions/arm_mfcc_init_f32.c)
  155. target_sources(CMSISDSP PRIVATE TransformFunctions/arm_mfcc_f32.c)
  156. target_sources(CMSISDSP PRIVATE TransformFunctions/arm_mfcc_init_q31.c)
  157. target_sources(CMSISDSP PRIVATE TransformFunctions/arm_mfcc_q31.c)
  158. target_sources(CMSISDSP PRIVATE TransformFunctions/arm_mfcc_init_q15.c)
  159. target_sources(CMSISDSP PRIVATE TransformFunctions/arm_mfcc_q15.c)
  160. if ((NOT ARMAC5) AND (NOT DISABLEFLOAT16))
  161. target_sources(CMSISDSP PRIVATE TransformFunctions/arm_mfcc_init_f16.c)
  162. target_sources(CMSISDSP PRIVATE TransformFunctions/arm_mfcc_f16.c)
  163. endif()