“面向对象”的现代CMake
Preface
CMake,现代C/C++构建系统的事实标准,但是很多人对CMake的感觉大概就是“想说爱你不容易”。由于官方文档较差的可读性,很多人对这一强大的工具望而却步。笔者在学习、使用CMake的时候,也曾遭遇相同的痛苦,因此本文尝试以面向对象的思维方式,简要解释现代CMake的使用经验及思路。
何为“现代”CMake?这个问题的答案五花八门,众说纷纭。但是一个公认的分水岭是CMake 3.0的发布——在这个版本中,代码构建以目标(Target)为中心,围绕着目标设置构建规范(Build Specifications)与使用要求(Usage Requirements),这些约束的作用域由CMake自动管理,而非2.x时代由程序员手工管理。
2014年,CMake 3.15正式发布,在一些资料中,该版本及后续版本被称为更现代的CMake(More Modern CMake)——该版本中引入了属性(Property)的概念,允许用户自定义目标的属性,此时,
面向对象的CMake
Legacy V.S. Modern
References
- Documents of CMake v3.28
- Modern CMake简明教程
- Modern CMake for C++ by Rafał Świdziński
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Stephen Zhang's Blog!
评论