140 lines
4.5 KiB
CMake
Executable File
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")
|