#设置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/libs) 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/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) 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()