CMake学习小结.docxVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
CMake学习小结

CMake学习小结假定有vegagis工程,工程的目录结构如下:#--vegagis#? |--src 源文件目录#???? |--gui 界面工程,输出类型:dll,依赖于QT的QtCore、QtGui、QtXml#??????? |--pending 工程中的源文件,不希望加入到工程中#??????? ## 为了实现跨平台运行,win32和linux目录下实现的是同一套接口,win32不编译linux目录,linux下则不编译win32目录,但是工程中包含这两个目录#??????? |--win32 win32下的实现#??????? |--linux linux下的实现#???? |--app 应用程序,输出类型:exe,它依赖于gui#? |--include 安装时头文件输出的目录#???? |--gui#???? |--app#? |--bin 输出路径,存放dll和exe#???? |--Debug#??????? |--plugins#? |--build CMake的build路径,存放生成的工程文件等#////////////////////////////////////////////#vegagis目录下的CMakeLists.txt#///////////////////////////////////////////CMAKE_MINIMUM_REQUIRED(VERSION 2.8)#工程名PROJECT(vegagis)#工程文件中使用相对路径SET(CMAKE_SUPPRESS_REGENERATION 1)SET(CMAKE_USE_RELATIVE_PATHS ON)#支持IF(A) ELSE()的写法SET(CMAKE_ALLOW_LOOSE_LOOP_CONSTRUCTS ON)#定义工程的顶级路径SET(PROJDIR ${CMAKE_CURRENT_SOURCE_DIR})#定义源文件目录SET(SRCDIR ${PROJDIR}/src)#设置输出路径SET(EXECUTABLE_OUTPUT_PATH ${PROJECT_BINARY_DIR}/bin)SET(LIBRARY_OUTPUT_PATH ${PROJECT_BINARY_DIR}/bin)#设置安装路径SET(CMAKE_INSTALL_PREFIX ${PROJDIR}/bin)#定义头文件安装目录SET(VGIS_INCLUDE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/headers)#根据操作系统不同而设置不同的路径IF(WIN32)?SET(GDAL_HDRS E:/lib/gdal/include)ELSE()?SET(GDAL_HDRS /home/sunsc/gdal/)ENDIF()#设置头文件的引用路径INCLUDE_DIRECTORIES(?${GDAL_HDRS})#设置引用库路径SET(LIBS ${LIBRARY_OUTPUT_PATH})LINK_DIRECTORIES(${LIBS})#设置依赖库Qt4SET(QT_MIN_VERSION 4.5.2)FIND_PACKAGE(Qt4 ${QT_MIN_VERSION} COMPONENTS QtCore QtGui QtXml REQUIRED)INCLUDE(${QT_USE_FILE})#宏,实现visio studio的目录分组(过滤器)功能macro(source_group_by_dir source_files)??? if(MSVC)??????? set(sgbd_cur_dir ${CMAKE_CURRENT_SOURCE_DIR})??????? foreach(sgbd_file ${${source_files}})??????????? string(REGEX REPLACE ${sgbd_cur_dir}//(.*/)?//1?sgbd_fpath ${sgbd_file})??????????? string(REGEX REPLACE /(.*/)/.*?//1?sgbd_group_name ${sgbd_fpath})??????????? string(COMPARE EQUAL ${sgbd_fpath} ${sgbd_group_name} sgbd_nogroup)??????????? string(REPLACE / // sgbd_group_name ${sgbd_group_name})??????????? if(sgbd_nogroup)??????????????? set(sgbd_group_name //)??????????? endif(

文档评论(0)

xcs88858 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

版权声明书
用户编号:8130065136000003

1亿VIP精品文档

相关文档