Из Википедии, бесплатной энциклопедии
Перейти к навигации Перейти к поиску

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

Ссылки [ править ]

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

Внешние ссылки [ править ]

  • Официальный веб-сайт
  • Neagu, Adrian (9 июля 2005 г.), "Make Alternatives" , Freecode (Freshmeat) , получено 21 сентября 2014 г.
  • Хене, Людвиг (21 августа 2008 г.), Эмпирическое сравнение SCons и GNU Make ( PDF ) , Технический университет Дрездена: лаборатории Genode