cmake_minimum_required(VERSION 2.8) // 定义版本
project(prison_pretreat_service) //设置工程名称
# set(CMAKE_BUILD_TYPE "Debug")//
set(CMAKE_BUILD_TYPE "Release") // 设置编译环境,build 类型(Debug, Release, ...)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 -fvisibility=default -DPRINT")// 设置c++编译选项
# set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -O0 -g -ggdb")
set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -w -O0 -g -ggdb")设置debug版本的编译
set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -O0")//设置release版本的编译
set(CMAKE_PREFIX_PATH "/usr/local/")//前缀路径
find_package(OpenCV) // 查找opencv库
message(STATUS "OpenCV library status:")//输出信息,status正常,warning警告,fatal_error重大错误
message(STATUS "version: ${OpenCV_VERSION}")
#message(STATUS " libraries: ${OpenCV_LIBS}")
message(STATUS "include path: ${OpenCV_INCLUDE_DIRS}")
if(${OpenCV_VERSION} MATCHES "^4")
add_definitions(-DUSE_OPENCV4) // 用于添加编译器命令行标志(选项),通常的情况下我们使用其来添加预处理器定义
message("use opencv4")
endif()
include_directories(${PROJECT_SOURCE_DIR}) // 添加头文件,程序根目录
include_directories(${PROJECT_SOURCE_DIR}/src)
include_directories(/usr/include/glib-2.0)
include_directories(/usr/lib/x86_64-linux-gnu/glib-2.0/include/)
include_directories(${OpenCV_INCLUDE_DIRS})
include_directories(${GTK2_INCLUDE_DIRS})
include_directories( /usr/include/cryptopp )
link_directories(${PROJECT_SOURCE_DIR}/lib) //添加库目录
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${PROJECT_SOURCE_DIR}/build)//设置输出目录
ADD_SUBDIRECTORY(src)//用于添加一个需要进行构建的子目录,意味着该目录下也有个CMakeLists.txt 文件
# below is for unit test
option(UNIT_TEST_SWITCH "unit test" OFF) // 添加编译选项
if (${UNIT_TEST_SWITCH} MATCHES ON)
#set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${PROJECT_SOURCE_DIR}/unit_test)
SET(MYTMP_CMAKE_CXX_FLAGS ${CMAKE_CXX_FLAGS})
set(CMAKE_CXX_FLAGS "${MYTMP_CMAKE_CXX_FLAGS} -fprofile-arcs -ftest-coverage -fPIC -O0")
ADD_SUBDIRECTORY(unit_test)
set(CMAKE_CXX_FLAGS ${MYTMP_CMAKE_CXX_FLAGS})
endif()
# above is for unit test
if(${CMAKE_BUILD_TYPE} MATCHES "Debug")
ADD_SUBDIRECTORY(test)
endif()