CMake

✍ dations ◷ 2024-12-23 00:49:40 #自由软件,编译器软件,程序设计工具,自动化构建

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而加的。

相关

  • 滴管滴管(Pasteur pipette、Pipette)是实验室中用于转移少量液体的器皿。滴管为一根开端很窄的中空玻璃管,末端有橡胶球。滴管通常是玻璃制的,但也有的是塑胶制的。通常滴一滴为0.05
  • 哈尔格萨哈尔格萨(索马里语:Hargeysa)是未被国际普遍承认的国家索马里兰共和国的首都。索马里宣称对该地区拥有主权。人口于2004年统计为454,365人,但是亦有80到100万左右的说法,并没有相
  • 杰拉丁妮·詹姆斯杰拉丁妮·詹姆斯(英语:Geraldine James,1950年7月6日-),是一名获大英帝国勋章的英国女演员。她在1989年饰演百老汇剧院重启版《威尼斯商人》的波西亚而获得东尼奖最佳话剧女演员
  • 犹他州市镇列表截至2010年,美国的犹他州一共注册成立了243个市镇。其中,人口少于1000者称为镇,超过1000者则称为市。这个注册成立的过程需要由相应地区居民经过公投来完成。根据犹他州宪法,城
  • 大沽河大沽河是位于中国山东省东部的河流,是胶东半岛最大的河流,20世纪80年代开辟为青岛市主要的城市供水水源地。发源于招远市阜山,流经莱西市、平度市、青岛市即墨区、胶州市、城阳
  • 露点大气物理学 大气力学(英语:Synoptic scale meteorology) 天气 (分类) · (主题) 气候 (分类) 气候变迁 (分类) 露点(英语:Dew point)或露点温度(英语:Dew point temperature)是在固
  • 梭德梭德(德语:Hans Sauter,1871年6月21日-1943年5月7日),又译作绍达、苏特,德国奥格斯堡出身的昆虫学家。梭德早年在慕尼黑大学研读动物学;后来,他虽未能完成学业,但仍决心投身标本采集,接
  • 浓缩葡萄汁浓缩葡萄汁(意大利语:Vincotto)是意大利的一种调味料,意大利文的意思是煮过的葡萄酒,但其实Vincotto不含酒精。这种糖浆原为农家女看到酿完酒后丢弃的酒渣,觉得可惜,于是拿回家用大
  • 黑暗精灵黑暗精灵,在许多神话和奇幻设定里是指邪恶的反面精灵族,他们通常和其他精灵争斗。北欧神话中第一位巨人是伊米尔(Ymir),霜巨人族是他的后裔。但是神族和巨人族互相看不对眼,主神奥
  • 锄头锄头是常见农具、园艺用具,目前仍为许多农民广为使用。其构造大致上由一根木制长柄及一块金属作的刀刃组成,但也因用途不同而有各种形状。锄头的主要功能是用来松土、去除杂草