Waf - Википедия - Waf

Waf
Waf Logo.jpg
Разработчики)Томас Надь
Стабильный выпуск
2.0.20 / 24 ноября 2019 г.; Год назад (2019-11-24)
Репозиторий Отредактируйте это в Викиданных
Написано вPython[1]
Операционная системаРС Windows, POSIX
ТипИнструменты разработки программного обеспечения
ЛицензияНовая лицензия BSD (исходный код), CC-BY-NC-ND (документация)
Интернет сайтваф.io

Waf это автоматизация сборки инструмент, предназначенный для помощи в автоматическом сборник и установка компьютерное программное обеспечение. Это написано в Python и поддерживается Томасом Надь.

Waf's исходный код является программное обеспечение с открытым исходным кодом, выпущенный в соответствии с условиями Новая лицензия BSD, хотя сопроводительная документация находится под CC-BY-NC-ND лицензия, которая запрещает как модификацию, так и коммерческое распространение: это препятствует таким поставщикам, как Debian проект от включения документации Waf в свои дистрибутивы.

История

Томас Надь создал инструмент автоматизации сборки под названием BKsys который был разработан, чтобы сидеть наверху SCons, обеспечивая функциональность более высокого уровня, аналогичную Автоинструменты. Это было частью попытки переключить KDE от Autotools к более современной системе сборки на начальных этапах KDE 4 цикл разработки. BKsys / SCons был выбран сообществом KDE в качестве новой стандартной системы сборки.[2] Когда Томас Надь решил, что фундаментальные проблемы SCons (в первую очередь плохая масштабируемость) слишком сложны и требуют много времени, чтобы их исправить, он начал полную переписать который он назвал Waf. Поскольку BKsys был признан тупиком, KDE решила перейти на CMake вместо;[3] тем не менее, Waf продолжал поддерживаться как отдельный проект и с тех пор активно развивался и принимался другими сообществами.

Функции

Возможности Waf:

  • Переносимость в системы Unix и не-Unix
  • Легкий
  • Предлагает Полный по Тьюрингу язык программирования (аналог SCons )
  • Поддержка стандартных целей: настройка, сборка, очистка, удаление, установка и удаление
  • Параллельные сборки
  • Цветной вывод и отображение индикатора выполнения
  • Скрипты - это модули Python
  • Интерфейс XML-скрипта и специальный, простой для анализа режим «вывода IDE» для облегчения взаимодействия с интегрированными средами разработки.
  • Модульная схема конфигурации с настраиваемой командная строка разбор
  • Режим демона для фоновой перекомпиляции
  • Умный поиск исходных файлов (glob () -like) для упрощения обслуживания скрипта
  • Поддержка глобального кэша объектов, чтобы избежать ненужных перекомпиляций
  • Поддержка модульных тестов, запускаемых в программах в конце сборки

Waf поддерживает:

Waf написан на Python. Вместо того, чтобы быть установлены в качестве необходимого компонента системного программного обеспечения, как и в случае систем сборки, таких как GNU make, он распространяется как сценарий включая встроенный архивный файл, предназначенный для запуска для распаковки исходных текстов Waf в собственном дереве исходных кодов проекта.

Лицензия

Waf's исходный код выпущен в соответствии с условиями Новая лицензия BSD. Однако намерение Надя состоит в том, чтобы Waf был включен как часть отдельного программного проекта, а не устанавливался как общесистемная система сборки. Для этого документация, поставляемая как часть выпуска Waf, находится под CC-BY-NC-ND лицензия, которая запрещает как модификацию, так и коммерческое распространение: это изменение было сделано для того, чтобы помешать Debian проект от включения Waf в качестве общесистемного программного пакета.[4] Хотя изначально Debian просто воздерживался от включения документации, прямой запрос от Надя заставил Debian удалить Waf и воспрепятствовать его использованию в качестве системы сборки.[5]

Разработчик Debian Ян Джексон высказал мнение, что использование Waf, распространяемого в системе сборки программного обеспечения в соответствии с условиями Стандартная общественная лицензия GNU (GNU GPL) будет нарушать условия этой лицензии, так как сценарий распаковки создает запутанный копию исходного исходного кода, а не «предпочтительную форму для модификации», как того требует формулировка GPL для систем сборки.[6]

Смотрите также

Рекомендации

  1. ^ "Ваф". Резюме анализа. Охлох. Получено 2010-12-19.
  2. ^ Ридделл, Джонатан. «KDE для перехода на систему сборки bksys / SCons». Новости KDE Dot. Получено 9 мая 2012.
  3. ^ Унрау, Троя. «Путь к KDE 4: CMake, новая система сборки для KDE». Новости KDE Dot. Получено 9 мая 2012.
  4. ^ Надь, Томас (2 октября 2009 г.), «Среда конфигурации в настраиваемых целях», Пользователи Waf (список рассылки), Google.
  5. ^ Фалавинья, Лука (27 февраля 2010 г.), «Намерение удалить waf из Debian», Debian devel (список рассылки), Debian.
  6. ^ Джексон, Ян (7 февраля 2012 г.), «Не содержит исходный код для двоичного кода waf», Debian devel (список рассылки), Debian.

внешняя ссылка