SCons

Материал из Википедии — свободной энциклопедии
Перейти к навигации Перейти к поиску
SCons
Логотип программы SCons
Тип инструментальное программное обеспечение
Разработчик Steven Knight
Написана на Python
Операционная система Кроссплатформенное программное обеспечение
Последняя версия 4.4.0[1] (31 июля 2022; 21 месяц назад (2022-07-31))
Репозиторий github.com/SCons/scons
Лицензия MIT
Сайт scons.org

SCons — инструмент для автоматизации сборки программных проектов, разработанный как замена утилиты make с интегрированной функциональностью аналогичной autoconf/automake. SCons автоматически анализирует зависимости между исходными файлами и требования адаптации к операционной системе исходя из описания проекта, и генерирует конечные бинарные файлы для установки на целевую ОС.

SCons использует язык Python в качестве основы, поэтому конфигурация проектов и инструменты для управления процессом сборки являются сценариями на Python.

Возможности[править | править код]

  • Файлы конфигурации являются сценариями на языке Python, что позволяет использовать все возможности этого языка программирования.
  • Встроенная поддержка C, C++, D, Java, Fortran, Objective-C, Yacc, Lex, Qt и SWIG. Возможность генерации документов TeX и LaTeX. Поддержка других языков или форматов файлов может быть реализована с помощью пользовательских сборщиков (builders).
  • Для языков C, C++ и Fortran автоматически анализируются зависимости. В отличие от make не нужно отдельно выполнять команду make depend.
  • Сборка из репозиториев систем контроля версий.
  • Встроенная поддержка получения исходных кодов из SCCS, RCS, CVS, Subversion, BitKeeper и Perforce.
  • Поддержка проектов Microsoft Visual Studio .NET и более ранних версий Visual Studio, с возможностями генерации файлов .dsp, .dsw, .sln и .vcproj.
  • Обнаружение изменения содержимого файлов по контрольным суммам MD5, наряду с традиционным обнаружением изменений по времени записи файла.
  • Возможность параллельной сборки.
  • Встроенная возможность поиска необходимых для сборки файлов (#include файлы, библиотеки, и т. д.).
  • Способность кеширования собираемых файлов для ускорения параллельной сборки — подобно ccache, но для любых типов файлов.
  • Изначальная поддержка кроссплатформенности. В настоящее время работает в Linux и др. POSIX-системах (AIX, *BSD systems, HP-UX, IRIX, Solaris), Windows NT, Mac OS X, OS/2.

Пример использования[править | править код]

В самом простом варианте файл SConstruct будет содержать всего одну строку

Program('main.c')

При выполнении команды scons из файла main.c будет сгенерирована программа mainLinux) или main.exeWindows).

История и связанные проекты[править | править код]

Проект SCons стартовал под именем ScCons и выиграл конкурс Software Carpentry SC Build в августе 2000. Прототипом послужила утилита Cons.

SCons послужил прототипом для проекта Waf, первоначально известного под именем «SCons/BKsys» и рождённого в сообществе KDE. Некоторое время его планировали использовать для KDE4 и последующих версий, но от этой идеи отказались в пользу CMake. [1] Архивная копия от 7 мая 2011 на Wayback Machine

Программные проекты, использующие SCons[править | править код]

Примечания[править | править код]

  1. "SCons 4.4.0". Архивировано 21 августа 2022. Дата обращения: 21 августа 2022.
  2. Kegel, Daniel Understanding The Construction System of Chromium. Google Code (3 апреля 2009). Дата обращения: 21 июля 2009. Архивировано из оригинала 20 марта 2012 года.
  3. Developer documentation for GtkRadiant 1.6.0 (Zeroradiant) (30 июня 2008). Дата обращения: 28 декабря 2009. Архивировано из оригинала 28 сентября 2011 года.

См. также[править | править код]

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