#限定CMake的版本 cmake_minimum_required (VERSION 3.5) project(rootproject) set(CHECK_WORK_Value "FOG") if (DEFINED WORK) set(CHECK_WORK_Value ${WORK}) endif() # 根据宏设置编译时宏 add_definitions(-DCHECK_WORK="${CHECK_WORK_Value}") message(STATUS "CHECK_WORK: ${CHECK_WORK_Value}") find_package( OpenCV REQUIRED ) message(STATUS "oPENCV Library status:") message(STATUS ">version:${OpenCV_VERSION}") message(STATUS "Include:${OpenCV_INCLUDE_DIRS}") set(CMAKE_BUILD_TYPE "release") set(CMAKE_CXX_STANDARD 17) set(CMAKE_CXX_STANDARD_REQUIRED ON) # 要求编译器支持 C++17 set(CMAKE_CXX_EXTENSIONS OFF) # 禁用 GNU 特定的扩展 set(CMAKE_EXPORT_COMPILE_COMMANDS ON) #set(CUDA_NVCC_FLAGS ${CUDA_NVCC_FLAGS}; --default-stream per-thread) add_definitions(-DCUDA_API_PER_THREAD_DEFAULT_STREAM) # PROJECT_INCLUDE_DIR当作全局头文件变量 set(PROJECT_INCLUDE_DIR c/include) # x86_64,aarch64 set(BUILD_ARCH x86_64 CACHE STRING "Arch of this project" FORCE) MESSAGE(STATUS "BUILD_ARCH : ${BUILD_ARCH}") MESSAGE(STATUS "CMAKE_BUILD_TYPE : ${CMAKE_BUILD_TYPE}") MESSAGE(STATUS "This is BINARY dir " ${PROJECT_BINARY_DIR}) MESSAGE(STATUS "This is SOURCE dir " ${PROJECT_SOURCE_DIR}) #包含通用的编译环境模块到顶层目录 include(${PROJECT_SOURCE_DIR}/cmake/default_variabes.cmake) include(${PROJECT_SOURCE_DIR}/cmake/cpp_c_flags.cmake) include(${PROJECT_SOURCE_DIR}/cmake/print_archs.cmake) include_directories(${PROJECT_SOURCE_DIR}/include/) include_directories(/usr/local/boost/include /usr/include ${OpenCV_INCLUDE_DIRS} ) link_directories( ${PROJECT_SOURCE_DIR}/lib/x86_64/ /usr/local/boost/lib ) #下一级的编译目录 MESSAGE("build dependent module - start") #当程序执行命令 ADD_SUBDIRECTORY(src)时进入目录 src 对其中的 CMakeLists.txt 进行解析。 add_subdirectory(ConfigModule) MESSAGE("ConfigModule") # CommonUtil add_subdirectory(AlgorithmModule) MESSAGE("AlgorithmModule") add_subdirectory(example) MESSAGE("example")