UltraInfer.cmake.in 14 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362
  1. CMAKE_MINIMUM_REQUIRED(VERSION 3.8)
  2. # UltraInfer basic infos
  3. set(ULTRAINFER_VERSION @ULTRAINFER_VERSION@)
  4. set(LIBRARY_NAME @LIBRARY_NAME@)
  5. # If compile with GLIBC_CXX_ABI=0
  6. set(NEED_ABI0 @NEED_ABI0@)
  7. # Hardware and Language API
  8. set(WITH_GPU @WITH_GPU@)
  9. set(WITH_IPU @WITH_IPU@)
  10. set(WITH_OPENCL @WITH_OPENCL@)
  11. set(WITH_ASCEND @WITH_ASCEND@)
  12. set(WITH_DIRECTML @WITH_DIRECTML@)
  13. set(WITH_TIMVX @WITH_TIMVX@)
  14. set(WITH_KUNLUNXIN @WITH_KUNLUNXIN@)
  15. set(WITH_CAPI @WITH_CAPI@)
  16. set(WITH_CSHARPAPI @WITH_CSHARPAPI@)
  17. set(WITH_TESTING @WITH_TESTING@)
  18. set(BUILD_ON_JETSON @BUILD_ON_JETSON@)
  19. set(RKNN2_TARGET_SOC "@RKNN2_TARGET_SOC@")
  20. # Inference backend and UltraInfer Module
  21. set(ENABLE_ORT_BACKEND @ENABLE_ORT_BACKEND@)
  22. set(ENABLE_RKNPU2_BACKEND @ENABLE_RKNPU2_BACKEND@)
  23. set(ENABLE_TVM_BACKEND @ENABLE_TVM_BACKEND@)
  24. set(ENABLE_HORIZON_BACKEND @ENABLE_HORIZON_BACKEND@)
  25. set(ENABLE_SOPHGO_BACKEND @ENABLE_SOPHGO_BACKEND@)
  26. set(ENABLE_LITE_BACKEND @ENABLE_LITE_BACKEND@)
  27. set(ENABLE_PADDLE_BACKEND @ENABLE_PADDLE_BACKEND@)
  28. set(ENABLE_OPENVINO_BACKEND @ENABLE_OPENVINO_BACKEND@)
  29. set(ENABLE_POROS_BACKEND @ENABLE_POROS_BACKEND@)
  30. set(ENABLE_TRT_BACKEND @ENABLE_TRT_BACKEND@)
  31. set(ENABLE_OM_BACKEND @ENABLE_OM_BACKEND@)
  32. set(ENABLE_PADDLE2ONNX @ENABLE_PADDLE2ONNX@)
  33. set(BUILD_PADDLE2ONNX @BUILD_PADDLE2ONNX@)
  34. set(ENABLE_VISION @ENABLE_VISION@)
  35. set(ENABLE_FLYCV @ENABLE_FLYCV@)
  36. set(ENABLE_CVCUDA @ENABLE_CVCUDA@)
  37. set(ENABLE_TEXT @ENABLE_TEXT@)
  38. set(ENABLE_BENCHMARK @ENABLE_BENCHMARK@)
  39. # Version infos and custom settings for third libs
  40. set(PADDLEINFERENCE_VERSION @PADDLEINFERENCE_VERSION@)
  41. set(POROS_VERSION @POROS_VERSION@)
  42. set(OPENVINO_VERSION @OPENVINO_VERSION@)
  43. set(OPENCV_FILENAME @OPENCV_FILENAME@)
  44. set(OPENVINO_FILENAME @OPENVINO_FILENAME@)
  45. set(PADDLELITE_FILENAME @PADDLELITE_FILENAME@)
  46. set(OPENCV_DIRECTORY "@OPENCV_DIRECTORY@")
  47. set(ORT_DIRECTORY "@ORT_DIRECTORY@")
  48. set(OPENVINO_DIRECTORY "@OPENVINO_DIRECTORY@")
  49. set(ULTRAINFER_LIBS "")
  50. set(ULTRAINFER_INCS "")
  51. list(APPEND ULTRAINFER_INCS ${CMAKE_CURRENT_LIST_DIR}/include)
  52. # Note(zhoushunjie): include some useful utils function
  53. include(${CMAKE_CURRENT_LIST_DIR}/utils.cmake)
  54. # Set C++11 as standard for the whole project
  55. if(NOT MSVC)
  56. set(CMAKE_CXX_STANDARD 11)
  57. set(CMAKE_CXX_FLAGS "-Wno-format")
  58. if(NEED_ABI0)
  59. add_definitions(-D_GLIBCXX_USE_CXX11_ABI=0)
  60. else()
  61. add_definitions(-D_GLIBCXX_USE_CXX11_ABI=1)
  62. endif()
  63. endif(NOT MSVC)
  64. # Still need omp while using UltraInfer static lib.
  65. # This is due to the use of openmp for Paddle Lite's
  66. # static library.
  67. find_library(FDLIB ${LIBRARY_NAME} ${CMAKE_CURRENT_LIST_DIR}/lib NO_DEFAULT_PATH)
  68. list(APPEND ULTRAINFER_LIBS ${FDLIB})
  69. if(ENABLE_ORT_BACKEND)
  70. if (ORT_DIRECTORY)
  71. set(ORT_LIB_PATH ${ORT_DIRECTORY}/lib)
  72. else()
  73. set(ORT_LIB_PATH ${CMAKE_CURRENT_LIST_DIR}/third_libs/install/onnxruntime/lib)
  74. endif()
  75. message(STATUS "The path of ONNXRuntime is ${ORT_LIB_PATH}.")
  76. find_library(ORT_LIB onnxruntime ${ORT_LIB_PATH} NO_DEFAULT_PATH)
  77. list(APPEND ULTRAINFER_LIBS ${ORT_LIB})
  78. endif()
  79. if(ENABLE_TVM_BACKEND)
  80. if(APPLE)
  81. set(TVM_RUNTIME_LIB ${CMAKE_CURRENT_LIST_DIR}/third_libs/install/tvm/lib/libtvm_runtime.dylib)
  82. else()
  83. set(TVM_RUNTIME_LIB ${CMAKE_CURRENT_LIST_DIR}/third_libs/install/tvm/lib/libtvm_runtime.so)
  84. endif()
  85. list(APPEND ULTRAINFER_LIBS ${TVM_RUNTIME_LIB})
  86. endif()
  87. if(ENABLE_PADDLE_BACKEND)
  88. string(REGEX MATCH "([0-9]+)\\.([0-9]+)\\.([0-9]+)" _ "${PADDLEINFERENCE_VERSION}")
  89. set(PADDLEINFERENCE_VERSION_MAJOR "${CMAKE_MATCH_1}")
  90. set(PADDLEINFERENCE_VERSION_MINOR "${CMAKE_MATCH_2}")
  91. set(PADDLEINFERENCE_VERSION_PATCH "${CMAKE_MATCH_3}")
  92. find_library(PADDLE_LIB paddle_inference ${CMAKE_CURRENT_LIST_DIR}/third_libs/install/paddle_inference/paddle/lib NO_DEFAULT_PATH)
  93. if(WIN32)
  94. if(PADDLEINFERENCE_VERSION_MAJOR EQUAL 2)
  95. set(DNNL_LIB "${CMAKE_CURRENT_LIST_DIR}/third_libs/install/paddle_inference/third_party/install/mkldnn/lib/mkldnn.lib")
  96. else()
  97. set(DNNL_LIB "${CMAKE_CURRENT_LIST_DIR}/third_libs/install/paddle_inference/third_party/install/onednn/lib/dnnl.lib")
  98. endif()
  99. set(IOMP_LIB "${CMAKE_CURRENT_LIST_DIR}/third_libs/install/paddle_inference/third_party/install/mklml/lib/libiomp5md.lib")
  100. elseif(APPLE)
  101. message(STATUS "No third parties libs(mkldnn and omp) need to link into paddle_inference on MacOS OSX.")
  102. else()
  103. if(PADDLEINFERENCE_VERSION_MAJOR EQUAL 2)
  104. set(DNNL_LIB "${CMAKE_CURRENT_LIST_DIR}/third_libs/install/paddle_inference/third_party/install/mkldnn/lib/libmkldnn.so.0")
  105. else()
  106. set(DNNL_LIB "${CMAKE_CURRENT_LIST_DIR}/third_libs/install/paddle_inference/third_party/install/onednn/lib/libdnnl.so.3")
  107. endif()
  108. set(IOMP_LIB "${CMAKE_CURRENT_LIST_DIR}/third_libs/install/paddle_inference/third_party/install/mklml/lib/libiomp5.so")
  109. endif()
  110. list(APPEND ULTRAINFER_LIBS ${PADDLE_LIB})
  111. if(EXISTS "${DNNL_LIB}")
  112. list(APPEND ULTRAINFER_LIBS ${DNNL_LIB} ${IOMP_LIB})
  113. endif()
  114. endif()
  115. if(ENABLE_OPENVINO_BACKEND)
  116. if (OPENVINO_DIRECTORY)
  117. set(OPENVINO_DIR ${OPENVINO_DIRECTORY})
  118. else()
  119. set(OPENVINO_DIR ${CMAKE_CURRENT_LIST_DIR}/third_libs/install/${OPENVINO_FILENAME}/runtime)
  120. endif()
  121. get_openvino_libs(${OPENVINO_DIR})
  122. message(STATUS "OPENVINO_LIBS = ${OPENVINO_LIBS}")
  123. list(APPEND ULTRAINFER_LIBS ${OPENVINO_LIBS})
  124. endif()
  125. if(ENABLE_RKNPU2_BACKEND)
  126. if(RKNN2_TARGET_SOC STREQUAL "RK356X")
  127. set(RKNPU2_LIB ${CMAKE_CURRENT_LIST_DIR}/third_libs/install/rknpu2_runtime/lib/librknnrt.so)
  128. elseif (RKNN2_TARGET_SOC STREQUAL "RK3588")
  129. set(RKNPU2_LIB ${CMAKE_CURRENT_LIST_DIR}/third_libs/install/rknpu2_runtime/lib/librknnrt.so)
  130. else ()
  131. message(FATAL_ERROR "RKNN2_TARGET_SOC is not set, ref value: RK356X or RK3588")
  132. endif()
  133. message(STATUS "The path of RKNPU2 is ${RKNPU2_LIB}.")
  134. list(APPEND ULTRAINFER_LIBS ${RKNPU2_LIB})
  135. endif()
  136. if(ENABLE_HORIZON_BACKEND)
  137. set(DNN_PATH ${CMAKE_CURRENT_LIST_DIR}/third_libs/install/dnn)
  138. set(APPSDK_PATH ${CMAKE_CURRENT_LIST_DIR}/third_libs/install/appsdk/appuser/)
  139. set(DNN_LIB_PATH ${DNN_PATH}/lib)
  140. set(APPSDK_LIB_PATH ${APPSDK_PATH}/lib/hbbpu)
  141. set(BPU_libs dnn cnn_intf hbrt_bernoulli_aarch64)
  142. link_directories(${DNN_LIB_PATH}
  143. ${APPSDK_PATH}/lib/hbbpu
  144. ${APPSDK_PATH}/lib)
  145. list(APPEND ULTRAINFER_LIBS ${BPU_libs})
  146. endif()
  147. if(ENABLE_LITE_BACKEND)
  148. set(LITE_DIR ${CMAKE_CURRENT_LIST_DIR}/third_libs/install/${PADDLELITE_FILENAME})
  149. # Linux/Mac/Win/...
  150. find_library(LITE_LIB paddle_full_api_shared ${LITE_DIR}/lib NO_DEFAULT_PATH)
  151. list(APPEND ULTRAINFER_LIBS ${LITE_LIB})
  152. endif()
  153. if(ENABLE_POROS_BACKEND)
  154. find_library(POROS_LIB poros ${CMAKE_CURRENT_LIST_DIR}/third_libs/install/poros/lib NO_DEFAULT_PATH)
  155. find_library(TORCH_LIB torch ${CMAKE_CURRENT_LIST_DIR}/third_libs/install/torch/lib NO_DEFAULT_PATH)
  156. set(TORCH_INCLUDE "${CMAKE_CURRENT_LIST_DIR}/third_libs/install/torch/include")
  157. list(APPEND ULTRAINFER_LIBS ${POROS_LIB} ${TORCH_LIB})
  158. list(APPEND ULTRAINFER_INCS ${CMAKE_CURRENT_LIST_DIR}/third_libs/install/poros/include ${TORCH_INCLUDE})
  159. endif()
  160. if(ENABLE_OM_BACKEND)
  161. set(LIB_PATH $ENV{NPU_HOST_LIB})
  162. if (NOT DEFINED ENV{NPU_HOST_LIB})
  163. set(LIB_PATH "/usr/local/Ascend/ascend-toolkit/latest/x86_64-linux/lib64")
  164. message(STATUS "set default LIB_PATH: ${LIB_PATH}")
  165. else()
  166. message(STATUS "set LIB_PATH: ${LIB_PATH}")
  167. endif ()
  168. set(INC_PATH $ENV{DDK_PATH})
  169. if (NOT DEFINED ENV{DDK_PATH})
  170. set(INC_PATH "/usr/local/Ascend/ascend-toolkit/latest")
  171. message(STATUS "set default INC_PATH: ${INC_PATH}")
  172. else()
  173. message(STATUS "set INC_PATH: ${INC_PATH}")
  174. endif ()
  175. set(NPU_libs ascendcl stdc++)
  176. link_directories(${LIB_PATH})
  177. list(APPEND ULTRAINFER_LIBS ${NPU_libs})
  178. list(APPEND ULTRAINFER_INCS ${INC_PATH}/runtime/include/)
  179. endif()
  180. if(WITH_GPU)
  181. if(NOT CUDA_DIRECTORY)
  182. set(CUDA_DIRECTORY "/usr/local/cuda")
  183. endif()
  184. if(WIN32)
  185. find_library(CUDA_LIB cudart ${CUDA_DIRECTORY}/lib/x64)
  186. find_library(NVJPEG_LIB nvjpeg ${CUDA_DIRECTORY}/lib/x64)
  187. else()
  188. find_library(CUDA_LIB cudart ${CUDA_DIRECTORY}/lib64)
  189. if(NOT BUILD_ON_JETSON)
  190. find_library(NVJPEG_LIB nvjpeg ${CUDA_DIRECTORY}/lib64)
  191. endif()
  192. endif()
  193. if(NOT CUDA_LIB)
  194. message(FATAL_ERROR "[UltraInfer] Cannot find library cudart in ${CUDA_DIRECTORY}, Please define CUDA_DIRECTORY, e.g -DCUDA_DIRECTORY=/path/to/cuda")
  195. endif()
  196. list(APPEND ULTRAINFER_LIBS ${CUDA_LIB} ${NVJPEG_LIB})
  197. list(APPEND ULTRAINFER_INCS ${CUDA_DIRECTORY}/include)
  198. if(ENABLE_TRT_BACKEND)
  199. if(BUILD_ON_JETSON)
  200. find_library(TRT_INFER_LIB nvinfer /usr/lib/aarch64-linux-gnu/)
  201. find_library(TRT_ONNX_LIB nvonnxparser /usr/lib/aarch64-linux-gnu/)
  202. find_library(TRT_PLUGIN_LIB nvinfer_plugin /usr/lib/aarch64-linux-gnu/)
  203. else()
  204. if(EXISTS ${CMAKE_CURRENT_LIST_DIR}/third_libs/install/tensorrt/)
  205. find_library(TRT_INFER_LIB nvinfer ${CMAKE_CURRENT_LIST_DIR}/third_libs/install/tensorrt/lib NO_DEFAULT_PATH)
  206. find_library(TRT_ONNX_LIB nvonnxparser ${CMAKE_CURRENT_LIST_DIR}/third_libs/install/tensorrt/lib NO_DEFAULT_PATH)
  207. find_library(TRT_PLUGIN_LIB nvinfer_plugin ${CMAKE_CURRENT_LIST_DIR}/third_libs/install/tensorrt/lib NO_DEFAULT_PATH)
  208. else()
  209. find_library(TRT_INFER_LIB nvinfer /usr/lib/x86_64-linux-gnu/)
  210. find_library(TRT_ONNX_LIB nvonnxparser /usr/lib/x86_64-linux-gnu/)
  211. find_library(TRT_PLUGIN_LIB nvinfer_plugin /usr/lib/x86_64-linux-gnu/)
  212. endif()
  213. endif()
  214. list(APPEND ULTRAINFER_LIBS ${TRT_INFER_LIB} ${TRT_ONNX_LIB} ${TRT_PLUGIN_LIB})
  215. endif()
  216. endif()
  217. if(ENABLE_VISION)
  218. if(OPENCV_DIRECTORY)
  219. set(OpenCV_DIR ${OPENCV_DIRECTORY})
  220. else()
  221. set(OpenCV_DIR ${CMAKE_CURRENT_LIST_DIR}/third_libs/install/${OPENCV_FILENAME})
  222. if(WIN32)
  223. set(OpenCV_DIR ${OpenCV_DIR}/build)
  224. endif()
  225. endif()
  226. message(STATUS "The path of OpenCV is ${OpenCV_DIR}.")
  227. # Win/Linux/Mac
  228. find_package(OpenCV REQUIRED PATHS ${OpenCV_DIR} NO_DEFAULT_PATH)
  229. list(APPEND ULTRAINFER_INCS ${OpenCV_INCLUDE_DIRS})
  230. list(APPEND ULTRAINFER_LIBS ${OpenCV_LIBS})
  231. if(ENABLE_FLYCV)
  232. include_directories(${CMAKE_CURRENT_LIST_DIR}/third_libs/install/flycv/include)
  233. set(FLYCV_LIB_DIR ${CMAKE_CURRENT_LIST_DIR}/third_libs/install/flycv/lib)
  234. find_library(FLYCV_LIB flycv_shared ${FLYCV_LIB_DIR} NO_DEFAULT_PATH)
  235. list(APPEND ULTRAINFER_LIBS ${FLYCV_LIB})
  236. endif()
  237. if(ENABLE_CVCUDA)
  238. find_library(CVCUDA_LIB cvcuda ${CMAKE_CURRENT_LIST_DIR}/third_libs/install/cvcuda/lib NO_DEFAULT_PATH)
  239. find_library(NVCV_TYPES_LIB nvcv_types ${CMAKE_CURRENT_LIST_DIR}/third_libs/install/cvcuda/lib NO_DEFAULT_PATH)
  240. list(APPEND ULTRAINFER_LIBS ${CVCUDA_LIB} ${NVCV_TYPES_LIB})
  241. list(APPEND ULTRAINFER_INCS ${CMAKE_CURRENT_LIST_DIR}/third_libs/install/cvcuda/include NO_DEFAULT_PATH)
  242. add_definitions(-DENABLE_CVCUDA)
  243. endif()
  244. endif()
  245. if (ENABLE_TEXT)
  246. # Add dependency libs later: Linux/Mac/Win/...
  247. find_library(FAST_TOKENIZER_LIB core_tokenizers ${CMAKE_CURRENT_LIST_DIR}/third_libs/install/fast_tokenizer/lib NO_DEFAULT_PATH)
  248. list(APPEND ULTRAINFER_LIBS ${FAST_TOKENIZER_LIB})
  249. list(APPEND ULTRAINFER_INCS ${CMAKE_CURRENT_LIST_DIR}/third_libs/install/fast_tokenizer/include)
  250. list(APPEND ULTRAINFER_INCS ${CMAKE_CURRENT_LIST_DIR}/third_libs/install/fast_tokenizer/third_party/include)
  251. endif()
  252. if(ENABLE_PADDLE2ONNX)
  253. if(NOT BUILD_PADDLE2ONNX)
  254. find_library(PADDLE2ONNX_LIB paddle2onnx ${CMAKE_CURRENT_LIST_DIR}/third_libs/install/paddle2onnx/lib NO_DEFAULT_PATH)
  255. list(APPEND ULTRAINFER_LIBS ${PADDLE2ONNX_LIB})
  256. endif()
  257. endif()
  258. if(WITH_KUNLUNXIN)
  259. list(APPEND ULTRAINFER_LIBS -lpthread -lrt -ldl)
  260. endif()
  261. remove_duplicate_libraries(ULTRAINFER_LIBS)
  262. include(${CMAKE_CURRENT_LIST_DIR}/summary.cmake)
  263. ultra_infer_summary()
  264. message(STATUS " DEPENDENCY_LIBS : ${ULTRAINFER_LIBS}")
  265. if (CMAKE_CXX_COMPILER_ID STREQUAL "GNU")
  266. if (CMAKE_CXX_COMPILER_VERSION VERSION_LESS "5.4.0")
  267. string(STRIP "${CMAKE_CXX_COMPILER_VERSION}" CMAKE_CXX_COMPILER_VERSION)
  268. message(FATAL_ERROR "[ERROR] UltraInfer require g++ version >= 5.4.0, but now your g++ version is ${CMAKE_CXX_COMPILER_VERSION}, this may cause failure! Use -DCMAKE_CXX_COMPILER to define path of your compiler.")
  269. endif()
  270. endif()
  271. function(install_ultra_infer_libraries DESTINATION_DIR)
  272. set(DYN_LIB_SUFFIX "*.so*")
  273. if(WIN32)
  274. set(DYN_LIB_SUFFIX "*.dll")
  275. elseif(APPLE)
  276. set(DYN_LIB_SUFFIX "*.dylib*")
  277. endif()
  278. if(UltraInfer_DIR)
  279. set(DYN_SEARCH_DIR ${UltraInfer_DIR})
  280. elseif(ULTRAINFER_INSTALL_DIR)
  281. set(DYN_SEARCH_DIR ${ULTRAINFER_INSTALL_DIR})
  282. else()
  283. message(FATAL_ERROR "Please set UltraInfer_DIR/ULTRAINFER_INSTALL_DIR before call install_ultra_infer_libraries.")
  284. endif()
  285. file(GLOB_RECURSE ALL_NEED_DYN_LIBS ${DYN_SEARCH_DIR}/lib/${DYN_LIB_SUFFIX})
  286. file(GLOB_RECURSE ALL_DEPS_DYN_LIBS ${DYN_SEARCH_DIR}/third_libs/${DYN_LIB_SUFFIX})
  287. if(ENABLE_VISION)
  288. # OpenCV
  289. file(GLOB_RECURSE ALL_OPENCV_DYN_LIBS ${OpenCV_DIR}/${DYN_LIB_SUFFIX})
  290. list(REMOVE_ITEM ALL_DEPS_DYN_LIBS ${ALL_OPENCV_DYN_LIBS})
  291. if(WIN32)
  292. file(GLOB OPENCV_DYN_LIBS ${OpenCV_DIR}/x64/vc15/bin/${DYN_LIB_SUFFIX})
  293. file(INSTALL ${OPENCV_DYN_LIBS} DESTINATION ${DESTINATION_DIR})
  294. else() # linux/mac
  295. file(GLOB OPENCV_DYN_LIBS ${OpenCV_DIR}/lib/${DYN_LIB_SUFFIX})
  296. file(INSTALL ${OPENCV_DYN_LIBS} DESTINATION ${DESTINATION_DIR})
  297. endif()
  298. # FlyCV
  299. if(ENABLE_FLYCV)
  300. file(GLOB_RECURSE ALL_FLYCV_DYN_LIBS ${FLYCV_LIB_DIR}/${DYN_LIB_SUFFIX})
  301. list(REMOVE_ITEM ALL_DEPS_DYN_LIBS ${ALL_FLYCV_DYN_LIBS})
  302. endif()
  303. endif()
  304. if(ENABLE_OPENVINO_BACKEND)
  305. # need plugins.xml for openvino backend
  306. set(OPENVINO_RUNTIME_BIN_DIR ${OPENVINO_DIR}/bin)
  307. file(GLOB OPENVINO_PLUGIN_XML ${OPENVINO_RUNTIME_BIN_DIR}/*.xml)
  308. file(INSTALL ${OPENVINO_PLUGIN_XML} DESTINATION ${DESTINATION_DIR})
  309. endif()
  310. # Install other libraries
  311. file(INSTALL ${ALL_NEED_DYN_LIBS} DESTINATION ${DESTINATION_DIR})
  312. file(INSTALL ${ALL_DEPS_DYN_LIBS} DESTINATION ${DESTINATION_DIR})
  313. endfunction()