跳转到主要内容

CMake构建树批处理工具

项目描述

轻松批处理构建cmake项目!

cmmany 是一个命令行工具,可以轻松构建CMake C/C++项目的各种变体。它结合了不同的编译器、cmake构建类型、编译器标志捆绑包、处理器架构和操作系统。这些项目中的每个项目也可以具有相关的编译器标志。

例如,要配置和构建一个结合clang++和g++,同时具有调试和发布的项目

$ cmany build -c clang++,g++ -t Debug,Release path/to/CMakeLists.txt

上面的命令将产生四个不同的构建树,默认放置在当前工作目录下的 build 子目录中

$ ls build/*
build/linux-x86_64-clang++3.9-Debug
build/linux-x86_64-clang++3.9-Release
build/linux-x86_64-gcc++6.1-Debug
build/linux-x86_64-gcc++6.1-Release

每个构建树都是通过首先使用每个组合中的项目配置项目,然后调用 cmake --build 来一次性构建项目获得的。

您还可以仅使用cmany来简化您的cmake工作流程!这两个命令序列具有相同的效果(bbuild 的别名)

典型的cmake

cmmany

$ mkdir build
$ cd build
$ cmake ..
$ cmake --build .
$ cmany b

功能

  • 使用一条简单的命令轻松配置和构建项目的许多变体。

  • 自动保存手动处理多个构建树既繁琐又容易出错的工作。

  • 合理的默认设置:使用 cmany build 将创建并使用 CMake 的默认值构建单个项目。

  • 透明地传递标志(编译器标志、处理器定义或 cmake 缓存变量)到任何或所有构建中。

  • 对构建比较和基准测试很有用。您可以轻松设置标志包,即变体。

  • 对使用不同编译器和标志验证和单元测试您的项目很有用。

  • 对创建项目发行版很有用。

  • 当更改构建类型时避免完整重建。尽管多配置 CMake 生成器(如 Visual Studio)已经具有此功能,但单配置生成器(如 Unix Makefiles)则没有。

  • 在每一个构建树或安装树中运行任意命令。

  • 完全控制构建项的组合方式。

更多信息

支持

当前状态

cmany 处于 alpha 状态,正在开发中。

限制和已知问题

  • cmany 会调用它所接收的编译器以查找其名称和版本。到目前为止,这已经在 Visual Studio、gcc(包括 arm-linux 和 mips-linux 的对应版本)、clang、icc 和 zapcc 中成功实现。然而,当前实现名称和版本的猜测是脆弱的,可能在未测试的一些编译器中失败。如果您发现此类失败,请提交错误报告或 PR。

  • 尽管 cmany 在 OS X 上使用 gcc 和 clang 也能工作,但尚未测试使用 Xcode。如果您有兴趣使 cmany 与 Xcode 一起工作,请与我们联系。

  • 纯 C 项目(即不是 C++)应该可以工作,但尚未进行测试。可能存在一些错误。

许可证

cmany 采用 MIT 许可证进行许可。

版权(c)2016,Joao Paulo Magalhaes <dev@jpmag.me>

在此特此授予任何获得本软件及其相关文档文件(“软件”)副本的人免费处理该软件的权利,包括但不限于使用、复制、修改、合并、发布、分发、再许可和/或出售软件副本的权利,并允许向软件提供软件的人这样做,前提是以下条件

上述版权声明和本许可声明应包含在软件的副本或主要部分中。

软件按“原样”提供,不提供任何明示或暗示的保证,包括但不限于适销性、针对特定目的的适用性和非侵权性保证。在任何情况下,作者或版权所有者均不对任何索赔、损害或其他责任负责,无论这些责任是由于合同、侵权或其他方式引起的,与软件或软件的使用或其他交易有关。

项目详细信息


下载文件

下载适用于您平台的文件。如果您不确定选择哪个,请了解更多关于安装包的信息。

源分发

cmany-0.1.4.tar.gz (117.2 kB 查看哈希值)

上传时间:

构建分发

cmany-0.1.4-py3-none-any.whl (118.0 kB 查看哈希值)

上传时间: Python 3

支持