SCons - SCons

SCons
SCons.png
Оригинальный автор (ы)Стивен Найт
Стабильный выпуск
4.0.1[1] / 16 июля 2020 г.; 4 месяца назад (2020-07-16)
Репозиторийgithub.com/ SConsProject/ scons
Написано вPython
Операционная системаКроссплатформенность
ТипИнструменты разработки программного обеспечения
ЛицензияЛицензия MIT
Интернет сайтбра.org

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'])

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

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

  1. ^ https://scons.org/archives.html
  2. ^ Минусы (веб-сайт), DSMit, заархивировано с оригинал на 2000-08-15.
  3. ^ Сэмюэл, Алекс (2000-08-04). «Результаты второго раунда конкурса программных продуктов: конфигурация, сборка и отслеживание». Получено 2012-10-29.
  4. ^ Нойндорф, Александр (21 июня 2006 г.). «Почему проект KDE перешел на CMake - и как (продолжение)». LWN. Получено 21 июля 2009.
  5. ^ "Компиляция Веснота". Вики. Веснот. Получено 2011-04-11.
  6. ^ "README.txt". id Программное обеспечение. Получено 2015-05-13.
  7. ^ "Загрузки". FCEUX. Получено 2017-04-25.
  8. ^ Gem5.
  9. ^ «SCons сегодня полон побед». СОЭ. iBiblio. 2011-04-05. Получено 2011-04-11.
  10. ^ «Документация разработчика для GtkRadiant 1.6.0 (Zeroradiant)» (Trac). QE сияющий. 2008-06-30. Получено 2009-12-28.
  11. ^ "Установка". Вики. Эй. 2011-02-26. Получено 2011-04-11.
  12. ^ "Mixxx / Компиляция". 2014-08-26.
  13. ^ «Сборка для Linux». MongoDB. 10ген. 30 января 2009 г. Архивировано с оригинал 21 февраля 2009 г.. Получено 8 февраля, 2011.
  14. ^ "УСТАНОВИТЬ". NSIS (исходный код). Источник кузница. 2011-05-28. Архивировано из оригинал на 2012-07-11. Получено 2011-04-11.
  15. ^ "/ SConstruct - OpenNebula - страницы разработки OpenNebula". Проект OpenNebula. Получено 2016-01-09.
  16. ^ "README.txt". id Программное обеспечение. Получено 2017-04-25.
  17. ^ «Модульная архитектура контроллера». Исследовательский центр информационных технологий (FZI) Технологического института Карлсруэ (KIT).
  18. ^ «Введение в систему сборки - последняя версия документации Godot Engine». docs.godotengine.org. Получено 2019-08-19.

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