image_framework_ymj/CMakeLists.txt
2024-12-06 16:45:41 +08:00

140 lines
4.5 KiB
CMake
Executable File

cmake_minimum_required(VERSION 3.24)
include(${CMAKE_SOURCE_DIR}/cmake/cmakebase.cmake)
include(${CMAKE_SOURCE_DIR}/cmake/project.cmake)
include(${CMAKE_SOURCE_DIR}/cmake/ss928.cmake)
message(STATUS "========================")
message(STATUS ${CMAKE_SYSTEM_NAME})
message(STATUS ${CMAKE_SYSTEM_PROCESSOR})
message(STATUS "========================")
set(CMAKE_CXX_STANDARD 14) # 设置使用C++11标准
set(CMAKE_CXX_STANDARD_REQUIRED ON) # 确保编译器遵循C++11标准
PROJECT(image_framework)
set(CMAKE_SOURCE_DIR "./")
#set(_GLIBCXX_USE_CXX11_ABI 1)
# 检查Opencv版本
find_package(OpenCV 4.10 REQUIRED)
if(NOT OpenCV_FOUND)
message(FATAL_ERROR "OpenCV > 4.10 not found.")
endif()
MESSAGE(${OpenCV_VERSION})
message(STATUS "OpenCV include dirs: ${OpenCV_INCLUDE_DIRS}")
message(STATUS "OpenCV library dirs: ${OpenCV_LIBRARY_DIRS}")
message(STATUS "OpenCV libraries: ${OpenCV_LIBRARIES}")
set(OPENGL_opengl_LIBRARY /usr/lib/aarch64-linux-gnu/libOpenGL.so)
set(OPENGL_glx_LIBRARY /usr/lib/aarch64-linux-gnu/libGLX.so)
set(X11_X11_LIB /usr/lib/aarch64-linux-gnu/libX11.so)
find_package(Open3D REQUIRED)
if(NOT Open3D_FOUND)
message(FATAL_ERROR "Open3D not found.")
endif()
MESSAGE(${Open3D_VERSION})
message(STATUS "Open3D include dirs: ${Open3D_INCLUDE_DIRS}")
message(STATUS "Open3D library dirs: ${Open3D_LIBRARY_DIRS}")
message(STATUS "Open3D libraries: ${Open3D_LIBRARIES}")
# 检测操作系统和架构
# if(CMAKE_SYSTEM_NAME STREQUAL "Linux")
# if(CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
# set(PLATFORM "linux/x64")
# elseif(CMAKE_SYSTEM_PROCESSOR STREQUAL "aarch64")
# set(PLATFORM "linux/aarch64")
# else()
# message(FATAL_ERROR "Unsupported architecture on Linux")
# endif()
# elseif(CMAKE_SYSTEM_NAME STREQUAL "Windows")
# if(CMAKE_SIZEOF_VOID_P EQUAL 8)
# set(PLATFORM "windows/x64")
# else()
# message(FATAL_ERROR "Unsupported architecture on Windows")
# endif()
# else()
# message(FATAL_ERROR "Unsupported operating system")
# endif()
# 输出当前系统和架构
message(STATUS "operating system: ${PLATFORM}")
# 设置输出目录
SET(CMAKE_RUNTIME_OUTPUT_DIRECTORY "${CMAKE_SOURCE_DIR}/output/")
# 设置头文件目录
INCLUDE_DIRECTORIES(
"/opt/HuarayTech/MVviewer/include/"
/usr/local/include
${CMAKE_SOURCE_DIR}/include/
${CMAKE_SOURCE_DIR}/include/open3d/
${CMAKE_SOURCE_DIR}/include/open3d/3rdparty
${CMAKE_SOURCE_DIR}/include/eigen3/
${CMAKE_SOURCE_DIR}/include/opencv4.10/
${CMAKE_SOURCE_DIR}/include/Livox/
${CMAKE_SOURCE_DIR}/image_framework/
${CMAKE_SOURCE_DIR}/image_framework/algorithm/
${CMAKE_SOURCE_DIR}/image_framework/driver/camera/
${CMAKE_SOURCE_DIR}/image_framework/driver/livox/
${CMAKE_SOURCE_DIR}/image_framework/plugins/
${CMAKE_SOURCE_DIR}/image_framework/thead/
${CMAKE_SOURCE_DIR}/image_framework/utils/Ini
${CMAKE_SOURCE_DIR}/image_framework/utils/Log
)
# 设置依赖库 .a
LINK_DIRECTORIES(
/usr/lib/aarch64-linux-gnu
)
# fpermissive
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fpermissive")
# 设置原文件
aux_source_directory(${CMAKE_SOURCE_DIR}/image_framework/ CORE_LIST)
aux_source_directory(${CMAKE_SOURCE_DIR}/image_framework/algorithm/ CORE_LIST)
aux_source_directory(${CMAKE_SOURCE_DIR}/image_framework/plugins CORE_LIST)
aux_source_directory(${CMAKE_SOURCE_DIR}/image_framework/thead CORE_LIST)
aux_source_directory(${CMAKE_SOURCE_DIR}/image_framework/driver/camera CORE_LIST)
aux_source_directory(${CMAKE_SOURCE_DIR}/image_framework/driver/livox CORE_LIST)
aux_source_directory(${CMAKE_SOURCE_DIR}/image_framework/utils/Ini CORE_LIST)
aux_source_directory(${CMAKE_SOURCE_DIR}/image_framework/utils/Log CORE_LIST)
add_executable(${PROJECT_NAME} ${CORE_LIST})
set_target_properties(${PROJECT_NAME} PROPERTIES LINK_FLAGS "-Wl,-rpath-link,/usr/lib/aarch64-linux-gnu")
target_link_libraries(
${PROJECT_NAME}
${SYSTEM_LINK_LIB}
${OpenCV_LIBS}
livox_sdk_static
pthread
dl
libstdc++.so.6
Open3D::Open3D
libxcb.so.1
libXau.so.6
libXdmcp.so.6
libGLdispatch.so.0
libbsd.so
libbsd.so.0
libbsd.so.0.10.0
)
set(OUTPUT_LIB_DIR ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/lib)
add_custom_target(cpfiles ALL DEPENDS ${PROJECT_NAME})
add_library(DetectDriver MODULE ${CORE_LIST})
target_link_libraries(
DetectDriver
${SYSTEM_LINK_LIB}
${OpenCV_LIBS}
livox_sdk_static
pthread
dl
)
set_property(TARGET DetectDriver PROPERTY POSITION_INDEPENDENT_CODE ON) #添加-fPIC
set_target_properties(DetectDriver PROPERTIES LINK_FLAGS "-fPIC")