diff --git a/CMakeLists.txt b/CMakeLists.txt index d9995ca69..2b556cdc8 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -353,7 +353,7 @@ install( ${PROJECT_SOURCE_DIR}/ThirdPartyNotices.txt ${PROJECT_SOURCE_DIR}/VERSION_NUMBER ${PROJECT_SOURCE_DIR}/FastDeploy.cmake - ${PROJECT_SOURCE_DIR}/FastDeployUtils.cmake + ${PROJECT_SOURCE_DIR}/cmake/utils.cmake DESTINATION ${CMAKE_INSTALL_PREFIX} ) install( diff --git a/FastDeploy.cmake.in b/FastDeploy.cmake.in index f11aea9f6..c914ce9c6 100644 --- a/FastDeploy.cmake.in +++ b/FastDeploy.cmake.in @@ -20,7 +20,7 @@ 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) +include(${CMAKE_CURRENT_LIST_DIR}/utils.cmake) if(NOT CMAKE_CXX_STANDARD) set(CMAKE_CXX_STANDARD 11) @@ -112,6 +112,9 @@ if(ENABLE_PADDLE_FRONTEND) list(APPEND FASTDEPLOY_LIBS ${PADDLE2ONNX_LIB}) endif() +message("FASTDEPLOY_LIBS = ${FASTDEPLOY_LIBS}") +remove_duplicate_libraries(FASTDEPLOY_LIBS) + # Print compiler information message(STATUS "") message(STATUS "*************FastDeploy Building Summary**********") diff --git a/FastDeployUtils.cmake b/FastDeployUtils.cmake deleted file mode 100644 index 3c392af95..000000000 --- a/FastDeployUtils.cmake +++ /dev/null @@ -1,17 +0,0 @@ -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 bba751177..e07259965 100644 --- a/cmake/openvino.cmake +++ b/cmake/openvino.cmake @@ -84,7 +84,6 @@ 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) -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 diff --git a/cmake/utils.cmake b/cmake/utils.cmake index 1a203ee96..3c5833f77 100644 --- a/cmake/utils.cmake +++ b/cmake/utils.cmake @@ -26,3 +26,36 @@ function(download_and_decompress url filename decompress_dir) message("Decompress file ${filename} ...") execute_process(COMMAND ${CMAKE_COMMAND} -E tar -xf ${filename} WORKING_DIRECTORY ${decompress_dir}) endfunction() + +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() + +function(remove_duplicate_libraries libraries) + list(LENGTH ${libraries} lib_length) + set(libraries_temp "") + set(full_libraries "") + foreach(lib_path ${${libraries}}) + get_filename_component(lib_name ${lib_path} NAME) + list(FIND libraries_temp ${lib_name} lib_idx) + if (${lib_idx} EQUAL -1) + list(APPEND libraries_temp ${lib_name}) + list(APPEND full_libraries ${lib_path}) + endif() + endforeach() + set(${libraries} ${full_libraries} PARENT_SCOPE) + list(LENGTH full_libraries lib_length) +endfunction() +