From 21f2401622ab3c4126ded93eac5c450afd457345 Mon Sep 17 00:00:00 2001 From: Xin Chen Date: Wed, 12 Apr 2023 11:35:50 +0800 Subject: [PATCH 1/5] disable MMDEPLOY_BUILD_SDK_MONOLITHIC=ON && MMDEPLOY_SHARED_LIBS=ON --- CMakeLists.txt | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/CMakeLists.txt b/CMakeLists.txt index 02f7a7579b..3ff58caca1 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -44,6 +44,10 @@ if ((NOT MMDEPLOY_BUILD_SDK_MONOLITHIC) AND MMDEPLOY_DYNAMIC_BACKEND) set(MMDEPLOY_DYNAMIC_BACKEND OFF) endif () +if (MMDEPLOY_BUILD_SDK_MONOLITHIC AND MMDEPLOY_SHARED_LIBS) + set(MMDEPLOY_SHARED_LIBS OFF) +endif () + if (NOT CMAKE_BUILD_TYPE) set(CMAKE_BUILD_TYPE Release CACHE STRING "choose 'Release' as default build type" FORCE) endif () From 7a21969810a192be6813634a04ea76acef30153a Mon Sep 17 00:00:00 2001 From: Xin Chen Date: Wed, 12 Apr 2023 11:45:34 +0800 Subject: [PATCH 2/5] fix linux --- CMakeLists.txt | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 3ff58caca1..cc15d67b78 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -128,15 +128,15 @@ if (MMDEPLOY_BUILD_SDK) set(SPDLOG_DEPENDENCY "find_package(spdlog QUIET)") endif () # append backend deps - mmdeploy_add_deps(trt BACKENDS ${MMDEPLOY_TARGET_BACKENDS} DEPS TENSORRT CUDNN) - mmdeploy_add_deps(ort BACKENDS ${MMDEPLOY_TARGET_BACKENDS} DEPS ONNXRUNTIME) - mmdeploy_add_deps(ncnn BACKENDS ${MMDEPLOY_TARGET_BACKENDS} DEPS ncnn) - mmdeploy_add_deps(openvino BACKENDS ${MMDEPLOY_TARGET_BACKENDS} DEPS InferenceEngine) - if (NOT MMDEPLOY_SHARED_LIBS) + if (NOT (MMDEPLOY_SHARED_LIBS OR MMDEPLOY_BUILD_SDK_MONOLITHIC)) mmdeploy_add_deps(pplnn BACKENDS ${MMDEPLOY_TARGET_BACKENDS} DEPS pplnn) endif () - mmdeploy_add_deps(snpe BACKENDS ${MMDEPLOY_TARGET_BACKENDS} DEPS snpe) - mmdeploy_add_deps(rknn BACKENDS ${MMDEPLOY_TARGET_BACKENDS} DEPS rknn) + # mmdeploy_add_deps(trt BACKENDS ${MMDEPLOY_TARGET_BACKENDS} DEPS TENSORRT CUDNN) + # mmdeploy_add_deps(ort BACKENDS ${MMDEPLOY_TARGET_BACKENDS} DEPS ONNXRUNTIME) + # mmdeploy_add_deps(ncnn BACKENDS ${MMDEPLOY_TARGET_BACKENDS} DEPS ncnn) + # mmdeploy_add_deps(openvino BACKENDS ${MMDEPLOY_TARGET_BACKENDS} DEPS InferenceEngine) + # mmdeploy_add_deps(snpe BACKENDS ${MMDEPLOY_TARGET_BACKENDS} DEPS snpe) + # mmdeploy_add_deps(rknn BACKENDS ${MMDEPLOY_TARGET_BACKENDS} DEPS rknn) include(CMakePackageConfigHelpers) # generate the config file that is includes the exports From 91d5caed6d5c88cc7133233641da72c4a486eef4 Mon Sep 17 00:00:00 2001 From: irexyc Date: Fri, 14 Apr 2023 14:51:17 +0800 Subject: [PATCH 3/5] only find backend deps when build static lib --- CMakeLists.txt | 13 ++++++------- csrc/mmdeploy/net/ort/CMakeLists.txt | 2 +- csrc/mmdeploy/net/trt/CMakeLists.txt | 2 +- 3 files changed, 8 insertions(+), 9 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index cc15d67b78..2dfaf4cc06 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -130,14 +130,13 @@ if (MMDEPLOY_BUILD_SDK) # append backend deps if (NOT (MMDEPLOY_SHARED_LIBS OR MMDEPLOY_BUILD_SDK_MONOLITHIC)) mmdeploy_add_deps(pplnn BACKENDS ${MMDEPLOY_TARGET_BACKENDS} DEPS pplnn) + mmdeploy_add_deps(ncnn BACKENDS ${MMDEPLOY_TARGET_BACKENDS} DEPS ncnn) + mmdeploy_add_deps(trt BACKENDS ${MMDEPLOY_TARGET_BACKENDS} DEPS TENSORRT CUDNN) + mmdeploy_add_deps(ort BACKENDS ${MMDEPLOY_TARGET_BACKENDS} DEPS ONNXRUNTIME) + mmdeploy_add_deps(openvino BACKENDS ${MMDEPLOY_TARGET_BACKENDS} DEPS InferenceEngine) + mmdeploy_add_deps(snpe BACKENDS ${MMDEPLOY_TARGET_BACKENDS} DEPS snpe) + mmdeploy_add_deps(rknn BACKENDS ${MMDEPLOY_TARGET_BACKENDS} DEPS rknn) endif () - # mmdeploy_add_deps(trt BACKENDS ${MMDEPLOY_TARGET_BACKENDS} DEPS TENSORRT CUDNN) - # mmdeploy_add_deps(ort BACKENDS ${MMDEPLOY_TARGET_BACKENDS} DEPS ONNXRUNTIME) - # mmdeploy_add_deps(ncnn BACKENDS ${MMDEPLOY_TARGET_BACKENDS} DEPS ncnn) - # mmdeploy_add_deps(openvino BACKENDS ${MMDEPLOY_TARGET_BACKENDS} DEPS InferenceEngine) - # mmdeploy_add_deps(snpe BACKENDS ${MMDEPLOY_TARGET_BACKENDS} DEPS snpe) - # mmdeploy_add_deps(rknn BACKENDS ${MMDEPLOY_TARGET_BACKENDS} DEPS rknn) - include(CMakePackageConfigHelpers) # generate the config file that is includes the exports configure_package_config_file(${CMAKE_SOURCE_DIR}/cmake/MMDeployConfig.cmake.in diff --git a/csrc/mmdeploy/net/ort/CMakeLists.txt b/csrc/mmdeploy/net/ort/CMakeLists.txt index 00ecdaf44b..7b792268d0 100644 --- a/csrc/mmdeploy/net/ort/CMakeLists.txt +++ b/csrc/mmdeploy/net/ort/CMakeLists.txt @@ -7,5 +7,5 @@ include(${CMAKE_SOURCE_DIR}/cmake/modules/FindONNXRUNTIME.cmake) mmdeploy_add_net(${PROJECT_NAME} ort_net.cpp) target_include_directories(${PROJECT_NAME} PRIVATE ${ONNXRUNTIME_DIR}/include) target_link_libraries(${PROJECT_NAME} PRIVATE mmdeploy_onnxruntime_ops_obj) -target_link_libraries(${PROJECT_NAME} PUBLIC onnxruntime) +target_link_libraries(${PROJECT_NAME} PRIVATE onnxruntime) add_library(mmdeploy::ort_net ALIAS ${PROJECT_NAME}) diff --git a/csrc/mmdeploy/net/trt/CMakeLists.txt b/csrc/mmdeploy/net/trt/CMakeLists.txt index bc49d0b176..79911d53b9 100644 --- a/csrc/mmdeploy/net/trt/CMakeLists.txt +++ b/csrc/mmdeploy/net/trt/CMakeLists.txt @@ -10,6 +10,6 @@ target_include_directories(${PROJECT_NAME} PRIVATE target_include_directories(${PROJECT_NAME} PRIVATE ${CUDNN_DIR}/include) target_include_directories(${PROJECT_NAME} PRIVATE ${CUDA_TOOLKIT_ROOT_DIR}/include) target_link_libraries(${PROJECT_NAME} PRIVATE mmdeploy_tensorrt_ops_obj) -target_link_libraries(${PROJECT_NAME} PUBLIC ${TENSORRT_LIBS} cudnn cuda) +target_link_libraries(${PROJECT_NAME} PRIVATE ${TENSORRT_LIBS} cudnn cuda) add_library(mmdeploy::trt_net ALIAS ${PROJECT_NAME}) From c938c3f6b83c5886e4c9e7ba1bb630542498d41a Mon Sep 17 00:00:00 2001 From: Xin Chen Date: Fri, 14 Apr 2023 16:47:50 +0800 Subject: [PATCH 4/5] fix windows --- cmake/MMDeployConfig.cmake.in | 1 + csrc/mmdeploy/codebase/mmdet/CMakeLists.txt | 2 +- csrc/mmdeploy/codebase/mmpose/CMakeLists.txt | 3 +-- csrc/mmdeploy/utils/opencv/CMakeLists.txt | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/cmake/MMDeployConfig.cmake.in b/cmake/MMDeployConfig.cmake.in index fd3679791f..c27d74f6c4 100644 --- a/cmake/MMDeployConfig.cmake.in +++ b/cmake/MMDeployConfig.cmake.in @@ -16,6 +16,7 @@ set(MMDEPLOY_VERSION_MINOR @MMDEPLOY_VERSION_MINOR@) set(MMDEPLOY_VERSION_PATCH @MMDEPLOY_VERSION_PATCH@) if (NOT MMDEPLOY_BUILD_SHARED AND NOT MMDEPLOY_BUILD_SDK_MONOLITHIC) + find_package(OpenCV REQUIRED) if ("cuda" IN_LIST MMDEPLOY_TARGET_DEVICES) find_package(CUDA REQUIRED) if(MSVC) diff --git a/csrc/mmdeploy/codebase/mmdet/CMakeLists.txt b/csrc/mmdeploy/codebase/mmdet/CMakeLists.txt index 92768a43e0..0d2c75d8e8 100644 --- a/csrc/mmdeploy/codebase/mmdet/CMakeLists.txt +++ b/csrc/mmdeploy/codebase/mmdet/CMakeLists.txt @@ -5,7 +5,7 @@ project(mmdeploy_mmdet) file(GLOB_RECURSE SRCS ${CMAKE_CURRENT_SOURCE_DIR} "*.cpp") mmdeploy_add_module(${PROJECT_NAME} "${SRCS}") target_link_libraries(${PROJECT_NAME} - PRIVATE mmdeploy_opencv_utils) + PRIVATE mmdeploy_opencv_utils mmdeploy_operation) add_library(mmdeploy::mmdet ALIAS ${PROJECT_NAME}) diff --git a/csrc/mmdeploy/codebase/mmpose/CMakeLists.txt b/csrc/mmdeploy/codebase/mmpose/CMakeLists.txt index 4c165c0d10..cb9014536f 100644 --- a/csrc/mmdeploy/codebase/mmpose/CMakeLists.txt +++ b/csrc/mmdeploy/codebase/mmpose/CMakeLists.txt @@ -11,8 +11,7 @@ mmdeploy_add_module(${PROJECT_NAME} ${MMPOSE_SRCS} ${POSE_TRACKER_SRCS}) target_link_libraries(${PROJECT_NAME} PRIVATE mmdeploy::transform mmdeploy_operation - mmdeploy_opencv_utils - ${OpenCV_LIBS}) + mmdeploy_opencv_utils) target_include_directories(${PROJECT_NAME} PRIVATE ${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_CURRENT_SOURCE_DIR}/../../apis/c) diff --git a/csrc/mmdeploy/utils/opencv/CMakeLists.txt b/csrc/mmdeploy/utils/opencv/CMakeLists.txt index 2dafb8da65..4c7238ae9b 100644 --- a/csrc/mmdeploy/utils/opencv/CMakeLists.txt +++ b/csrc/mmdeploy/utils/opencv/CMakeLists.txt @@ -6,7 +6,7 @@ mmdeploy_add_library(${PROJECT_NAME} opencv_utils.cpp) target_link_libraries(${PROJECT_NAME} PRIVATE mmdeploy::core - PUBLIC ${OpenCV_LIBS}) + PUBLIC $) target_include_directories(${PROJECT_NAME} INTERFACE $) From a6796811959347a1b826244423a8487fda3d48eb Mon Sep 17 00:00:00 2001 From: irexyc Date: Wed, 7 Jun 2023 16:14:16 +0800 Subject: [PATCH 5/5] eliminate confusion --- CMakeLists.txt | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 2dfaf4cc06..1408aac0cf 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -22,7 +22,7 @@ endif () set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin) # options -option(MMDEPLOY_SHARED_LIBS "build shared libs" OFF) +option(MMDEPLOY_SHARED_LIBS "build shared libs" ON) option(MMDEPLOY_BUILD_SDK "build MMDeploy SDK" OFF) option(MMDEPLOY_DYNAMIC_BACKEND "dynamic load backend" OFF) option(MMDEPLOY_BUILD_SDK_MONOLITHIC "build single lib for SDK API" ON) @@ -41,18 +41,24 @@ set(MMDEPLOY_TARGET_BACKENDS "" CACHE STRING "target inference engines to suppor set(MMDEPLOY_CODEBASES "all" CACHE STRING "select OpenMMLab codebases") if ((NOT MMDEPLOY_BUILD_SDK_MONOLITHIC) AND MMDEPLOY_DYNAMIC_BACKEND) + message(WARNING + "dynamic backend only supported with MMDEPLOY_BUILD_SDK_MONOLITHIC=ON\n" + "implicit set MMDEPLOY_DYNAMIC_BACKEND=OFF") set(MMDEPLOY_DYNAMIC_BACKEND OFF) endif () -if (MMDEPLOY_BUILD_SDK_MONOLITHIC AND MMDEPLOY_SHARED_LIBS) - set(MMDEPLOY_SHARED_LIBS OFF) +if (MMDEPLOY_BUILD_SDK_MONOLITHIC AND (NOT MMDEPLOY_SHARED_LIBS)) + message(WARNING + "monolithic lib only supported with MMDEPLOY_SHARED_LIBS=ON\n" + "implicit set MMDEPLOY_BUILD_SDK_MONOLITHIC=OFF") + set(MMDEPLOY_BUILD_SDK_MONOLITHIC OFF) endif () if (NOT CMAKE_BUILD_TYPE) set(CMAKE_BUILD_TYPE Release CACHE STRING "choose 'Release' as default build type" FORCE) endif () -if (MMDEPLOY_SHARED_LIBS) +if (MMDEPLOY_SHARED_LIBS AND (NOT MMDEPLOY_BUILD_SDK_MONOLITHIC)) set(MMDEPLOY_LIB_TYPE SHARED) else () set(MMDEPLOY_LIB_TYPE STATIC)