algoLib/CMakeLists.txt
2026-03-22 10:51:27 +08:00

89 lines
3.2 KiB
CMake
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#设置CMake支持的最低版本
cmake_minimum_required(VERSION 3.5)
project(ZAlgo)
# OpenCV版本选择320 或 480
# 使用方法cmake -DOPENCV_VERSION=320 .. 或 cmake -DOPENCV_VERSION=480 ..
set(OPENCV_VERSION "320" CACHE STRING "OpenCV版本选择: 320 或 480")
set_property(CACHE OPENCV_VERSION PROPERTY STRINGS "320" "480")
set(DCMAKE_BUILD_SYSNAME Arm)
set(CMAKE_BUILD_ARCH aarch64)
set(CMAKE_C_COMPILER "aarch64-linux-gnu-gcc")
set(CMAKE_CXX_COMPILER "aarch64-linux-gnu-g++")
ADD_DEFINITIONS("-fPIC -O3")
ADD_DEFINITIONS("-fexceptions")
ADD_DEFINITIONS("-Wl,-Bsymbolic -lc -lm -Wunused-result")
SET(CMAKE_CXX_FLAGS "-fvisibility=hidden -fpermissive -std=c++14 -fno-use-cxa-atexit")
#out path configure_file
#设置库路径
SET(LIBRARY_OUTPUT_PATH ${CMAKE_CURRENT_SOURCE_DIR}/Arm/aarch64)
SET(EXECUTABLE_OUTPUT_PATH ${CMAKE_CURRENT_SOURCE_DIR}/arm/bin)
INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR}/../thirdParty/VzNLSDK/Inc)
INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR}/../thirdParty/eigen3)
# 根据OPENCV_VERSION选择不同的OpenCV路径
if(OPENCV_VERSION STREQUAL "320")
message(STATUS "使用 OpenCV 3.2.0")
INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR}/../thirdParty/OpenCV320/include)
add_definitions(-DOPENCV_VERSION_320)
elseif(OPENCV_VERSION STREQUAL "480")
message(STATUS "使用 OpenCV 4.8.0")
INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR}/../thirdParty/opencv480/include)
add_definitions(-DOPENCV_VERSION_480)
else()
message(FATAL_ERROR "不支持的OpenCV版本: ${OPENCV_VERSION},请使用 320 或 480")
endif()
INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR}/sourceCode/inc)
INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR}/sourceCode)
ADD_DEFINITIONS(-DSG_API_LIBRARY)
if(OPENCV_VERSION STREQUAL "320")
ADD_LIBRARY(baseAlgorithm SHARED sourceCode/dataFitting.cpp
sourceCode/SG_baseFunc.cpp
sourceCode/SG_clustering.cpp
sourceCode/SG_featureGrow.cpp
sourceCode/SG_lineFeature.cpp
sourceCode/SG_regionGrow.cpp
sourceCode/WD_noiseFilter.cpp
sourceCode/WD_watershed.cpp
)
ADD_LIBRARY(bagPositioning SHARED sourceCode/SG_bagPositioning.cpp)
ADD_LIBRARY(lapWeldDetection SHARED sourceCode/SX_lapWeldDetection.cpp)
ADD_LIBRARY(beltTearingDetection SHARED sourceCode/beltTearingDetection.cpp)
ADD_LIBRARY(workpieceCornerExtraction SHARED sourceCode/BQ_workpieceCornerExtraction.cpp)
ADD_LIBRARY(particleSizeMeasurement SHARED sourceCode/WD_particleSizeMeasure.cpp)
ADD_LIBRARY(wheelArchHeigthMeasure SHARED sourceCode/wheelArchHeigthMeasure.cpp)
ADD_LIBRARY(channelSpaceMeasure SHARED sourceCode/channelSpaceMeasure.cpp)
ADD_LIBRARY(rodAndBarDetection SHARED sourceCode/rodAndBarDetection.cpp)
ADD_LIBRARY(bagThreadPositioning SHARED sourceCode/bagThreadPositioning.cpp)
ADD_LIBRARY(workpieceHolePositioning SHARED sourceCode/workpieceHolePositioning.cpp)
# ADD_LIBRARY(motorStatorPosition SHARED sourceCode/motorStatorPosition.cpp)
elseif(OPENCV_VERSION STREQUAL "480")
ADD_LIBRARY(binocularMarkCam SHARED sourceCode/binocularMarkCam.cpp
sourceCode/aruco/aruco.cpp
sourceCode/aruco/aruco_calib.cpp
)
else()
message(FATAL_ERROR "不支持的OpenCV版本: ${OPENCV_VERSION},请使用 320 或 480")
endif()