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)