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

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