#指定cmake最低版本要求,这是必须的 cmake_minimum_required(VERSION 3.20) # 设置指定的C++编译器版本是必须的,如果不设置,或者为OFF,则指定版本不可用时,会使用上一版本。 set(CMAKE_CXX_STANDARD_REQUIRED ON) # 指定为C++20 版本 set(CMAKE_CXX_STANDARD 20) set(PROJ_NAME "SEMS-data-collection") set(PROJ_VERSION_MAJOR 0) set(PROJ_VERSION_MINOR 0) set(PROJ_VERSION_PATCH 3.20241008_alpha) #设置项目名字为HelloWorld project(${PROJ_NAME}) #打开调试模式 add_definitions("-Wall -g") #设置头文件所在的文件夹 include_directories(${PROJECT_SOURCE_DIR}/include) #要链接的库文件所在的路径 link_directories (${PROJECT_SOURCE_DIR}/lib) 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") add_library(UtilsLIB "${PROJECT_SOURCE_DIR}/src/utils.cpp") link_directories (${PROJECT_SOURCE_DIR}/../CompliteEnv/Python37) #编译${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) target_link_libraries(${PROJ_NAME} PUBLIC SpectralCameraLib) target_link_libraries(${PROJ_NAME} PUBLIC SpecSensor) target_link_libraries(${PROJ_NAME} PUBLIC VisibleLightCameraLIB) target_link_libraries(${PROJ_NAME} PUBLIC DisplayLib) target_link_libraries(${PROJ_NAME} PUBLIC opencv_core490 opencv_highgui490 opencv_imgproc490 opencv_photo490 opencv_imgcodecs490 opencv_video490 opencv_videoio490) target_link_libraries(${PROJ_NAME} PUBLIC DataPreprocessLib) target_link_libraries(${PROJ_NAME} PUBLIC UtilsLIB) # 设置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()