CMakeLists.txt 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. # Copyright (c) 2022,2024 HPMicro
  2. # SPDX-License-Identifier: BSD-3-Clause
  3. sdk_inc(./)
  4. sdk_inc_ifdef(CONFIG_HPM_MATH_DSP nds_dsp)
  5. sdk_inc_ifdef(CONFIG_HPM_MATH_NN_RVP32 nds_nn)
  6. sdk_inc_ifdef(CONFIG_HPM_MATH_NN_RVP32_ONLY_SES nds_nn)
  7. sdk_nds_compile_options("-mext-dsp")
  8. sdk_ld_options_ifdef(CONFIG_HPM_MATH_DSP "-ldsp")
  9. if(CONFIG_HPM_MATH_NN_RVP32_ONLY_SES OR CONFIG_HPM_MATH_NN_NORMAL OR CONFIG_HPM_MATH_NN_RVP32)
  10. sdk_ld_options("-lnn")
  11. endif()
  12. sdk_ld_options("-lm")
  13. sdk_iar_enable_dsp()
  14. sdk_ses_ld_lib_ifdef(CONFIG_HPM_MATH_DSP "${CMAKE_CURRENT_SOURCE_DIR}/nds_dsp/gcc/${HPM_MATH_DSP_SES_LIB}.a")
  15. sdk_iar_ld_lib_ifdef(CONFIG_HPM_MATH_DSP "${CMAKE_CURRENT_SOURCE_DIR}/nds_dsp/iar/${HPM_MATH_DSP_SES_LIB}.a")
  16. sdk_ses_ld_lib_ifdef(CONFIG_HPM_MATH_NN_RVP32_ONLY_SES "${CMAKE_CURRENT_SOURCE_DIR}/nds_nn/lib/gcc/libnn_rvp32.a")
  17. sdk_ses_ld_lib_ifdef(CONFIG_HPM_MATH_NN_RVP32 "${CMAKE_CURRENT_SOURCE_DIR}/nds_nn/lib/gcc/libnn_rvp32.a")
  18. sdk_ses_ld_lib_ifdef(CONFIG_HPM_MATH_NN_NORMAL "${CMAKE_CURRENT_SOURCE_DIR}/nds_nn/lib/gcc/${HPM_MATH_NN_SES_LIB}.a")
  19. sdk_link_libraries_ifdef(CONFIG_HPM_MATH_NN_RVP32 "${CMAKE_CURRENT_SOURCE_DIR}/nds_nn/lib/gcc/libnn_rvp32.a")
  20. sdk_compile_definitions_ifdef(CONFIG_HPM_MATH_DSP "-DHPM_EN_MATH_DSP_LIB=1")
  21. if(("${CONFIG_HPM_MATH_NN_RVP32_ONLY_SES}") AND (NOT "${CONFIG_HPM_MATH_NN_RVP32_ONLY_SES}" EQUAL 0))
  22. sdk_compile_definitions(-DHPM_EN_MATH_NN_RVP32_LIB=1)
  23. elseif(("${CONFIG_HPM_MATH_NN_RVP32}") AND (NOT "${CONFIG_HPM_MATH_NN_RVP32}" EQUAL 0))
  24. sdk_compile_definitions(-DHPM_EN_MATH_NN_RVP32_LIB=1)
  25. elseif(("${CONFIG_HPM_MATH_NN_NORMAL}") AND (NOT "${CONFIG_HPM_MATH_NN_NORMAL}" EQUAL 0))
  26. sdk_compile_definitions(-DHPM_EN_MATH_NN_LIB=1)
  27. endif()
  28. sdk_src(sw_dsp/hpm_math_sw.c)
  29. if((NOT "${TOOLCHAIN_VARIANT}" STREQUAL "nds-gcc") AND (NOT "${SES_TOOLCHAIN_VARIANT}" STREQUAL "Andes"))
  30. message(FATAL_ERROR "hpm_math middleware must use nds toolchain")
  31. endif()
  32. # from SES 6.30, nds dsp needs to be enabled explicitly
  33. if("${SES_TOOLCHAIN_VARIANT}" STREQUAL "Andes")
  34. sdk_ses_compile_options("-mext-dsp")
  35. endif()