SCons

SCons
Логотип программы SCons
Тип инструментальное программное обеспечение
Разработчик Steven Knight
Написана на Python
Операционная система Кроссплатформенное программное обеспечение
Последняя версия 4.10.1[1] (16 ноября 2025; 6 месяцев назад (2025-11-16))
Репозиторий 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.10.1.
  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 года.

См. также

Ссылки

Content Disclaimer

Informasi ini disarikan dari Wikipedia dan disajikan kembali untuk tujuan edukasi. Konten tersedia di bawah lisensi CC BY-SA 3.0. Kami tidak bertanggung jawab atas ketidakakuratan data yang bersumber dari kontribusi publik tersebut.

  1. The information displayed on this website is sourced in part or in whole from Wikipedia and has been adapted for the purpose of restating it. We strive to provide accurate and relevant information, however:
  2. There is no guarantee of absolute accuracy. Wikipedia is an open, collaborative project that can be edited by anyone, so information is subject to change.
  3. It is not intended to constitute professional advice. The content displayed is for informational and educational purposes only. For important decisions (e.g., medical, legal, or financial), please consult a professional.
  4. Content copyright. Wikipedia is licensed under the Creative Commons Attribution-ShareAlike License (CC BY-SA). This means that content may be reused with appropriate attribution and shared under a similar license.
  5. Responsible use. Any risk arising from the use of information from this website is entirely the responsibility of the user.