Welcome 微信登录

首页 / 数据库 / MySQL / CMake用法笔记

最近在学习Mysql的源代码,用到了CMake做为Build工具。通过CMake去扫描系统的一些配置,会生成config.h文件,这个头文件里包含了一系列的以HAVE_为前缀的宏。在源代码根目录下的config.h.cmake  是模板文件,包含了所有的扫描项。在Mysql的影子编译目录里面(我一般都是用影子编译,保持源代码目录的纯洁性),我们可以找到config.h,CMake脚本会把config.h拷贝成另外一个内容完全一模一样的my_config.h文件。我们现在以 HAVE_NPTL 这个宏使用在Mysql源代码中的这种情况为例学习CMake的原理:我们浏览Mysql目录的CMake目录,这个是Mysql专有的CMake脚本,我们通过查找,在cmakeoslinux.cmake中找到了 HAVE_NPTL的定义。在这个文件里HAVE_NPTL是固定设为1的,我们继续学习非固定设置的情况。比如  CHECK_SYMBOL_EXISTS(SHM_HUGETLB sys/shm.h  HAVE_DECL_SHM_HUGETLB)该CMake文件的包含了 INCLUDE(CheckSymbolExists)CheckSymbolExists 是CMake的公共模块,我的机器上位于/usr/share/cmake-2.8/Modules目录下。我们继续研究该文件:阅读了其源代码后,MACRO(CHECK_SYMBOL_EXISTS SYMBOL FILES VARIABLE)这个宏的作用就是,查找相关文件(FILES)里面是否包含相关符号(SYMBOL) 如果存在则设置VARIABLE 为1,MESSAGE宏会在屏幕上做相关打印。上面的列子中就是在 sys/shm.h 文件里面查找SHM_HUGETLB 符号。我们查看  /usr/include/shm.h在Fedora里面安装BerkeleyDB数据库MySQL源代码阅读笔记:代码流程相关资讯      CMake 
  • CMake基础教程  (05月21日)
  • 使用cmake编译安装MySQL 5.5  (12/20/2015 21:04:45)
  • CMake快速使用教程  (10/23/2015 15:05:46)
  • CMake 3.4.2 发布下载,自动化建构  (01月20日)
  • CMake 3.4.0 发布下载,自动化建构  (11/13/2015 08:53:13)
  • CMake 3.3.0 发布,自动化建构系统  (07/24/2015 09:31:26)
本文评论 查看全部评论 (0)
表情: 姓名: 字数