toolchain.cmake 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. if (DEFINED TARGET_ABI)
  2. set(CMAKE_SYSTEM_NAME Linux)
  3. set(CMAKE_BUILD_TYPE MinSizeRel)
  4. if(${TARGET_ABI} MATCHES "armhf")
  5. set(CMAKE_SYSTEM_PROCESSOR arm)
  6. if(NOT CMAKE_C_COMPILER)
  7. set(CMAKE_C_COMPILER "arm-linux-gnueabihf-gcc")
  8. endif()
  9. if(NOT CMAKE_CXX_COMPILER)
  10. set(CMAKE_CXX_COMPILER "arm-linux-gnueabihf-g++")
  11. endif()
  12. set(CMAKE_CXX_FLAGS "-march=armv7-a -mfloat-abi=hard -mfpu=neon-vfpv4 ${CMAKE_CXX_FLAGS}")
  13. set(CMAKE_C_FLAGS "-march=armv7-a -mfloat-abi=hard -mfpu=neon-vfpv4 ${CMAKE_C_FLAGS}" )
  14. set(OPENCV_URL "https://bj.bcebos.com/fastdeploy/third_libs/opencv-linux-armv7hf-4.6.0.tgz")
  15. set(OPENCV_FILENAME "opencv-linux-armv7hf-4.6.0")
  16. if(WITH_TIMVX)
  17. set(PADDLELITE_URL "https://bj.bcebos.com/fastdeploy/third_libs/lite-linux-armhf-timvx-20230316.tgz")
  18. else()
  19. message(STATUS "PADDLELITE_URL will be configured if WITH_TIMVX=ON.")
  20. endif()
  21. set(THIRD_PARTY_PATH ${CMAKE_CURRENT_BINARY_DIR}/third_libs)
  22. set(OpenCV_DIR ${THIRD_PARTY_PATH}/install/opencv/lib/cmake/opencv4)
  23. elseif(${TARGET_ABI} MATCHES "arm64")
  24. set(CMAKE_SYSTEM_PROCESSOR aarch64)
  25. if(NOT CMAKE_C_COMPILER)
  26. set(CMAKE_C_COMPILER "aarch64-linux-gnu-gcc")
  27. endif()
  28. if(NOT CMAKE_CXX_COMPILER)
  29. set(CMAKE_CXX_COMPILER "aarch64-linux-gnu-g++")
  30. endif()
  31. set(CMAKE_CXX_FLAGS "-march=armv8-a ${CMAKE_CXX_FLAGS}")
  32. set(CMAKE_C_FLAGS "-march=armv8-a ${CMAKE_C_FLAGS}")
  33. set(OPENCV_URL "https://bj.bcebos.com/fastdeploy/third_libs/opencv-linux-aarch64-4.6.0.tgz")
  34. set(OPENCV_FILENAME "opencv-linux-aarch64-4.6.0")
  35. if(WITH_TIMVX)
  36. set(PADDLELITE_URL "https://bj.bcebos.com/fastdeploy/third_libs/lite-linux-aarch64-timvx-20230316.tgz")
  37. else()
  38. set(PADDLELITE_URL "https://bj.bcebos.com/fastdeploy/third_libs/lite-linux-arm64-20230316.tgz")
  39. endif()
  40. set(THIRD_PARTY_PATH ${CMAKE_CURRENT_BINARY_DIR}/third_libs)
  41. set(OpenCV_DIR ${THIRD_PARTY_PATH}/install/opencv/lib/cmake/opencv4)
  42. else()
  43. message(FATAL_ERROR "When cross-compiling, please set the -DTARGET_ABI to arm64 or armhf.")
  44. endif()
  45. endif()