用Python编写的一个轻量级的C/C++跨平台构建系统

pybythec的Python项目详细描述


https://img.shields.io/pypi/v/pybythec.svghttps://img.shields.io/travis/glowtree/pybythec.svg?label=linux_macOshttps://img.shields.io/appveyor/ci/glowtree/pybythec.svg?label=windows

安装

pip安装pybythec

来源

在github上查找最新版本:https://github.com/glowtree/pybythec

用法

在与C/C++文件相同的目录中创建pybythec.json文件(或.pybythec.json)。

下面是一个示例,说明如果您正在构建一个名为simple的可执行文件,那么pybythec.json中将声明什么:

{
  "target": "Simple",
  "binaryType": "exe",
  "sources": "main.cpp",
  "installPath": "."
}

然后从命令行运行:

pybythec

使用以下工具清理项目:

pybythec -cl

使用以下命令清除项目及其所有依赖项:

pybythec -cla

查看“./example”目录中的其他示例,了解如何构建静态库、动态库以及具有库依赖项的可执行文件。

pybythec假设您的计算机上已经安装了要使用的编译器/链接器,目前支持gcc、clang和msvc。

当您使用pip安装pybythec时,它会将一个名为.pybythecglobals.json的文件添加到您的主目录中。 这是一个主文件,声明所有编译器和链接器配置。 您可以根据需要对其进行编辑以进行系统范围的配置。 如果要移动此文件,请确保有一个名为pybythec_globals的环境变量指向新位置,例如:

export PYBYTHEC_GLOBALS=/Users/user/dev/.myPybythecGlobals.json

或者对于windows powershell:

$env:PYBYTHEC_GLOBALS="C:/Users/user/dev/.myPybythecGlobals.json"

对于任何给定的生成,最多有3个配置文件:全局、项目和本地,其中项目重写全局,而本地重写全局和项目。

您可以使用环境变量pybythec\u project将pybythec指向项目配置文件,例如:

export PYBYTHEC_PROJECT=/Users/user/dev/myProject/.myProjectConfig.json

pybythec将始终在当前目录中查找您的本地文件,它必须名为pybythec.json或.pybythec.json。

你不需要全部3个来构建,事实上,如果你真的想的话,你甚至可以把所有的东西放进这3个文件中的一个。

配置文件允许嵌套的声明,以便您可以获得特定的建筑需求。

例如,如果我想要一个项目范围内的预处理器声明,但仅在为gcc构建os x时使用,我可以添加 以下是我的项目级配置文件:

"defines":
{
  "macOs": {
    "gcc" : "SOME_DEFINE"
  }
}

您可以在配置文件中使用环境变量,只需在前面加上$,例如:

"libPaths": "$SHARED/lib"

您可以让python脚本在构建完成后自动运行,只要确保它名为pybythecpost.py或.pybythecpost.py即可。

目前pybythec支持gcc/g++、clang/clang++和msvc

更多的文件来了!!!

许可证

请参见许可证

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
playframework Play Framework 2.5表单对象bean(Java)中的依赖项注入   java从javascript触发小程序按钮   JavaGWT:如何创建我自己的异步方法?   对于JTA事务类型,java JPA更改不会持久化   java如何使用预定义的甲板类制作Black Jack游戏   带有数组的java HashMap find()   从Java中的另一个类接收对象数组的参数?   java IntelliJ错误:Scala 145,错误:scalac:找不到Scala编译器JAR   java Eclipse 404请求的资源不可用   java Chuck没有界限   java阅读行每隔一行跳过一行   java如何访问我的EAR部署信息   Java中的正则表达式,其中执行搜索的文本是动态变化的   java我需要优化BigInteger的toString()方法   java Google Map Api V2,自定义路线标记   java如何在Java8中与LocalDate实现更少的需求和更高的质量   EclipseUML插件生成Java源代码   将数据库列绑定到java jComboBox和JList   java如何将两个图像合并为PDF