SCons - это компьютерное программное обеспечение инструмент сборки, который автоматически анализирует зависимости файлов исходного кода и требования к адаптации операционной системы на основе описания программного проекта и генерирует окончательные двоичные исполняемые файлы для установки на целевой платформе операционной системы. Его функция аналогична традиционной системе сборки GNU, основанной на утилите make и инструментах autoconf.
SCons генерирует конфигурации проектов и реализации процессов сборки в форме скриптов Python.
Содержание
- 1 Основные функции
- 2 История и связанные проекты
- 3 Примеры
- 4 См. Также
- 5 Ссылки
- 6 Внешние ссылки
Основные функции
Основные функции SCons включают следующее:
- Файлы конфигурации представляют собой сценарии Python, что означает, что написанные пользователем сборки имеют доступ к полному универсальному языку программирования.
- Автоматический анализ зависимостей встроенный для C, C ++ и Fortran. Анализ зависимостей расширяется с помощью определяемых пользователем сканеров зависимостей для других языков или типов файлов. В отличие от встроенного анализа зависимостей GNU Compiler Collection (GCC), он использует регулярное выражение сканирование включенных исходных файлов.
- Встроенная поддержка для C, C ++, D, Java, Fortran, Objective-C, Yacc, Lex, Qt и SWIG, а также документы TeX и LaTeX. SCons также могут работать с другими языками или типами файлов через определяемые пользователем компоновщики.
- Сборка из центральных репозиториев исходного кода и предварительно созданных целей.
- Встроенная возможность извлечения исходных файлов из системы контроля версий, такие как SCCS, RCS, CVS, Subversion, BitKeeper и Perforce.
- Встроенная возможность использования 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, Solaris, illumos ), MS Windows NT, Apple OS X.
История и связанные проекты
История программного обеспечения SCons началась с утилиты построения программного обеспечения Cons создан Бобом Сайдботэмом в 1999 году. Cons был написан на языке Perl. Он послужил базой для инструмента сборки ScCons, дизайн которого выиграл конкурс проекта SC Build в августе 2000 года. ScCons был основой для SCons.
SCons вдохновил на создание Waf, ранее известного как SCons / BKsys, который появился в сообществе KDE. В течение некоторого времени планировалось использовать его в качестве инструмента сборки для KDE 4 и последующих версий, но от этого усилия отказались в пользу CMake.
Известные приложения, использующие SCons, включают следующее: Битва за Веснот, Battlefield 1942, Doom 3, FCEUX, gem5, gpsd, GtkRadiant, Мадагаскар, Mixxx, MongoDB, Nullsoft Scriptable Install System, OpenNebula, VMware, Wolfenstein: Enemy Territory, XORP и MCA2 и Godot.
Примеры
Следующий пример представляет собой очень простой файл SConstruct, который компилирует программу на C файл hello-world.c с использованием компилятора платформы по умолчанию:
Program ('hello-world.c')
Ниже приводится более сложный пример, который создает среду, используемую для сборки программы hello:
env = Environment () env.Append (CPPFLAGS = ['- Wall', '- g']) env.Program ('hello', ['hello.c', 'main.c'])
См. Также
- Портал бесплатного программного обеспечения с открытым исходным кодом
Ссылки
Внешние ссылки
- Официальный сайт
- Neagu, Adrian (9 июля 2005 г.)), «Сделать альтернативы», Freecode (Freshmeat), получено 21 сентября 2014 г.
- Хане, Людвиг (21 августа 2008 г.), Эмпирическое сравнение SCons и GNU Make (PDF ), Технический университет Дрездена: Genode labs