


全文预览已结束
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
cmake学习笔记(五)在cmake 学习笔记(三) 中简单学习了 find_package 的 model 模式,在cmake 学习笔记(四)中了解一个CMakeCache相关的东西。但靠这些知识还是不能看懂PySide使用CMakeLists文件,接下来继续学习find_package的 config 模式及package configure文件相关知识find_package 的 config 模式当CMakeLists.txt中使用find_package命令时,首先启用的是 module 模式:按照 CMAKE_MODULE_PATH 路径和cmake的安装路径去搜索finder文件 Find.cmake如果finder未找到,则开始 config 模式:将在下列路径下查找 配置 文件 Config.cmake 或 -config.cmake/(W)/(cmake|CMake)/(W)/*/(W)/*/(cmake|CMake)/(W)/(share|lib)/cmake/*/(U)/(share|lib)/*/(U)/(share|lib)/*/(cmake|CMake)/(U) find_package 参数及规则见manualConfig.cmake该文件至少需提供头文件路径和库文件信息。比如 ApiExtractorConfig.cmake 在Windows下一个例子:# - try to find APIEXTRACTOR# APIEXTRACTOR_INCLUDE_DIR - Directories to include to use APIEXTRACTOR# APIEXTRACTOR_LIBRARIES - Files to link against to use APIEXTRACTORSET(APIEXTRACTOR_INCLUDE_DIR D:/shiboken/dist/include/apiextractor)if(MSVC) SET(APIEXTRACTOR_LIBRARY D:/shiboken/dist/lib/apiextractor.lib)elseif(WIN32) SET(APIEXTRACTOR_LIBRARY D:/shiboken/dist/bin/apiextractor.dll)else() SET(APIEXTRACTOR_LIBRARY D:/shiboken/dist/lib/apiextractor.dll)endif()该文件是通过 configure_file 机制生成的,我们看看 ApiExtractorConfig.cmake.in 文件:SET(APIEXTRACTOR_INCLUDE_DIR CMAKE_INSTALL_PREFIX/include/apiextractorapiextractor_SUFFIX)if(MSVC) SET(APIEXTRACTOR_LIBRARY LIB_INSTALL_DIR/CMAKE_SHARED_LIBRARY_PREFIXapiextractorapiextractor_SUFFIXLIBRARY_OUTPUT_SUFFIX.lib)elseif(WIN32) SET(APIEXTRACTOR_LIBRARY CMAKE_INSTALL_PREFIX/bin/CMAKE_SHARED_LIBRARY_PREFIXapiextractorapiextractor_SUFFIXLIBRARY_OUTPUT_SUFFIXCMAKE_SHARED_LIBRARY_SUFFIX)else() SET(APIEXTRACTOR_LIBRARY LIB_INSTALL_DIR/CMAKE_SHARED_LIBRARY_PREFIXapiextractorapiextractor_SUFFIXLIBRARY_OUTPUT_SUFFIXCMAKE_SHARED_LIBRARY_SUFFIX)endif()对应的命令(变量的定义略过)configure_file($CMAKE_CURRENT_SOURCE_DIR/ApiExtractorConfig.cmake.in $CMAKE_CURRENT_BINARY_DIR/ApiExtractorConfig.cmake ONLY)ConfigVersion.cmake该文件用来比对版本是否匹配,看看ApiExtractorConfigVersion.cmake.in 的内容:set(PACKAGE_VERSION apiextractor_VERSION)if($PACKAGE_VERSION VERSION_LESS $PACKAGE_FIND_VERSION ) set(PACKAGE_VERSION_COMPATIBLE FALSE)else($PACKAGE_VERSION VERSION_LESS $PACKAGE_FIND_VERSION ) set(PACKAGE_VERSION_COMPATIBLE TRUE) if( $PACKAGE_FIND_VERSION STREQUAL $PACKAGE_VERSION) set(PACKAGE_VERSION_EXACT TRUE) endif( $PACKAGE_FIND_VERSION STREQUAL $PACKAGE_VERSION)endif($PACKAGE_VERSION VERSION_LESS $PACKAGE_FIND_VERSION )一般提供设置下面的变量PACKAGE_VERSION完整的版本字符串PACKAGE_VERSION_EXACT如果完全匹配为真PACKAGE_VERSION_COMPATIBLE如果兼容为真PACKAGE_VERSION_UNSUITABLE如果不可用为真find_package进而根据这些设置_VERSIONfull provided version string_VERSION_MAJORmajor version if provided, else 0_VERSION_MINORminor version if provided, else 0_VERSION_PATCHpatch version if provided, else 0_VERSION_TWEAKtweak version if provided, else 0参考/cmake/help/cmake-2-8-docs.ht
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年碳保险方向产品经理笔试指南及预测题解析
- 2025年国有企业项目经理招聘考试模拟题详解
- 桑树坪煤矿安全知识培训课件
- 2025年注册验船师资格考试(B级船舶检验专业基础安全)模拟题及答案一
- 2025年篮球考试试题及答案
- 2025年注册验船师资格考试(C级船舶检验专业能力)全真冲刺试题及答案一
- 2025年检测工程师桥隧工程考试真题(附答案)
- 2025年公务员考试国考全科目预测试题集
- 2025年地理信息系统应用实战与预测题集
- 2025年建筑装饰设计师高级实务操作指南及模拟题集
- 杨式85式太极拳现用图解
- YY/T 1095-2015肌电生物反馈仪
- SB/T 10460-2008商用电开水器
- GB/T 9124.1-2019钢制管法兰第1部分:PN系列
- GB/T 2480-2022普通磨料碳化硅
- GA 1800.2-2021电力系统治安反恐防范要求第2部分:火力发电企业
- 细胞生物学实验课件:细胞组分的分级分离
- 合理选择影像检查方法课件
- 欣旺集团种禽养殖管理制度手册
- 口服化疗药精品课件
- 《结构施工图识图》
评论
0/150
提交评论