c++ - 基于Python的构建工具

原文 标签 c++ python build build-process makefile

我最近一直在寻找构建系统,但找不到最想要的东西。我认为太低端了,我不喜欢 bjam CMake 的语法,我真的不喜欢它们仅适用于C/C++。 Ant NAnt 也是面向语言的。

我真的很喜欢使用真正的编程语言并且Python非常合适的构建工具的想法。我一直在寻找 Scons waf ,从这2个中我发现 waf 是我想要的最接近的一种,但我仍然看到需要做很多工作来支持计划中的所有事情,当我应该专注于编码时。

这是我想要的:

  • 包括和库(用于C/C++,Java,C#,Python)
  • 我想使用不同版本的编译器并支持不同的目标OS和CPU体系结构:

    C/C++的
  • :MSVC,gcc(cygwin,mingw,Linux版本),llvm-gcc,DragonEgg,Clang
  • C#的
  • :.Net编译器,Mono(适用于Windows和Linux)-所有这些都适用于不同的.Net版本(例如NAnt:'net-2.0','net-3.5','net-4.0','mono-2.0 ','mono-3.5'...)
  • 我想使用 SWIG 以支持C#,Python,Lua,Java等的包装器生成。
  • 除了调试和发布配置外,我还需要更多-就像Visual Studio确实很容易地支持它一样。示例:共享库项目构建了用于C#包装的MSVC,并使用mingw用于Python包装,以及发行版的不同版本-具有未优化,完全优化,生产,混淆的版本...
  • 我希望它考虑项目跟踪。解释:如果我有一个使用SWIG的共享库项目,以及另一个加载该SWIG包装的C#项目,则构建此解决方案/环境/工作区将意味着复制生成的共享库,复制该共享库在工作中使用的其他共享库目录,然后C#生成C#项目的包装器,然后构建C#项目
  • 完善:在其他计算机上部署以进行网络测试
  • 尚待实现:我并不真正在意IDE项目文件的生成(例如,像Visual Studio的CMake一样),因为IDE的版本和兼容性发生了变化,并且还有很多不错的IDE(例如,对于C/C++ CodeBlocks,CodeLite,Eclipse CDT-所有这些都可以在拇指驱动器上移植,而VS则不是。)但很高兴的是makefile集成-一个简单地称为Build工具自己的makefile/script的makefile-看到了类似的东西对于Scons

  • 看着我写的东西,我想我问的太多了:),但是我认为这比我更有用

    编辑:忘记说了,但是我认为这是使用Python所隐含的:我希望该工具可以跨平台

    编辑:也许我正在寻找的东西尚未实现,但它可能退出所有这些的waf扩展,或者可能是Scons

    最佳答案

    我使用了Scons,它非常好,您真的可以使用它做任何事情,因为只有Python代码,所以您在Python中缺少的内容很容易。

    有人说大型项目有问题,我没有大型项目可以运行,所以我不知道。

    关于c++ - 基于Python的构建工具,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4132066/

    相关文章:

    c++ - C++机票费用计算项目

    c++ - 计算二叉树中的节点

    c++ - 如何使用C++文件流编辑(读取然后写入)文件?

    python - 合并任意数量的列表字典

    python - 在Python子进程中查找返回1

    build - 你如何确保你总是有一个可发布的构建?

    linux - `Cmake` 在调用 `target_link_libraries(target_name, library_name_without_postfix)` 时更喜欢链接到哪个库?

    android - 如何为 beta 测试人员和市场构建多个 Android 应用程序版本?

    c++ - 视频流-控制帧率x264

    python - "# -*- coding: utf-8 -*-","from __future__ import unicode_literals"和 "sys.setdefaultencoding("utf 8")"有什么不同