CMakeLists.txt 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. # Copyright (c) 2023 HPMicro
  2. # SPDX-License-Identifier: BSD-3-Clause
  3. sdk_inc_ifdef(CONFIG_MICROROS_FOXY microros_foxy/include)
  4. include(CheckCSourceCompiles)
  5. if("${TOOLCHAIN_VARIANT}" STREQUAL "gcc" OR "${TOOLCHAIN_VARIANT}" STREQUAL "zcc")
  6. sdk_link_libraries_ifdef(CONFIG_MICROROS_FOXY "${CMAKE_CURRENT_SOURCE_DIR}/microros_foxy/libmicroros/libmicroros.a")
  7. elseif("${TOOLCHAIN_VARIANT}" STREQUAL "nds-gcc")
  8. check_c_source_compiles("
  9. #if defined (__riscv_float_abi_soft)
  10. #define MICROROS_SOFT 1
  11. #else
  12. #error toolchain not use soft-float
  13. #endif
  14. int main(void) { return 0; }" MICROROS_SOFT)
  15. check_c_source_compiles("
  16. #if defined (__riscv_float_abi_single)
  17. #define MICROROS_SINGLE 1
  18. #else
  19. #error toolchain not use single-float
  20. #endif
  21. int main(void) { return 0; }" MICROROS_SINGLE)
  22. check_c_source_compiles("
  23. #if defined (__riscv_float_abi_double)
  24. #define MICROROS_DOUBLE 1
  25. #else
  26. #error toolchain not use double-float
  27. #endif
  28. int main(void) { return 0; }" MICROROS_DOUBLE)
  29. if(MICROROS_SOFT)
  30. sdk_link_libraries_ifdef(CONFIG_MICROROS_FOXY "${CMAKE_CURRENT_SOURCE_DIR}/microros_foxy/libmicroros/libmicroros.a")
  31. endif()
  32. if(MICROROS_SINGLE)
  33. sdk_link_libraries_ifdef(CONFIG_MICROROS_FOXY "${CMAKE_CURRENT_SOURCE_DIR}/microros_foxy/libmicroros_nds/libmicroros_f.a")
  34. endif()
  35. if(MICROROS_DOUBLE)
  36. sdk_link_libraries_ifdef(CONFIG_MICROROS_FOXY "${CMAKE_CURRENT_SOURCE_DIR}/microros_foxy/libmicroros_nds/libmicroros_d.a")
  37. endif()
  38. else()
  39. message(FATAL_ERROR "No libmicroros lib for this toolchain")
  40. endif()
  41. add_subdirectory(lib)
  42. sdk_inc(driver/inc)
  43. file(GLOB_RECURSE MIRCO_ROS_SRC ${CMAKE_CURRENT_SOURCE_DIR}/driver/src/*.c)
  44. sdk_src(${MIRCO_ROS_SRC})