Инструменты построения на основе Python

В последнее время я смотрю на системы сборки, и я не могу найти ничего близкого к тому, что хочу. Я считаю слишком низким, мне не нравится синтаксис bjam и CMake, и мне действительно не нравится, что они предназначены только для C/С++. Ant и NAnt также слишком ориентированы на язык.

Мне очень нравится идея инструмента построения, в котором используется настоящий язык программирования, и Python вписывается в действительно приятное. Я смотрел Scons и waf, и из этих 2 я найдите waf как ближайший к тому, что я хочу, но все же я вижу много работы, которая должна быть выполнена, чтобы поддержать все запланированное, когда я должен сосредоточиться на кодировании.

Вот что я хочу:

  • включает и библиотеки (для C/С++, Java, С#, Python)

  • Я хочу использовать разные версии компиляторов и поддерживать разные целевые ОС и архитектуры процессора:

    • для C/С++: MSVC, gcc (cygwin, mingw, версия linux), llvm-gcc, DragonEgg, Clang
    • для С#:.Net-компилятор, Mono (для Windows и Linux) - все это для разных версий .Net(например, NAnt: net-2.0, net-3.5, net-4.0, mono -2.0 ',' mono-3.5 '...)
  • Я хочу использовать SWIG для поддержки генерации оболочки для С#, Python, Lua, Java и т.д.

  • Я хочу больше, чем просто настройки Debug и Release - так же, как Visual Studio поддерживает это очень легко. Пример: проект с общей библиотекой, созданный MSVC для С# -обложения, и построенный с помощью mingw для упаковки Python, различные версии версий выпуска - с неоптимизированной, полностью оптимизированной, производственной, запутанной...

  • Я хочу, чтобы он рассматривал отслеживание проекта. Объяснение: если у меня есть проект совместно используемой библиотеки с использованием SWIG и другой проект С#, который загружает эту SWIG-упаковку, построение этого решения/среды/рабочей области подразумевает копирование результирующей общей библиотеки, копирование других разделяемых библиотек, используемых этой общей библиотекой в ​​рабочем каталог и созданные С# оболочки в проект С#, а затем построить проект С#

  • Nice-to-have: развертывание на других машинах для тестирования сети

  • Nice-to-have: мне не очень нравится создание файла проекта IDE (например, CMake для Visual Studio), потому что версии IDE и совместимые изменения, и там есть тонна хороших IDE (например, для C/С++ CodeBlocks, CodeLite, Eclipse CDT - все они переносимы на флэш-накопителе, VS нет), но Nice-to-have - это makefile-интеграция - make файл, который просто вызывает этот инструмент сборки собственного makefile/ script - видел что-то подобное для Scons

Глядя на то, что я написал, я думаю, что слишком много спросил:), но я думаю, что это будет больше, чем я.

edit: забыли сказать, но я думаю, что это подразумевается в использовании Python: я хочу, чтобы инструмент был кросс-платформенным

edit: возможно, то, что я ищу, еще не реализовано, но оно может выйти из расширения waf во все это, или Scons возможно

Ответы

Ответ 1

Я использовал Scons, и это хорошо, и вы можете делать все с ним, потому что просто код Python, так что вы не пишете на Python - это легко.

Некоторые говорят, что у него проблемы с очень большими проектами, у меня не было очень больших проектов для запуска, поэтому я не знаю.