add wust typr mpc and mutipule x

This commit is contained in:
cyy_mac
2026-03-27 03:41:42 +08:00
parent 2c64655fae
commit 7dcb53bb77
192 changed files with 29571 additions and 9 deletions

View 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)

View 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
)

View 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()