Waf (система сборки)
![]() | |
Разработчик(и) | Томас Надь |
---|---|
Стабильная версия | 2.0.25 / 1 января 2023 г |
Репозиторий | |
Написано в | Питон [1] |
Операционная система | MS Windows , POSIX. |
Тип | Инструменты разработки программного обеспечения |
Лицензия | Новая лицензия BSD (исходный код), CC-BY-NC-ND (документация) |
Веб-сайт | ваф |
Waf — это инструмент автоматизации сборки , предназначенный для помощи в автоматической компиляции и установке компьютерного программного обеспечения . Он написан на Python и поддерживается Томасом Надьем.
Waf Исходный код — это программное обеспечение с открытым исходным кодом , выпущенное на условиях Новой лицензии BSD , хотя его сопроводительная документация находится под лицензией CC-BY-NC-ND , которая запрещает как модификацию, так и коммерческое распространение: это препятствует таким поставщикам, как Debian проект . от включения документации Waf в свои дистрибутивы.
История
[ редактировать ]Томас Надь создал инструмент автоматизации сборки под названием BKsys , который был разработан для работы поверх SCons и обеспечивал функциональность более высокого уровня, аналогичную функциональности Autotools . Это было частью усилий по переходу KDE с Autotools на более современную систему сборки на начальных этапах цикла разработки KDE 4 . BKsys/SCons была выбрана сообществом KDE в качестве новой стандартной системы сборки. [2] Когда Томас Надь решил, что фундаментальные проблемы SCons (особенно плохая масштабируемость) слишком сложны и требуют много времени для устранения, он начал полную переработку , которую назвал Waf . Поскольку BKsys был признан тупиковым, KDE решил вместо этого переключиться на CMake ; [3] однако Waf продолжал поддерживаться как отдельный проект и с тех пор стал свидетелем плодотворного развития и принятия другими сообществами. [ нужна ссылка ]
Функции
[ редактировать ]![]() |
Возможности Ваф:
- Переносимость в Unix и не-Unix системы
- Легкий
- Предлагает полный по Тьюрингу язык программирования (аналог SCons ).
- Поддержка стандартных целей: настройка, сборка, очистка, дистрибуция, установка и удаление.
- Параллельные сборки
- Цветной вывод и отображение индикатора выполнения
- Скрипты — это модули Python.
- Внешний интерфейс XML-скрипта и специальный, простой в анализе режим вывода IDE для упрощения взаимодействия с интегрированными средами разработки.
- Модульная схема конфигурации с настраиваемым командной строки анализом
- Режим демона для фоновой перекомпиляции
- Интеллектуальный поиск исходных файлов ( подобно glob() ) для упрощения обслуживания скриптов.
- Поддержка глобального кэша объектов во избежание ненужных перекомпиляций.
- Поддержка модульных тестов, запускаемых в программах в конце сборки.
Ваф поддерживает:
- Препроцессор C / C++ для вычисления зависимостей.
- Фортран поддерживается с автоматическим обнаружением зависимостей модулей.
- Поддержка OCaml и гибридных программ, а также GNOME . программ
- Поддержка языка программирования D (поддерживаются как gdc, так и dmd)
- Поддержка C# , Java , Python . проектов
- Предоставляет различные инструменты для обработки DocBook , man-страниц , intltool/msgfmt.
Waf написан на Python . Вместо того, чтобы быть установленным в качестве обязательного компонента системного программного обеспечения, как в случае с системами сборки, такими как GNU make , он распространяется как сценарий , включающий встроенный архивный файл , предназначенный для запуска для распаковки исходников Waf в собственном исходном коде проекта. дерево.
Лицензия
[ редактировать ]Waf Исходный код распространяется на условиях Новой лицензии BSD . Однако намерение Надя состоит в том, чтобы Waf был включен как часть отдельного программного проекта, а не устанавливался как общесистемная система сборки. В связи с этим документация, поставляемая как часть выпуска Waf, находится под лицензией CC-BY-NC-ND , которая запрещает как модификацию, так и коммерческое распространение: это изменение было сделано для того, чтобы помешать проекту Debian включать Waf как общесистемный пакет программного обеспечения. [4] Хотя изначально Debian просто воздерживался от включения документации, прямой запрос Надя вынудил Debian удалить Waf и запретить его использование в качестве системы сборки. [5]
Разработчик Debian Ян Джексон высказал мнение, что использование Waf, распространяемого в системе сборки программного обеспечения в соответствии с условиями Стандартной общественной лицензии GNU ( GNU GPL), будет нарушением условий этой лицензии, поскольку сценарий распаковки создает запутанную копию своего файла . исходный исходный код, а не «предпочтительную форму для модификации», как того требует формулировка GPL о системах сборки. [6]
См. также
[ редактировать ]Ссылки
[ редактировать ]- ^ «Ваф» . Сводка анализа . Охло . Проверено 19 декабря 2010 г.
- ^ Ридделл, Джонатан (11 сентября 2005 г.). «KDE для перехода на систему сборки bksys/SCons» . Новости KDE Dot . Проверено 9 мая 2012 г.
- ^ Унрау, Трой (22 февраля 2007 г.). «Путь к KDE 4: CMake, новая система сборки для KDE» . Новости KDE Dot . Проверено 9 мая 2012 г.
- ^ Надь, Томас (2 октября 2009 г.), «Среда настройки в пользовательских целях», Пользователи Waf (список рассылки) .
- ^ Фалавинья, Лука (27 февраля 2010 г.), «Намерение удалить waf из Debian», Debian devel (список рассылки), Debian .
- ^ Джексон, Ян (7 февраля 2012 г.), «Не содержит исходного кода двоичного кода waf», Debian devel (список рассылки), Debian .