add wust typr mpc and mutipule x
This commit is contained in:
147
wust_vision-main/cmake/FindHikSDK.cmake
Normal file
147
wust_vision-main/cmake/FindHikSDK.cmake
Normal file
@@ -0,0 +1,147 @@
|
||||
# --------------------------------------------------------------------------------------------
|
||||
# FindHikSDK.cmake
|
||||
#
|
||||
# This module finds the HikRobot / Hikvision MVS Camera SDK.
|
||||
#
|
||||
# It defines the following variables:
|
||||
# HikSDK_FOUND
|
||||
# HikSDK_INCLUDE_DIR
|
||||
# HikSDK_LIB
|
||||
#
|
||||
# And the following imported target:
|
||||
# hiksdk
|
||||
# --------------------------------------------------------------------------------------------
|
||||
|
||||
# =========================
|
||||
# 1. SDK 根路径
|
||||
# =========================
|
||||
if(WIN32)
|
||||
set(HikSDK_Path "$ENV{MVCAM_COMMON_RUNENV}")
|
||||
else()
|
||||
set(HikSDK_Path "$ENV{MVCAM_SDK_PATH}")
|
||||
endif()
|
||||
|
||||
if(NOT HikSDK_Path OR HikSDK_Path STREQUAL "")
|
||||
message(STATUS "HikSDK: MVCAM_SDK_PATH is not set")
|
||||
set(HikSDK_FOUND FALSE)
|
||||
return()
|
||||
endif()
|
||||
|
||||
# =========================
|
||||
# 2. 查找头文件
|
||||
# =========================
|
||||
find_path(
|
||||
HikSDK_INCLUDE_DIR
|
||||
NAMES
|
||||
MvCameraControl.h
|
||||
CameraParams.h
|
||||
PixelType.h
|
||||
MvErrorDefine.h
|
||||
MvISPErrorDefine.h
|
||||
PATHS
|
||||
"${HikSDK_Path}/include"
|
||||
"${HikSDK_Path}/Includes"
|
||||
NO_DEFAULT_PATH
|
||||
)
|
||||
|
||||
# =========================
|
||||
# 3. 查找库文件(关键修复点)
|
||||
# =========================
|
||||
if(UNIX)
|
||||
find_library(
|
||||
HikSDK_LIB
|
||||
NAMES
|
||||
MvCameraControl
|
||||
libMvCameraControl.so
|
||||
PATHS
|
||||
"${HikSDK_Path}/lib"
|
||||
"${HikSDK_Path}/lib64"
|
||||
"${HikSDK_Path}/lib/arm"
|
||||
"${HikSDK_Path}/lib/arm64"
|
||||
"${HikSDK_Path}/lib/aarch64"
|
||||
"${HikSDK_Path}/lib/x86"
|
||||
"${HikSDK_Path}/lib/x64"
|
||||
"${HikSDK_Path}/lib/64"
|
||||
"${HikSDK_Path}/lib/32"
|
||||
NO_DEFAULT_PATH
|
||||
)
|
||||
endif()
|
||||
|
||||
# =========================
|
||||
# 4. Windows(完整但不影响 Linux)
|
||||
# =========================
|
||||
if(WIN32)
|
||||
find_library(
|
||||
HikSDK_LIB
|
||||
NAMES MvCameraControl
|
||||
PATHS
|
||||
"${HikSDK_Path}/Libraries"
|
||||
"${HikSDK_Path}/Libraries/win64"
|
||||
"${HikSDK_Path}/Libraries/win32"
|
||||
NO_DEFAULT_PATH
|
||||
)
|
||||
|
||||
find_file(
|
||||
HikSDK_DLL
|
||||
NAMES MvCameraControl.dll
|
||||
PATHS
|
||||
"${HikSDK_Path}/Runtime"
|
||||
"C:/Program Files (x86)/Common Files/MVS/Runtime"
|
||||
NO_DEFAULT_PATH
|
||||
)
|
||||
endif()
|
||||
|
||||
# =========================
|
||||
# 5. 创建导入库目标
|
||||
# =========================
|
||||
if(HikSDK_LIB AND HikSDK_INCLUDE_DIR)
|
||||
|
||||
if(NOT TARGET HikSDK::HikSDK)
|
||||
|
||||
add_library(HikSDK::HikSDK SHARED IMPORTED GLOBAL)
|
||||
|
||||
if(WIN32)
|
||||
set_target_properties(HikSDK::HikSDK PROPERTIES
|
||||
IMPORTED_IMPLIB "${HikSDK_LIB}"
|
||||
IMPORTED_LOCATION "${HikSDK_DLL}"
|
||||
INTERFACE_INCLUDE_DIRECTORIES "${HikSDK_INCLUDE_DIR}"
|
||||
)
|
||||
else()
|
||||
set_target_properties(HikSDK::HikSDK PROPERTIES
|
||||
IMPORTED_LOCATION "${HikSDK_LIB}"
|
||||
INTERFACE_INCLUDE_DIRECTORIES "${HikSDK_INCLUDE_DIR}"
|
||||
)
|
||||
endif()
|
||||
|
||||
endif()
|
||||
|
||||
endif()
|
||||
set(HikSDK_LIBS HikSDK::HikSDK)
|
||||
set(HikSDK_INCLUDE_DIRS ${HikSDK_INCLUDE_DIR})
|
||||
|
||||
|
||||
# =========================
|
||||
# 6. 标准 find_package 处理
|
||||
# =========================
|
||||
include(FindPackageHandleStandardArgs)
|
||||
|
||||
find_package_handle_standard_args(
|
||||
HikSDK
|
||||
REQUIRED_VARS HikSDK_LIB HikSDK_INCLUDE_DIR
|
||||
)
|
||||
|
||||
# =========================
|
||||
# 7. 调试输出(很重要)
|
||||
# =========================
|
||||
if(HikSDK_FOUND)
|
||||
message(STATUS "HikSDK found:")
|
||||
message(STATUS " Include dir : ${HikSDK_INCLUDE_DIR}")
|
||||
message(STATUS " Library : ${HikSDK_LIB}")
|
||||
else()
|
||||
message(STATUS "HikSDK NOT found")
|
||||
endif()
|
||||
|
||||
set(HikSDK_LIBS hiksdk)
|
||||
set(HikSDK_INCLUDE_DIRS ${HikSDK_INCLUDE_DIR})
|
||||
|
||||
mark_as_advanced(HikSDK_LIB HikSDK_INCLUDE_DIR HikSDK_DLL)
|
||||
88
wust_vision-main/cmake/FindOrt.cmake
Normal file
88
wust_vision-main/cmake/FindOrt.cmake
Normal file
@@ -0,0 +1,88 @@
|
||||
# --------------------------------------------------------------------------------------------
|
||||
# This file is used to find the ONNX-Runtime SDK, which provides the following variables:
|
||||
#
|
||||
# Cache Variables:
|
||||
# - Ort_HEADER_FILES: Names of SDK header files
|
||||
#
|
||||
# Advanced Variables:
|
||||
# - Ort_INCLUDE_DIR: Directory where SDK header files are located
|
||||
# - Ort_LIB: Path to the SDK library file (import library on Windows, shared library
|
||||
# on Linux)
|
||||
# - Ort_DLL: Path to the SDK dynamic library file (only on Windows)
|
||||
#
|
||||
# Local Variables:
|
||||
# - Ort_LIBS: CMake target name for the SDK, which is "onnxruntime"
|
||||
# - Ort_INCLUDE_DIRS: Directory where SDK header files are located
|
||||
# --------------------------------------------------------------------------------------------
|
||||
|
||||
# ------------------------------------------------------------------------------
|
||||
# find onnxruntime root path
|
||||
# ------------------------------------------------------------------------------
|
||||
if(NOT ort_root_path)
|
||||
set(ort_root_path "/usr/local")
|
||||
endif()
|
||||
|
||||
# ------------------------------------------------------------------------------
|
||||
# find onnxruntime include directory
|
||||
# ------------------------------------------------------------------------------
|
||||
set(Ort_HEADER_FILES
|
||||
cpu_provider_factory.h onnxruntime_run_options_config_keys.h
|
||||
onnxruntime_c_api.h onnxruntime_session_options_config_keys.h
|
||||
onnxruntime_cxx_api.h provider_options.h
|
||||
onnxruntime_cxx_inline.h
|
||||
CACHE INTERNAL "ONNX Runtime header files"
|
||||
)
|
||||
|
||||
find_path(
|
||||
Ort_INCLUDE_DIR
|
||||
PATHS "${ort_root_path}/include"
|
||||
NAMES ${Ort_HEADER_FILES}
|
||||
NO_DEFAULT_PATH
|
||||
)
|
||||
|
||||
# ------------------------------------------------------------------------------
|
||||
# find onnxruntime library file
|
||||
# ------------------------------------------------------------------------------
|
||||
find_library(
|
||||
Ort_LIB
|
||||
NAMES "libonnxruntime.so"
|
||||
PATHS "${ort_root_path}/lib"
|
||||
NO_DEFAULT_PATH
|
||||
)
|
||||
|
||||
# ------------------------------------------------------------------------------
|
||||
# create imported target: onnxruntime
|
||||
# ------------------------------------------------------------------------------
|
||||
if(NOT TARGET onnxruntime)
|
||||
add_library(onnxruntime SHARED IMPORTED)
|
||||
set_target_properties(onnxruntime PROPERTIES
|
||||
IMPORTED_LOCATION "${Ort_LIB}"
|
||||
INTERFACE_INCLUDE_DIRECTORIES "${Ort_INCLUDE_DIR}"
|
||||
)
|
||||
endif()
|
||||
|
||||
mark_as_advanced(Ort_INCLUDE_DIR Ort_LIB)
|
||||
|
||||
# ------------------------------------------------------------------------------
|
||||
# set onnxruntime cmake variables and version variables
|
||||
# ------------------------------------------------------------------------------
|
||||
set(Ort_LIBS "onnxruntime")
|
||||
set(Ort_INCLUDE_DIRS "${Ort_INCLUDE_DIR}")
|
||||
|
||||
if(Ort_INCLUDE_DIR)
|
||||
file(STRINGS "${Ort_INCLUDE_DIR}/onnxruntime_c_api.h" Ort_VERSION
|
||||
REGEX "#define ORT_API_VERSION [0-9]+"
|
||||
)
|
||||
string(REGEX REPLACE "#define ORT_API_VERSION ([0-9]+)" "1.\\1" Ort_VERSION "${Ort_VERSION}")
|
||||
endif()
|
||||
|
||||
# ------------------------------------------------------------------------------
|
||||
# handle the package
|
||||
# ------------------------------------------------------------------------------
|
||||
include(FindPackageHandleStandardArgs)
|
||||
|
||||
find_package_handle_standard_args(
|
||||
Ort
|
||||
VERSION_VAR Ort_VERSION
|
||||
REQUIRED_VARS Ort_LIB Ort_INCLUDE_DIR
|
||||
)
|
||||
66
wust_vision-main/cmake/FindTensorRT.cmake
Normal file
66
wust_vision-main/cmake/FindTensorRT.cmake
Normal file
@@ -0,0 +1,66 @@
|
||||
# FindTensorRT.cmake -- Locate NVIDIA TensorRT
|
||||
|
||||
include(FindPackageHandleStandardArgs)
|
||||
|
||||
# TensorRT root
|
||||
if (DEFINED TensorRT_ROOT)
|
||||
list(APPEND _TensorRT_SEARCH_PATHS
|
||||
${TensorRT_ROOT}
|
||||
"$ENV{TensorRT_ROOT}"
|
||||
)
|
||||
endif()
|
||||
list(APPEND _TensorRT_SEARCH_PATHS /usr /usr/local)
|
||||
|
||||
# Header
|
||||
find_path(TensorRT_INCLUDE_DIR
|
||||
NAMES NvInfer.h
|
||||
PATHS ${_TensorRT_SEARCH_PATHS}
|
||||
PATH_SUFFIXES include
|
||||
)
|
||||
|
||||
# Core library
|
||||
find_library(TensorRT_LIBRARY
|
||||
NAMES nvinfer
|
||||
PATHS ${_TensorRT_SEARCH_PATHS}
|
||||
PATH_SUFFIXES lib lib64 lib/x64
|
||||
)
|
||||
|
||||
find_package_handle_standard_args(TensorRT
|
||||
REQUIRED_VARS TensorRT_INCLUDE_DIR TensorRT_LIBRARY
|
||||
)
|
||||
|
||||
if (TensorRT_FOUND)
|
||||
set(TensorRT_INCLUDE_DIRS ${TensorRT_INCLUDE_DIR})
|
||||
set(TensorRT_LIBRARIES ${TensorRT_LIBRARY})
|
||||
|
||||
# Optional components
|
||||
foreach(_comp IN ITEMS nvinfer_plugin nvonnxparser nvparsers)
|
||||
find_library(TensorRT_${_comp}_LIBRARY
|
||||
NAMES ${_comp}
|
||||
PATHS ${_TensorRT_SEARCH_PATHS}
|
||||
PATH_SUFFIXES lib lib64 lib/x64
|
||||
)
|
||||
if (TensorRT_${_comp}_LIBRARY)
|
||||
list(APPEND TensorRT_LIBRARIES ${TensorRT_${_comp}_LIBRARY})
|
||||
endif()
|
||||
endforeach()
|
||||
|
||||
# Core target
|
||||
add_library(TensorRT::TensorRT UNKNOWN IMPORTED)
|
||||
set_target_properties(TensorRT::TensorRT PROPERTIES
|
||||
INTERFACE_INCLUDE_DIRECTORIES "${TensorRT_INCLUDE_DIRS}"
|
||||
IMPORTED_LOCATION "${TensorRT_LIBRARY}"
|
||||
)
|
||||
|
||||
# Component targets
|
||||
foreach(_comp IN ITEMS nvinfer_plugin nvonnxparser nvparsers)
|
||||
if (TensorRT_${_comp}_LIBRARY)
|
||||
add_library(TensorRT::${_comp} UNKNOWN IMPORTED)
|
||||
set_target_properties(TensorRT::${_comp} PROPERTIES
|
||||
IMPORTED_LOCATION "${TensorRT_${_comp}_LIBRARY}"
|
||||
)
|
||||
endif()
|
||||
endforeach()
|
||||
|
||||
message(STATUS "Found TensorRT at ${TensorRT_INCLUDE_DIR}")
|
||||
endif()
|
||||
Reference in New Issue
Block a user