CMake编写大纲

1.    项目基本信息
1.1. 设置项目安装根目录CMAKE_INSTALL_PREFIX,如:set(CMAKE_INSTALL_PREFIX "${CMAKE_BINARY_DIR}/install" CACHE PATH "Installation Directory")
1.2. 设置项目构建的类型(Release或Debug)。
set(CMAKE_CONFIGURATION_TYPES "Debug;Release" CACHE STRING "Configs" FORCE)
   当前使用的配置类型
  if(DEFINED CMAKE_BUILD_TYPE AND CMAKE_VERSION VERSION_GREATER "2.8")
     set_property( CACHE CMAKE_BUILD_TYPE PROPERTY STRINGS ${CMAKE_CONFIGURATION_TYPES} )
endif()
1.3. 设置项目的名称,如:project(OpenCV CXX C)
1.4. 选择要构建的模块
1.4.1. 选择需要的第三方库,如option(WITH_JPEG "Include JPEG support" OFF)
1.4.1. 选择需要编译的模块,如option(BUILD_EXAMPLES “Build all examples” ON)
1.4.2. 选择需要编译的第三方库,如option(BUILD_JPEG “Build libjpeg from source” ON)
1.4.3. 选择编译类型(动态库或静态库)。
option(BUILD_SHARED_LIBS “Build shared libraries (.dll) instead of static ones (.lib) OFF”
1.4.4. 编译选项,如
option(ENABLE_PRECOMPILED_HEADERS “Use precompiled headers”  ON)
option(ENABLE_SOLUTION_FOLDERS “Solution folder in Visual Studio or in other IDEs”)
1.4.5. 其他选项
option(CMAKE_VERBOSE “Verbose mode” OFF)

1.5. 设置编译和安装路径
1.5.1. 设置编译结果的输出路径
1.5.1.1. 设置可执行程序和动态库的输出路径
set(EXECUTABLE_OUTPUT_PATH “${CMAKE_BINARY_DIR}/bin”     CACHE PATH “Output directory for application”)
1.5.1.2. 设置静态库或导入库的输出路径
set(LIBRARY_OUTPUT_PATH “${OpenCV_BINARY_DIR}/lib”)
1.5.1.3. 设置第三方库的输出路径
set(3P_LIBRARY_OUTPUT_PATH “${OpenCV_BINARY_DIR}/3rdparty/lib${LIB_SUFFIX}”)
1.5.2. 设置安装路径
1.5.2.1. 设置库文件的安装路径
1.5.2.2. 设置第三方库的安装路径
1.5.2.3. 设置头文件的安装路径
1.5.2.4. 配置文件安装路径
1.6. 添加后缀
1.6.1. 动态库的版本后缀
set(OPENCV_DLLVERSION “${OPENCV_VERSION_MAJOR}${OPENCV_VERSION_MINOR}${OPENCV_VERSION_PATCH}”)
1.6.2. Debug版本后缀
set(OPENCV_DEBUG_POSTFIX d)
1.7. 添加配置文件包含路径:
配置文件是CMAKE根据模板生成,通常包含与平台相关的设置,它是放在${CMAKE_BINARY_DIR}目录下
set(OPENCV_CONFIG_FILE_INCLUDE_DIR "${CMAKE_BINARY_DIR}/" CACHE PATH "Where to create the platform-dependant cvconfig.h")
include_directories(${OPENCV_CONFIG_FILE_INCLUDE_DIR})
1.8. 设置编译和链接选项
1.8.1. 编译选项
CMAKE_C_FLAGS 、CMAKE_CXX_FLAGS是基本的编译设置。此外,可以添加一些而外的编译设置。
1.8.1.1. 基本设置
CMAKE_C_FLAGS
CMAKE_C_FLAGS_DEBUG
CMAKE_C_FLAGS_RELEASE
CMAKE_C_FLAGS_MINSIZEREL
CMAKE_C_FLAGS_RELWITHDEBINFO
CMAKE_CXX_FLAGS
CMAKE_CXX_FLAGS_DEBUG
CMAKE_CXX_FLAGS_RELEASE
CMAKE_CXX_FLAGS_MINSIZEREL
CMAKE_CXX_FLAGS_RELWITHDEBINFO
1.8.1.2. 附加设置
set(OPENCV_EXTRA_FLAGS "")
set(OPENCV_EXTRA_C_FLAGS "")
set(OPENCV_EXTRA_CXX_FLAGS "")
set(OPENCV_EXTRA_FLAGS_RELEASE "")
set(OPENCV_EXTRA_FLAGS_DEBUG "")
set(OPENCV_EXTRA_EXE_LINKER_FLAGS "")
set(OPENCV_EXTRA_EXE_LINKER_FLAGS_RELEASE "")
set(OPENCV_EXTRA_EXE_LINKER_FLAGS_DEBUG "")
1.8.2. 链接选项(针对win32)
1.9. 检测第三方库
1.10. 处理子目录
2.    模块处理
2.1. 定义模块的名字
2.2. 添加模块的源文件和头文件
2.3. 添加模块的依赖库
2.4. 创建目标
2.4.1. 设置目标属性
2.5. 创建测试目标
2.6. 创建安装目标




 

 


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值