CMake

✍ dations ◷ 2025-02-23 20:14:31 #自由软件,编译器软件,程序设计工具,自动化构建

CMake是个一个开源的跨平台自动化建构系统,用来管理软件建置的程序,并不依赖于某特定编译器,并可支持多层目录、多个应用程序与多个库。它用配置文件控制建构过程(build process)的方式和Unix的make相似,只是CMake的配置文件取名为CMakeLists.txt。CMake并不直接建构出最终的软件,而是产生标准的建构档(如Unix的Makefile或Windows Visual C++的projects/workspaces),然后再依一般的建构方式使用。这使得熟悉某个集成开发环境(IDE)的开发者可以用标准的方式建构他的软件,这种可以使用各平台的原生建构系统的能力是CMake和SCons等其他类似系统的区别之处。CMake配置文件(CMakeLists.txt)可设置源代码或目标程序库的路径、产生适配器(wrapper)、还可以用任意的顺序建构可执行文件。CMake支持in-place建构(二进档和源代码在同一个目录树中)和out-of-place建构(二进档在别的目录里),因此可以很容易从同一个源代码目录树中建构出多个二进档。CMake也支持静态与动态程序库的建构。

“CMake”这个名字是"Cross platform Make"的缩写。虽然名字中含有"make",但是CMake和Unix上常见的“make”系统是分开的,而且更为高端。它可与原生建置环境结合使用,例如:make、苹果的Xcode与微软的Visual Studio。

CMake是为了解决美国国家医学图书馆出资的Visible Human Project项目下的Insight Segmentation and Registration Toolkit(ITK)软件的跨平台建构的需求而创造出来的,其设计受到了Ken Martin开发的pcmaker所影响。pcmaker当初则是为了支持Visualization Toolkit(VTK)这个开放源代码的三维图形和视觉系统才出现的,今日VTK也采用了CMake。在设计CMake之时,Kitware公司的Bill Hoffman采用了pcmaker的一些重要想法,加上更多他自己的点子,想把GNU建构系统的一些功能集成进来。CMake最初的实现是在2000年中作的,在2001年初有了急速的进展,许多改良是来自其他把CMake集成到自己的系统中的开发者,比方说,采用CMake作为建构环境的VXL社群就贡献了很多重要的功能,Brad King为了支持CABLE和GCC-XML这套自动包装工具也加了几项功能,通用电气公司的研发部门则用在内部的测试系统DART,还有一些功能是为了让VTK可以过渡到CMake和支持洛斯阿拉莫斯国家实验室的Advanced Computing Lab的平行视觉系统ParaView而加的。

相关

  • 汉斯-迪特里希·根舍汉斯-迪特里希·根舍(德语:Hans-Dietrich Genscher,1927年3月21日-2016年3月31日),生于普鲁士萨克森省的莱德堡(现属哈雷市),是德国自由民主党内的一名重要人物。1969年—1974年担任
  • 仙女座仙女座,88个现代星座之一,也是2世纪希腊罗马天文学家托勒密列出的48个星座之一,位于天球赤道以北。在希腊神话中,仙女座象征被拴在岩石上待海怪刻托吞噬的女神安德洛墨達。仙女
  • 诺曼底战役同盟国:  美国 大英帝国轴心国:德怀特·艾森豪威尔(盟国远征军最高指挥官) 亚瑟·泰德(盟国远征军副指挥官) 伯纳德·蒙哥马利(英国第21集团军,盟国远征军陆军总指挥官) 特拉福
  • 实证学派犯罪学(英语:Criminology)是一门社会科学,主题是寻找犯罪行为的现象与规律,寻找犯罪发生的原因,借此寻找方法以减轻犯罪对社会的影响(最后这项于今日已被更精致地分科为刑事政策,而
  • 蕈毒碱毒蕈碱(英语:Muscarine)是一种有毒的天然生物碱,主要存在于丝盖伞属(英语:Inocybe)和杯伞属的真菌中,例如白霜杯伞。粉褶蕈属(英语:Entoloma)和小菇属(英语:Mycena)的真菌中也有发现含有达
  • 大理院大理院是清朝末年设置的全国最高审判机构。大理院的前身是大理寺。清朝光绪三十二年(1906年),清廷颁行《大理院审判编制法》,将大理寺改为大理院。翌年,正式定大理院官制。置正卿
  • 水牛比尔“水牛比尔”科迪 帕哈斯卡(Pahaska,长发)威廉·弗雷德里克·“水牛比尔”·科迪(William Frederick "Buffalo Bill" Cody,1846年2月26日-1917年1月10日),是一名南北战争军人、陆军
  • 贝心瑜贝心瑜(1957年-),本名吴秀凤,1980年代台湾女歌手、演员,曾以“美答您洗面乳”广告一炮而红。
  • 平顶光束平顶光束是一种在圆形区域内有几乎一致通量(能量密度)的激光光束或电子束。一般是由高斯光束经过衍射光学元件而产生。平顶光束常用在工业上,例如在印刷电路板中的激光钻孔(英语
  • 本吉本吉是刚果共和国的城市,由盆地省负责管辖,位于该国中部阿利马河畔,海拔高度438米,市内有机场设施、市集、港口和资源中心。