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