- Waf
-
Waf Тип Разработчик Thomas Nagy
Написана на Операционная система Последняя версия Лицензия Сайт Waf — это система для автоматизации сборки, то есть программа, которая производит автоматическую компиляцию и установку других программ и библиотек.
Содержание
Возможности
- Файлы конфигурации являются сценариями на языке Python, что позволяет использовать все возможности этого языка программирования.
- Встроенная поддержка C, C++, D, Java, Fortran и Qt. Возможность генерации документов TeX и LaTeX. Поддержка других языков или форматов файлов может быть реализована с помощью пользовательских расширений (tools).
- Для языков C и C++ автоматически анализируются зависимости. В отличие от make не нужно отдельно выполнять команду make depend.
- Обнаружение изменения содержимого файлов по контрольным суммам MD5, наряду с традиционным обнаружением изменений по времени записи файла.
- Возможность параллельной сборки.
- Встроенная возможность поиска необходимых для сборки файлов (#include файлы, библиотеки, и т. д.).
- Способность кеширования собираемых файлов для ускорения сборки — подобно ccache, но для любых типов файлов.
- Высокая скорость работы[2]
Пример использования
Ниже приведен пример очень простого wscript-файла, который компилирует файл «hello-world.c», используя один из доступных компиляторов языка C:
top = '.' out = 'build' def options(opt): opt.load('compiler_c') def configure(conf): conf.load('compiler_c') def build(bld): bld.program(source = 'hello-world.c', target = 'hello-world', features = 'c cprogram')
Сборка проекта запускается следующей командой:
waf configure build
История
Долгое время проект KDE использовал для сборки пакет GNU build system (Autotools), но в силу ограничений последнего решил перейти на SCons[3]. В рамках данного перехода Thomas Nagy создал служебную программу BKsys, которая должна была работать поверх SCons и предоставлять функциональность, аналогичную Autotools. Однако позже Thomas Nagy решил, что архитектурные недостатки SCons (в частности проблема производительности на крупных проектах) слишком велики и трудно исправимы. Поэтому он решил полностью переписать систему SCons. В результате появился «Waf».
Некоторое время проект KDE рассматривал BKsys (а позже Waf) в качестве своей основной системы сборки, однако далее изменил свой выбор в пользу CMake, так как BKsys не решал проблем SCons, а Waf все ещё находился в состоянии пред-альфы[3].
Программные проекты, использующие Waf
- Cisco Inc.
- Mobileye
- Avalanche Studios
- Samba
- Ardour
- Geany
- JACK Audio Connection Kit
- Midori
- Multisync-gui
- NS-3
- Telepathy Butterfly — MSN-провайдер для Telepathy
- Xmms2
- Node.js
См. также
Примечания
- ↑ Ohloh Analysis Summary - Waf. Ohloh. Архивировано из первоисточника 8 июля 2012. Проверено 19 декабря 2010.
- ↑ Benchmarks of various C++ build tools
- ↑ 1 2 Why the KDE project switched to CMake
Ссылки
- Домашняя страница проекта (англ.)
- Книга о Waf (англ.)
- Описание API (англ.)
- Примеры использования (англ.)
- Список рассылки (англ.)
Системы автоматизации сборки Системы автоматизации сборки Make · Premake · CMake · SCons · Apache Ant · Apache Maven · NAnt · Buildout · MSBuild · Waf · Rake · Autotools Категории:- Программное обеспечение по алфавиту
- Автоматизация сборки
- Инструменты компиляции
- Программное обеспечение с лицензией BSD
- Свободные инструменты для разработки программного обеспечения
- Свободное программное обеспечение, написанное на Python
- Кроссплатформенное программное обеспечение
Wikimedia Foundation. 2010.