SEMS-data-collection/CMakeLists.txt

82 lines
2.6 KiB
CMake
Raw Normal View History

2024-09-11 17:14:49 +08:00
#指定cmake最低版本要求这是必须的
cmake_minimum_required(VERSION 3.20)
# 设置指定的C++编译器版本是必须的如果不设置或者为OFF则指定版本不可用时会使用上一版本。
set(CMAKE_CXX_STANDARD_REQUIRED ON)
# 指定为C++23 版本
set(CMAKE_CXX_STANDARD 23)
2024-09-11 17:14:49 +08:00
set(PROJ_NAME "SEMS-data-collection")
2024-09-11 17:14:49 +08:00
set(PROJ_VERSION_MAJOR 0)
set(PROJ_VERSION_MINOR 0)
set(PROJ_VERSION_PATCH 4.20241011_alpha)
2024-09-11 17:14:49 +08:00
#设置项目名字为HelloWorld
project(${PROJ_NAME})
#打开调试模式
add_definitions("-Wall -g")
#设置头文件所在的文件夹
include_directories(${PROJECT_SOURCE_DIR}/include)
#要链接的库文件所在的路径
2024-09-12 16:17:42 +08:00
link_directories (${PROJECT_SOURCE_DIR}/lib)
2024-09-11 17:14:49 +08:00
add_library(SpectralCameraLib "${PROJECT_SOURCE_DIR}/src/spectral_camera.cpp")
add_library(DisplayLib "${PROJECT_SOURCE_DIR}/src/display.cpp")
# add_library(DataPreprocessLib "${PROJECT_SOURCE_DIR}/src/data_preprocess.cpp")
# add_library(VisibleLightCameraLIB "${PROJECT_SOURCE_DIR}/src/visible_light_camera.cpp")
2024-10-08 18:14:34 +08:00
add_library(UtilsLIB "${PROJECT_SOURCE_DIR}/src/utils.cpp")
2024-09-11 17:14:49 +08:00
# link_directories (${PROJECT_SOURCE_DIR}/../CompliteEnv/Python37)
2024-09-11 17:14:49 +08:00
#编译${PROJECT_SOURCE_DIR}/src/main.cpp在这个cpp文件为名为HelloWorld可执行文件
add_executable(${PROJ_NAME} "${PROJECT_SOURCE_DIR}/src/main.cpp")
#链接动态链接库
# target_link_libraries(${PROJ_NAME} PUBLIC yaml-cpp)
2024-09-11 17:14:49 +08:00
target_link_libraries(${PROJ_NAME} PUBLIC SpectralCameraLib)
target_link_libraries(${PROJ_NAME} PUBLIC SpecSensor)
# target_link_libraries(${PROJ_NAME} PUBLIC VisibleLightCameraLIB)
2024-09-11 17:14:49 +08:00
target_link_libraries(${PROJ_NAME} PUBLIC DisplayLib)
target_link_libraries(${PROJ_NAME} PUBLIC opencv_core490 opencv_highgui490 opencv_imgproc490)
# target_link_libraries(${PROJ_NAME} PUBLIC DataPreprocessLib)
2024-10-08 18:14:34 +08:00
target_link_libraries(${PROJ_NAME} PUBLIC UtilsLIB)
2024-09-12 16:17:42 +08:00
# 设置RPATH运行时库搜索路径(仅linux下可用)
# set_target_properties(${PROJ_NAME} PROPERTIES
# INSTALL_RPATH "$ORIGIN/../lib"
# )
# set(CMAKE_INSTALL_RPATH "$origin/../lib")
# 安装规则
install(TARGETS ${PROJECT_NAME} DESTINATION .)
# install(DIRECTORY lib/* DESTINATION .)
install(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/lib/
DESTINATION .
USE_SOURCE_PERMISSIONS
FILES_MATCHING PATTERN "*")
# 包括 CPack 打包配置
# include(InstallRequiredSystemLibraries)
if (CMAKE_CURRENT_SOURCE_DIR STREQUAL CMAKE_SOURCE_DIR)
set(CPACK_PACKAGE_VERSION_MAJOR "${PROJ_VERSION_MAJOR}")
set(CPACK_PACKAGE_VERSION_MINOR "${PROJ_VERSION_MINOR}")
set(CPACK_PACKAGE_VERSION_PATCH "${PROJ_VERSION_PATCH}")
set(CPACK_GENERATOR "ZIP")
include(CPack)
endif()