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.0 kB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293
  1. # BUILD the load and run for lite
  2. include_directories(PUBLIC
  3. $<BUILD_INTERFACE:${PROJECT_SOURCE_DIR}/lite/load_and_run/src>)
  4. file(GLOB_RECURSE SOURCES src/**/*.cpp ${PROJECT_SOURCE_DIR}/lite/src/pack_model/*.cpp)
  5. add_library(lar_object OBJECT ${SOURCES})
  6. target_link_libraries(lar_object lite_static)
  7. target_link_libraries(lar_object megbrain)
  8. if(APPLE)
  9. target_link_libraries(lar_object gflags)
  10. else()
  11. target_link_libraries(lar_object gflags -Wl,--version-script=${MGE_VERSION_SCRIPT})
  12. endif()
  13. if(LITE_BUILD_WITH_MGE
  14. AND NOT WIN32
  15. AND NOT APPLE)
  16. # FXIME third_party cpp redis do not support build with clang-cl
  17. target_include_directories(lar_object PRIVATE ${CPP_REDIS_INCLUDES})
  18. endif()
  19. add_executable(load_and_run src/main.cpp)
  20. target_link_libraries(load_and_run lar_object)
  21. if(LITE_BUILD_WITH_RKNPU)
  22. # rknn sdk1.0.0 depend on libc++_shared, use gold to remove NEEDED so symbol check
  23. target_link_options(load_and_run PRIVATE "-fuse-ld=gold")
  24. endif()
  25. if(LITE_BUILD_WITH_MGE AND MGE_WITH_ROCM)
  26. message(WARNING "MGE_WITH_ROCM is valid link to megdnn")
  27. # FIXME: hip obj can not find cpp obj only through lite_static
  28. target_link_libraries(load_and_run megdnn)
  29. endif()
  30. if(UNIX)
  31. if(APPLE OR ANDROID)
  32. target_link_libraries(load_and_run dl)
  33. else()
  34. target_link_libraries(load_and_run dl rt)
  35. endif()
  36. endif()
  37. install(
  38. TARGETS load_and_run
  39. EXPORT ${LITE_EXPORT_TARGETS}
  40. RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR})
  41. if(BUILD_SHARED_LIBS)
  42. if(LITE_BUILD_WITH_MGE
  43. AND NOT WIN32
  44. AND NOT APPLE)
  45. # FXIME third_party cpp redis do not support build with clang-cl
  46. list(APPEND SOURCES ${CPP_REDIS_SRCS})
  47. endif()
  48. add_executable(load_and_run_depends_shared ${SOURCES} src/main.cpp)
  49. target_link_libraries(load_and_run_depends_shared lite_shared)
  50. target_link_libraries(load_and_run_depends_shared gflags)
  51. target_link_libraries(load_and_run_depends_shared megengine)
  52. if(LITE_BUILD_WITH_RKNPU)
  53. # rknn sdk1.0.0 depend on libc++_shared, use gold to remove NEEDED so symbol check
  54. target_link_options(load_and_run_depends_shared PRIVATE "-fuse-ld=gold")
  55. endif()
  56. if(LITE_BUILD_WITH_MGE AND MGE_WITH_ROCM)
  57. message(WARNING "MGE_WITH_ROCM is valid link to megdnn")
  58. # FIXME: hip obj can not find cpp obj only through lite_static
  59. target_link_libraries(load_and_run_depends_shared megdnn)
  60. endif()
  61. if(UNIX)
  62. if(APPLE OR ANDROID)
  63. target_link_libraries(load_and_run_depends_shared dl)
  64. else()
  65. target_link_libraries(load_and_run_depends_shared dl rt)
  66. endif()
  67. endif()
  68. if(LITE_BUILD_WITH_MGE
  69. AND NOT WIN32
  70. AND NOT APPLE)
  71. # FXIME third_party cpp redis do not support build with clang-cl
  72. target_include_directories(load_and_run_depends_shared
  73. PRIVATE ${CPP_REDIS_INCLUDES})
  74. endif()
  75. install(
  76. TARGETS load_and_run_depends_shared
  77. EXPORT ${MGE_EXPORT_TARGETS}
  78. RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR})
  79. endif()