SCons - SCons
Оригинальный автор (ы) | Стивен Найт |
---|---|
Стабильный выпуск | 4.0.1[1] / 16 июля 2020 г. |
Репозиторий | github |
Написано в | Python |
Операционная система | Кроссплатформенность |
Тип | Инструменты разработки программного обеспечения |
Лицензия | Лицензия MIT |
Интернет сайт | бра |
SCons это компьютерное программное обеспечение инструмент сборки, который автоматически анализирует зависимости файлов исходного кода и требования к адаптации операционной системы на основе описания программного проекта и генерирует окончательные двоичные исполняемые файлы для установки на целевой платформе операционной системы. Его функция аналогична традиционному Система сборки GNU на основе делать полезность и autoconf инструменты.
SCons генерирует конфигурации проекта и реализации процессов сборки в виде Python скрипты.
Основные особенности
Основные функции SCons включают следующее:
- Файлы конфигурации представляют собой скрипты Python, что означает, что пользовательские сборки имеют доступ к полному языку программирования общего назначения.
- Автоматический зависимость встроенный анализ для C, C ++ и Фортран. Анализ зависимостей расширяется с помощью определяемых пользователем сканеров зависимостей для других языков или типов файлов. в отличие от Коллекция компиляторов GNU (GCC) встроенный анализ зависимостей, он использует регулярное выражение поиск включенных исходных файлов.
- Встроенная поддержка C, C ++, D, Ява, Фортран, Цель-C, Yacc, Лекс, Qt и SWIG, а также TeX и Латекс документы. SCons также могут обрабатывать другие языки или типы файлов через определяемые пользователем конструкторы.
- Сборка из центральных репозиториев исходного кода и заранее созданных целей.
- Встроенная возможность извлекать исходные файлы из контроль версий системы, такие как SCCS, RCS, CVS, Subversion, BitKeeper и Волей случая.
- Встроенная возможность использования Microsoft Visual Studio, включая создание файлов .dsp, .dsw, .sln и .vcproj.
- Обнаружение изменений содержимого файлов с помощью MD5 подписи; дополнительная настраиваемая возможность использовать традиционные метки времени.
- Возможность выполнять параллельные сборки, поддерживая указанное количество одновременно выполняемых заданий независимо от иерархии каталогов.
- Интегрированная поддержка Autoconf для поиска #include файлов, библиотек, функций и typedefs.
- Глобальное представление всех зависимостей, поэтому многократные проходы сборки или переупорядочивание целей не требуются.
- Возможность совместного использования встроенных файлов в кеше для ускорения нескольких сборок, например ccache но для любого типа целевого файла, а не только для компиляции C / C ++.
- Разработан с нуля для кроссплатформенных сборок и известен тем, что работает над POSIX системы (включая GNU /Linux, IBM AIX и OS / 2, * BSD Unices, HP-UX, SGI IRIX, Солярис, иллюзия ), РС Windows NT, яблоко OS X.
История программного обеспечения SCons началась с Минусы Утилита для создания программного обеспечения, созданная Бобом Сайдботэмом в 1999 году.[2] Минусы были написаны в Perl язык. Он служил базой для ScCons инструмент сборки, дизайн, который выиграл Программное обеспечение Конкурс проекта SC Build в августе 2000 года.[3] ScCons был основой SCons.
SCons вдохновили на создание Waf, ранее известный как SCons / BKsys, возникшие в KDE сообщество. Некоторое время планировалось использовать его в качестве инструмента сборки для KDE 4 и последующих версий, но от этого отказались в пользу CMake.[4]
Известные приложения, использующие SCons, включают следующее: Битва за Веснот,[5] Поле боя 1942,[нужна цитата ] Судьба 3,[6] FCEUX,[7] gem5,[8] gpsd,[9] GtkRadiant,[10] Мадагаскар,[11] Mixxx,[12] MongoDB,[13] Система установки Nullsoft Scriptable,[14] OpenNebula,[15] VMware,[нужна цитата ], Wolfenstein: Enemy Territory,[16] XORP и MCA2,[17] и Годо.[18]
Примеры
Следующий пример представляет собой очень простой файл SConstruct, который компилирует файл программы C hello-world.c с использованием компилятора платформы по умолчанию:
Программа('hello-world.c')
Ниже приведен более сложный пример, который создает среду, используемую для создания программы hello:
env = Среда()env.Добавить(CPPFLAGS=['-Стена','-грамм'])env.Программа('Привет', ['Привет', 'main.c'])
Смотрите также
Рекомендации
- ^ https://scons.org/archives.html
- ^ Минусы (веб-сайт), DSMit, заархивировано с оригинал на 2000-08-15.
- ^ Сэмюэл, Алекс (2000-08-04). «Результаты второго раунда конкурса программных продуктов: конфигурация, сборка и отслеживание». Получено 2012-10-29.
- ^ Нойндорф, Александр (21 июня 2006 г.). «Почему проект KDE перешел на CMake - и как (продолжение)». LWN. Получено 21 июля 2009.
- ^ "Компиляция Веснота". Вики. Веснот. Получено 2011-04-11.
- ^ "README.txt". id Программное обеспечение. Получено 2015-05-13.
- ^ "Загрузки". FCEUX. Получено 2017-04-25.
- ^ Gem5.
- ^ «SCons сегодня полон побед». СОЭ. iBiblio. 2011-04-05. Получено 2011-04-11.
- ^ «Документация разработчика для GtkRadiant 1.6.0 (Zeroradiant)» (Trac). QE сияющий. 2008-06-30. Получено 2009-12-28.
- ^ "Установка". Вики. Эй. 2011-02-26. Получено 2011-04-11.
- ^ "Mixxx / Компиляция". 2014-08-26.
- ^ «Сборка для Linux». MongoDB. 10ген. 30 января 2009 г. Архивировано с оригинал 21 февраля 2009 г.. Получено 8 февраля, 2011.
- ^ "УСТАНОВИТЬ". NSIS (исходный код). Источник кузница. 2011-05-28. Архивировано из оригинал на 2012-07-11. Получено 2011-04-11.
- ^ "/ SConstruct - OpenNebula - страницы разработки OpenNebula". Проект OpenNebula. Получено 2016-01-09.
- ^ "README.txt". id Программное обеспечение. Получено 2017-04-25.
- ^ «Модульная архитектура контроллера». Исследовательский центр информационных технологий (FZI) Технологического института Карлсруэ (KIT).
- ^ «Введение в систему сборки - последняя версия документации Godot Engine». docs.godotengine.org. Получено 2019-08-19.
внешняя ссылка
- Официальный веб-сайт
- Негу, Адриан (9 июля 2005 г.), «Сделайте альтернативы», Freecode (свежее мясо), получено 21 сентября 2014
- Хене, Людвиг (21 августа 2008 г.), Эмпирическое сравнение SCons и GNU Make (PDF ), Технический университет Дрездена: лаборатории Genode