热门排行
简介
CMake For Mac是Mac OS平台上一款编程软件,可用于构建、测试、软件打包,可以使用你所选择的编译器环境,快来下载体验吧。
软件介绍
CMake是一个编程工具,旨在构建、测试和软件打包。CMake是用于控制软件使用简单的平台和编译器编译过程独立配置文件。CMake生成本机makefile和工作区,可以使用您所选择的编译器环境。
CMake是一套旨在构建,测试和打包软件的工具。它用于使用简单的平台和编译器独立配置文件来控制软件编译过程。CMake生成可以在您选择的编译环境中使用的本机makefile和工作区。它是由Kitware创建的,以响应对开源项目(如ITK和VTK)的强大的跨平台构建环境的需求。
CMake可以处理就地和不合适的构建,从同一个源树中启用多个构建,并交叉编译。在源树之外构建目录树的能力是一个关键特性,确保如果构建目录被删除,源文件将不受影响。另一个功能是生成要与图形编辑器一起使用的缓存的功能,当运行CMake时,可以查找可执行文件,文件和库。该信息进入缓存,然后可以在生成本机构建文件之前进行调整。依赖于多个库的复杂目录层次结构和应用程序得到CMake的良好支持。例如,CMake能够容纳具有多个工具包的项目,或者每个具有多个目录的库。此外,CMake可以在生成要为最终应用程序编译的代码之前创建需要创建可执行文件的项目。其开源的可扩展设计允许CMake根据具体项目进行调整。
它可以为许多平台和IDE生成makefile,包括Unix,Windows,Mac OS X,OS / 2,MSVC,Cygwin,MinGW和Xcode。使用CMake的项目包括Blender,Bullet物理引擎,LLVM和Clang,MariaDB,MuseScore,MySQL,Qt5,Second Life,Stellarium和SuperTux。
软件功能
CMake是一个跨平台的安装(编译)工具,可以用简单的语句来描述所有平台的安装(编译过程)。他能够输出各种各样的makefile或者project文件,能测试编译器所支持的C++特性,类似UNIX下的automake。只是 CMake 的组态档取名为 CmakeLists.txt。Cmake 并不直接建构出最终的软件,而是产生标准的建构档(如 Unix 的 Makefile 或 Windows Visual C++ 的 projects/workspaces),然后再依一般的建构方式使用。这使得熟悉某个集成开发环境(IDE)的开发者可以用标准的方式建构他的软件,这种可以使用各平台的原生建构系统的能力是 CMake 和 SCons 等其他类似系统的区别之处。
CMake 可以编译源代码、制作程式库、产生适配器(wrapper)、还可以用任意的顺序建构执行档。CMake 支持 in-place 建构(二进档和源代码在同一个目录树中)和 out-of-place 建构(二进档在别的目录里),因此可以很容易从同一个源代码目录树中建构出多个二进档。CMake 也支持静态与动态程式库的建构。
功能特色
1、可扩展的开源系统,它以独立于编译器的方式管理操作系统中的构建过程。。
2、与许多跨平台系统不同,它的设计目的是与本地构建环境结合使用。
3、它可以生成一个本地构建环境,该环境将编译源代码、创建库、生成包装器并在任意组合中构建可执行文件。
4、支持in-place和out- place构建,因此可以从单个源树支持多个构建。它还支持静态和动态库构建。
5、支持依赖于多个库的复杂目录层次结构和应用程序。
6、处理必须构建可执行文件的情况,以便生成随后编译并链接到最终应用程序中的代码。
7、提供了许多预定义的命令,但是如果需要,您可以添加自己的命令。
8、为特定的编译器/操作系统组合添加其他makefile生成器。(虽然目前支持Unix和msvc++,但其他开发人员正在添加其他编译器/OS支持)。
更新日志
cmake.org上提供的预编译的macOS二进制文件现在是具有x86_64和arm64体系结构的通用二进制文件。它需要macOS 10.10或更高版本。软件包文件的命名模式已从cmake- $ ver-Darwin-x86_64更改为cmake- $ ver-macos-universal。
Apple Silicon主机体系结构选择支持已更新。CMake 3.19.0和3.19.1始终选择arm64作为主机体系结构。CMake 3.19.2返回使用uname -m,就像CMake 3.18及以下版本一样。由于这可能根据CMake自己的体系结构和调用进程树的体系结构而有所不同,因此可以将CMAKE_APPLE_SILICON_PROCESSOR变量或CMAKE_APPLE_SILICON_PROCESSOR环境变量设置为显式指定主机体系结构。
添加了CMAKE_ISPC_HEADER_SUFFIX变量和相应的ISPC_HEADER_SUFFIX目标属性,以控制ISPC编译器***的标头使用的标头后缀。