Files
material_box_storage_detect…/image_capture/cmake/PercipioSDK.cmake
2026-01-06 10:49:45 +08:00

56 lines
1.9 KiB
CMake

# Camera SDK Paths
set(CAMPORT3_ROOT ${CMAKE_CURRENT_SOURCE_DIR}/third_party/percipio)
set(CAMPORT3_LIB_DIR ${CAMPORT3_ROOT}/lib/win/x64)
# Import tycam library (MinGW)
add_library(tycam SHARED IMPORTED)
if(EXISTS ${CAMPORT3_LIB_DIR}/libtycam.dll.a)
set_target_properties(tycam PROPERTIES
IMPORTED_LOCATION ${CAMPORT3_LIB_DIR}/tycam.dll
IMPORTED_IMPLIB ${CAMPORT3_LIB_DIR}/libtycam.dll.a
)
message(STATUS "Using libtycam.dll.a (MinGW compatible)")
elseif(EXISTS ${CAMPORT3_LIB_DIR}/tycam.lib)
set_target_properties(tycam PROPERTIES
IMPORTED_LOCATION ${CAMPORT3_LIB_DIR}/tycam.dll
IMPORTED_IMPLIB ${CAMPORT3_LIB_DIR}/tycam.lib
)
message(STATUS "Using tycam.lib (may require conversion to .dll.a if linking fails)")
else()
message(FATAL_ERROR "Neither libtycam.dll.a nor tycam.lib found in ${CAMPORT3_LIB_DIR}")
endif()
# Static API Library Sources
set(CPP_API_SOURCES
${CAMPORT3_ROOT}/sample_v2/cpp/Device.cpp
${CAMPORT3_ROOT}/sample_v2/cpp/Frame.cpp
${CAMPORT3_ROOT}/common/MatViewer.cpp
${CAMPORT3_ROOT}/common/TYThread.cpp
${CAMPORT3_ROOT}/common/crc32.cpp
${CAMPORT3_ROOT}/common/json11.cpp
${CAMPORT3_ROOT}/common/ParametersParse.cpp
${CAMPORT3_ROOT}/common/huffman.cpp
${CAMPORT3_ROOT}/common/ImageSpeckleFilter.cpp
${CAMPORT3_ROOT}/common/DepthInpainter.cpp
)
add_library(cpp_api_lib STATIC ${CPP_API_SOURCES})
target_include_directories(cpp_api_lib PUBLIC
${CAMPORT3_ROOT}/include
${CAMPORT3_ROOT}/sample_v2/hpp
${CAMPORT3_ROOT}/common
${OpenCV_INCLUDE_DIRS}
)
# Fix for MinGW: Ensure standard C++ headers are found
if(MINGW)
target_include_directories(cpp_api_lib SYSTEM PUBLIC
${CMAKE_CXX_IMPLICIT_INCLUDE_DIRECTORIES}
)
endif()
target_link_libraries(cpp_api_lib PUBLIC ${OpenCV_LIBS})
target_link_directories(cpp_api_lib PUBLIC ${OpenCV_LIB_DIRS})