diff --git a/CMakeLists.txt b/CMakeLists.txt index 2e6d1ea15..d9995ca69 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -353,6 +353,7 @@ install( ${PROJECT_SOURCE_DIR}/ThirdPartyNotices.txt ${PROJECT_SOURCE_DIR}/VERSION_NUMBER ${PROJECT_SOURCE_DIR}/FastDeploy.cmake + ${PROJECT_SOURCE_DIR}/FastDeployUtils.cmake DESTINATION ${CMAKE_INSTALL_PREFIX} ) install( diff --git a/FastDeploy.cmake.in b/FastDeploy.cmake.in index 5a50fe7ae..f11aea9f6 100644 --- a/FastDeploy.cmake.in +++ b/FastDeploy.cmake.in @@ -19,6 +19,9 @@ set(FASTDEPLOY_LIBS "") set(FASTDEPLOY_INCS "") list(APPEND FASTDEPLOY_INCS ${CMAKE_CURRENT_LIST_DIR}/include) +# Note(zhoushunjie): include some useful utils function +include(${CMAKE_CURRENT_LIST_DIR}/FastDeployUtils.cmake) + if(NOT CMAKE_CXX_STANDARD) set(CMAKE_CXX_STANDARD 11) endif() @@ -57,19 +60,7 @@ endif() if(ENABLE_OPENVINO_BACKEND) set(OPENVINO_FILENAME @OPENVINO_FILENAME@) - find_library(OPENVINO_LIB openvino ${CMAKE_CURRENT_LIST_DIR}/third_libs/install/${OPENVINO_FILENAME}/runtime/lib/ NO_DEFAULT_PATH) - set(OPENVINO_LIBS ${OPENVINO_LIB}) - # Find tbb libs - find_package(TBB PATHS "${CMAKE_CURRENT_LIST_DIR}/third_libs/install/${OPENVINO_FILENAME}/runtime/3rdparty/tbb/") - if (TBB_FOUND) - list(APPEND OPENVINO_LIBS ${TBB_IMPORTED_TARGETS}) - else() - # TODO(zhoushunjie): Use openvino with tbb on linux in future. - set(OMP_LIB "${CMAKE_CURRENT_LIST_DIR}/third_libs/install/${OPENVINO_FILENAME}/runtime/3rdparty/omp/lib/libiomp5.so") - add_library(omp STATIC IMPORTED GLOBAL) - set_property(TARGET omp PROPERTY IMPORTED_LOCATION ${OMP_LIB}) - list(APPEND OPENVINO_LIBS omp) - endif() + get_openvino_libs(${CMAKE_CURRENT_LIST_DIR}/third_libs/install/${OPENVINO_FILENAME}/runtime) message(STATUS "OPENVINO_LIBS = ${OPENVINO_LIBS}") list(APPEND FASTDEPLOY_LIBS ${OPENVINO_LIBS}) endif() @@ -143,6 +134,7 @@ endif() message(STATUS " ENABLE_TRT_BACKEND : ${ENABLE_TRT_BACKEND}") message(STATUS " ENABLE_VISION : ${ENABLE_VISION}") message(STATUS " ENABLE_TEXT : ${ENABLE_TEXT}") +message(STATUS " DEPENDENCY_LIBS : ${FASTDEPLOY_LIBS}") if (CMAKE_CXX_COMPILER_ID STREQUAL "GNU") if (CMAKE_CXX_COMPILER_VERSION VERSION_LESS "5.4.0") diff --git a/FastDeployUtils.cmake b/FastDeployUtils.cmake new file mode 100644 index 000000000..3c392af95 --- /dev/null +++ b/FastDeployUtils.cmake @@ -0,0 +1,17 @@ +CMAKE_MINIMUM_REQUIRED (VERSION 3.12) + +function(get_openvino_libs OPENVINO_RUNTIME_DIR) + set(LIB_LIST "") + find_library(OPENVINO_LIB openvino ${OPENVINO_RUNTIME_DIR}/lib/ NO_DEFAULT_PATH) + list(APPEND LIB_LIST ${OPENVINO_LIB}) + + find_package(TBB PATHS "${OPENVINO_RUNTIME_DIR}/3rdparty/tbb") + if (TBB_FOUND) + list(APPEND LIB_LIST ${TBB_IMPORTED_TARGETS}) + else() + # TODO(zhoushunjie): Use openvino with tbb on linux in future. + set(OMP_LIB "${OPENVINO_RUNTIME_DIR}/3rdparty/omp/lib/libiomp5.so") + list(APPEND LIB_LIST ${OMP_LIB}) + endif() + set(OPENVINO_LIBS ${LIB_LIST} PARENT_SCOPE) +endfunction() \ No newline at end of file diff --git a/cmake/openvino.cmake b/cmake/openvino.cmake index 03c437ba2..bba751177 100644 --- a/cmake/openvino.cmake +++ b/cmake/openvino.cmake @@ -41,7 +41,6 @@ else() endif() set(OPENVINO_URL "${OPENVINO_URL_PREFIX}${OPENVINO_FILENAME}${COMPRESSED_SUFFIX}") - set(OPENVINO_INSTALL_DIR ${THIRD_PARTY_PATH}/install/${OPENVINO_FILENAME}/runtime) set(OPENVINO_INSTALL_INC_DIR "${OPENVINO_INSTALL_DIR}/include" @@ -62,9 +61,6 @@ download_and_decompress(${OPENVINO_URL} ${THIRD_PARTY_PATH}/install) if(WIN32) - set(OPENVINO_LIB - "${OPENVINO_INSTALL_DIR}/lib/openvino.lib" - CACHE FILEPATH "OPENVINO shared library." FORCE) file(GLOB_RECURSE OPENVINO_LIB_FILES ${OPENVINO_INSTALL_DIR}/lib/intel64/Release/*) file(COPY ${OPENVINO_LIB_FILES} DESTINATION ${OPENVINO_INSTALL_DIR}/lib/) file(REMOVE_RECURSE ${OPENVINO_INSTALL_DIR}/lib/intel64) @@ -73,16 +69,10 @@ if(WIN32) file(COPY ${OPENVINO_BIN_FILES} DESTINATION ${OPENVINO_INSTALL_DIR}/bin/) file(REMOVE_RECURSE ${OPENVINO_INSTALL_DIR}/bin/intel64) elseif(APPLE) - set(OPENVINO_LIB - "${OPENVINO_INSTALL_DIR}/lib/libopenvino.dylib" - CACHE FILEPATH "OPENVINO shared library." FORCE) file(GLOB_RECURSE OPENVINO_LIB_FILES ${OPENVINO_INSTALL_DIR}/lib/intel64/Release/*) file(COPY ${OPENVINO_LIB_FILES} DESTINATION ${OPENVINO_INSTALL_DIR}/lib/) file(REMOVE_RECURSE ${OPENVINO_INSTALL_DIR}/lib/intel64) else() - set(OPENVINO_LIB - "${OPENVINO_INSTALL_DIR}/lib/libopenvino.so" - CACHE FILEPATH "OPENVINO shared library." FORCE) file(GLOB_RECURSE OPENVINO_LIB_FILES ${OPENVINO_INSTALL_DIR}/lib/intel64/*) file(COPY ${OPENVINO_LIB_FILES} DESTINATION ${OPENVINO_INSTALL_DIR}/lib/) file(REMOVE_RECURSE ${OPENVINO_INSTALL_DIR}/lib/intel64) @@ -94,21 +84,7 @@ file(REMOVE_RECURSE ${THIRD_PARTY_PATH}/install/${OPENVINO_FILENAME}/samples) file(REMOVE_RECURSE ${THIRD_PARTY_PATH}/install/${OPENVINO_FILENAME}/setupvars.sh) file(REMOVE_RECURSE ${THIRD_PARTY_PATH}/install/${OPENVINO_FILENAME}/tools) -add_library(external_openvino STATIC IMPORTED GLOBAL) -set_property(TARGET external_openvino PROPERTY IMPORTED_LOCATION ${OPENVINO_LIB}) -set(OPENVINO_LIBS external_openvino) - -find_package(TBB PATHS "${OPENVINO_INSTALL_DIR}/3rdparty/tbb") -if (TBB_FOUND) - list(APPEND OPENVINO_LIBS ${TBB_IMPORTED_TARGETS}) -else() - # TODO(zhoushunjie): Use openvino with tbb on linux in future. - set(OMP_LIB "${OPENVINO_INSTALL_DIR}/3rdparty/omp/lib/libiomp5.so") - add_library(omp STATIC IMPORTED GLOBAL) - set_property(TARGET omp PROPERTY IMPORTED_LOCATION - ${OMP_LIB}) - list(APPEND OPENVINO_LIBS omp) -endif() -message(STATUS "OPENVINO_LIBS = ${OPENVINO_LIBS}") - -list(APPEND DEPEND_LIBS ${OPENVINO_LIBS}) +include(${PROJECT_SOURCE_DIR}/FastDeployUtils.cmake) +get_openvino_libs(${OPENVINO_INSTALL_DIR}) +message("OPENVINO_LIBS = ${OPENVINO_LIBS}") +list(APPEND DEPEND_LIBS ${OPENVINO_LIBS}) \ No newline at end of file