• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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