You can not select more than 25 topics Topics must start with a chinese character,a letter or number, can include dashes ('-') and can be up to 35 characters long.

CMakeLists.txt 3.2 kB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879
  1. cmake_minimum_required(VERSION 3.12.1)
  2. project (mindspore-predict)
  3. set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -g")
  4. set(CMAKE_BUILD_TYPE "Release")
  5. set(CMAKE_CXX_STANDARD 11)
  6. set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fvisibility=hidden")
  7. set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fvisibility=hidden")
  8. set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -s")
  9. option(ENABLE_ASAN "Enable Google Sanitizer to find memory bugs" OFF)
  10. option(ENABLE_PREDICT_ARM64 "predict arm64" OFF)
  11. option(ENABLE_PREDICT_ARM32 "predict arm32" OFF)
  12. set(PREDICT_DIR ${CMAKE_CURRENT_SOURCE_DIR})
  13. set(PREDICT_BUILD_DIR ${CMAKE_CURRENT_SOURCE_DIR}/build)
  14. set(3RD_DIR ${CMAKE_CURRENT_SOURCE_DIR}/../third_party)
  15. set(DOTEST_DIR ${PREDICT_BUILD_DIR}/test/doTest)
  16. include_directories(${3RD_DIR})
  17. include_directories(${3RD_DIR}/flatbuffers/include/)
  18. include_directories(${3RD_DIR}/protobuf/build/include/)
  19. include_directories(${3RD_DIR}/googletest/googletest/include/)
  20. include_directories(${3RD_DIR}/googletest/googlemock/include/)
  21. include_directories(${CMAKE_CURRENT_SOURCE_DIR}/module/tvm_kernel/lite/include/)
  22. include_directories(${PREDICT_DIR}/module/tvm_kernel/incubator-tvm/3rdparty/dlpack/include)
  23. include_directories(common)
  24. if(ENABLE_PREDICT_ARM64 OR ENABLE_PREDICT_ARM32)
  25. message("*********************predict compile arm*********************")
  26. set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DMS_USE_ARM=1")
  27. set(ANDROID_NDK $ENV{ANDROID_NDK})
  28. if(ANDROID_NDK)
  29. add_subdirectory(${3RD_DIR}/googletest ${CMAKE_BINARY_DIR}/googletest)
  30. link_directories(${PREDICT_BUILD_DIR}/googletest/googlemock/gtest)
  31. add_subdirectory(${3RD_DIR}/securec ${CMAKE_BINARY_DIR}/securec)
  32. link_directories(${PREDICT_BUILD_DIR}/securec/src)
  33. else()
  34. message(FATAL_ERROR "please set ANDROID_NDK in environment variable for example: export ANDROID_NDK=/root/usr/android-ndk-r16b/")
  35. endif()
  36. include_directories(${ANDROID_SYSROOT}/usr/include/)
  37. if(${ANDROID_ABI} STREQUAL "armeabi-v7a")
  38. include_directories(${ANDROID_SYSROOT}/usr/include/arm-linux-androideabi)
  39. elseif(${ANDROID_ABI} STREQUAL "arm64-v8a")
  40. include_directories(${ANDROID_SYSROOT}/usr/include/aarch64-linux-android)
  41. else()
  42. include_directories(${ANDROID_SYSROOT}/usr/include/arm-linux-androideabi)
  43. endif()
  44. else()
  45. # include libsecurec.a x86
  46. message("*********************predict compile x86*********************")
  47. if(EXISTS "${PREDICT_DIR}/../build/mindspore/securec/src/libsecurec.a")
  48. link_directories(${PREDICT_DIR}/../build/mindspore/securec/src)
  49. else()
  50. include(${PREDICT_DIR}/../cmake/dependency_securec.cmake)
  51. link_directories(${PREDICT_BUILD_DIR}/securec/src)
  52. endif()
  53. # include libgtest.so x86
  54. if(EXISTS "${PREDICT_DIR}/../build/googletest/googlemock/gtest/libgtest.so")
  55. link_directories(${PREDICT_DIR}/../build/googletest/googlemock/gtest)
  56. else()
  57. include(${PREDICT_DIR}/../cmake/dependency_gtest.cmake)
  58. link_directories(${PREDICT_BUILD_DIR}/googletest/googlemock/gtest)
  59. endif()
  60. endif()
  61. if (CODE_COVERAGE)
  62. set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fprofile-arcs -ftest-coverage -O0")
  63. endif()
  64. add_subdirectory(common)
  65. add_subdirectory(src)
  66. add_subdirectory(benchmark)
  67. add_subdirectory(test)
  68. add_subdirectory(module)