# 顶层主CMakeLists #最低版本 cmake_minimum_required(VERSION 3.10) #项目名称 project(ProjectName VERSION 0.0.1 LANGUAGES CXX) #设置C++标准 set(CMAKE_C_STANDARD 11) set(CMAKE_C_STANDARD_REQUIRED ON) set(CMAKE_CXX_STANDARD 17) set(CMAKE_CXX_STANDARD_REQUIRED ON) set(CMAKE_CXX_EXTENSIONS OFF) #设置构建类型,默认为Release if(NOT CMAKE_BUILD_TYPE) set(CMAKE_BUILD_TYPE Release) endif() #添加目录 # add_subdirectory(${PROJECT_SOURCE_DIR}/src) # add_subdirectory(${PROJECT_SOURCE_DIR}/tests) #输出目录 set(EXECUTABLE_OUTPUT_PATH ${PROJECT_BINARY_DIR}/bin) set(LIBRARY_OUTPUT_PATH ${PROJECT_BINARY_DIR}/lib) # dependents # find_package(OpenCV REQUIRED) # find_package(Boost 1.89.0 REQUIRED) #头文件搜索路径 # include_directories(include) # source files # aux_source_directory(src SRC) set(SRC ${PROJECT_SOURCE_DIR}/src/main.cpp ) # exe add_executable(${PROJECT_NAME} ${SRC}) target_include_directories(${PROJECT_NAME} PRIVATE include) #源文件 # target_sources(${PROJECT_NAME} PRIVATE ${SRC}) # -----link # target_link_libraries(${PROJECT_NAME} ${OpenCV_LIBS}) # 配置不同构建类型的编译选项 if(CMAKE_BUILD_TYPE STREQUAL "Debug") set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -Wall -Werror -g") elseif(CMAKE_BUILD_TYPE STREQUAL "Release") set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -O3 -DNDEBUG") endif() # -----test # 查找测试源文件(假设存在测试目录) if(EXISTS ${PROJECT_SOURCE_DIR}/test) aux_source_directory(test TEST_SOURCES) endif() # -----install # 安装相关设置(可根据需求调整) install(TARGETS ${PROJECT_NAME} RUNTIME DESTINATION bin LIBRARY DESTINATION lib ARCHIVE DESTINATION include) install(DIRECTORY include/ DESTINATION include)