1cmake_minimum_required(VERSION 3.14) 2project(RuntimeCpp) 3option(SUPPORT_NPU "if support npu" off) 4 5if(CMAKE_CXX_COMPILER_ID STREQUAL "GNU" AND CMAKE_CXX_COMPILER_VERSION VERSION_LESS 7.3.0) 6 message(FATAL_ERROR "GCC version ${CMAKE_CXX_COMPILER_VERSION} must not be less than 7.3.0") 7endif() 8link_directories(${CMAKE_CURRENT_SOURCE_DIR}/lib) 9set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++17") 10 11include_directories(${CMAKE_CURRENT_SOURCE_DIR}) 12file(GLOB_RECURSE RUNTIME_CPP ${CMAKE_CURRENT_SOURCE_DIR}/*.cc) 13 14add_executable(runtime_cpp ${RUNTIME_CPP}) 15find_library(log-lib log) 16if(SUPPORT_NPU) 17 target_link_libraries( 18 runtime_cpp 19 -Wl,--whole-archive mindspore-lite -Wl,--no-whole-archive 20 hiai 21 hiai_ir 22 hiai_ir_build 23 ${log-lib} 24 ) 25else() 26 target_link_libraries( 27 runtime_cpp 28 -Wl,--whole-archive mindspore-lite -Wl,--no-whole-archive 29 ${log-lib} 30 ) 31endif() 32 33SET(CMAKE_INSTALL_PREFIX ${CMAKE_CURRENT_SOURCE_DIR}/build/tmp) 34 35INSTALL(TARGETS runtime_cpp 36 DESTINATION bin) 37 38INSTALL(FILES 39 ${ANDROID_NDK}/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/aarch64-linux-android/libc++_shared.so 40 DESTINATION lib) 41 42INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/model/mobilenetv2.ms 43 DESTINATION model) 44 45if(SUPPORT_NPU) 46 INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/lib/libhiai.so 47 DESTINATION lib) 48 INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/lib/libhiai_ir.so 49 DESTINATION lib) 50 INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/lib/libhiai_ir_build.so 51 DESTINATION lib) 52endif() 53 54set(CPACK_GENERATOR "TGZ") 55 56set(CPACK_PACKAGE_FILE_NAME "runtime_cpp_demo") 57 58set(CPACK_PACKAGE_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/output) 59 60include(CPack) 61