SCons
SCons![]() | |
원저작자 | 스티븐 나이트 |
---|---|
안정된 릴리스 | 4.2.0[1] / 2021년 7월 31일, 전( |
저장소 | github |
기입처 | 파이썬 |
운영 체제 | 크로스 플랫폼 |
유형 | 소프트웨어 개발 도구 |
면허증. | MIT 라이선스 |
웹 사이트 | scons |
SCons는 소프트웨어 프로젝트 설명에서 소스 코드 파일의 의존성과 운영체제 적응 요건을 자동으로 분석하여 타깃 운영체제 플랫폼에 설치하기 위한 최종 바이너리 실행 파일을 생성하는 컴퓨터 소프트웨어 빌드 도구입니다.이 기능은 make 유틸리티와 autoconf 툴을 기반으로 하는 기존의 GNU 빌드 시스템과 유사합니다.
SCons는 Python 스크립트의 형태로 프로젝트 구성과 빌드 프로세스 구현을 생성합니다.
주요 기능
주요 SCon 기능은 다음과 같습니다.
- 구성 파일은 Python 스크립트입니다. 즉, 사용자가 작성한 빌드는 완전한 범용 프로그래밍 언어에 액세스할 수 있습니다.
- C, C++ 및 Fortran에 대한 자동 의존성 분석 기능 내장.종속성 분석은 다른 언어 또는 파일 형식에 대한 사용자 정의 종속성 스캐너를 통해 확장할 수 있습니다.GNU 컴파일러 컬렉션(GCC)의 내장 의존관계 분석과는 달리 포함된 소스 파일에 대한 정규 표현식 검사를 사용합니다.
- C, C++, D, Java, Fortran, Objective-C, Yacc, Lex, Qt 및 SWIG 및 TeX 문서 지원.SCon은 사용자 정의 빌더를 통해 다른 언어 또는 파일 형식을 처리할 수도 있습니다.
- 소스 코드 및 사전 구축된 타겟의 중앙 저장소에서 구축합니다.
- .dsp, .dsw, .sln 및 .vcproj 파일 생성 등 Microsoft Visual Studio를 사용할 수 있는 내장 기능.
- MD5 서명을 사용한 파일 콘텐츠 변경 검출.기존 타임스탬프를 사용하는 옵션 설정 가능.
- 디렉토리 계층에 관계없이 지정된 수의 작업을 동시에 실행하는 병렬 빌드를 수행할 수 있습니다.
- #파일, 라이브러리, 함수 및 typedef를 검색하기 위한 Autoconf와 같은 통합 지원.
- 모든 종속성에 대한 글로벌 뷰이므로 여러 빌드 패스를 수행하거나 대상을 재정렬할 필요가 없습니다.
- C/C++ 컴파일뿐만 아니라 ccache와 같은 여러 빌드 속도를 높이기 위해 캐시에 빌드된 파일을 공유할 수 있습니다.
- 크로스 플랫폼 빌드를 위해 처음부터 설계되었으며 POSIX 시스템(Linux, IBM AIX 및 OS/2, *BSD Unices, HP-UX, SGI IRIX, Solaris, Illumos 포함), MS Windows NT, Apple OS X에서 작동하는 것으로 알려져 있습니다.
SCons의 소프트웨어 역사는 [2]1999년 Bob Sidebotham이 만든 Cons 소프트웨어 구축 유틸리티에서 시작되었습니다.단점은 Perl 언어로 작성되었습니다.2000년 [3]8월 Software Carpentry 프로젝트 SC Build 대회에서 우승한 설계인 ScCons 빌드 툴의 기반 역할을 했습니다.ScCons는 SCons의 기반이었습니다.
SCons는 KDE 커뮤니티에서 등장한 Waf(이전의 SCons/BKsys)의 창조에 영감을 주었습니다.한동안 KDE 4 이상의 빌드 도구로 사용할 계획이 있었지만 CMake를 [4]위해 이러한 노력은 포기되었습니다.
SCon을 사용하는 주요 응용 프로그램은 다음과 같습니다.The Battle for Wesnoth,[5] Battlefield 1942,[citation needed] Doom [6]3, FCEUX,[7] gem5,[8] gpsd,[9] GtkRadiant,[10] 마다가스카르,[11] Mixx,[12] MongoDB,[13] Nullsoft Scriptable Install System,[14] OpenNebula,[15] VMware,[citation needed] 울펜슈타인: 적령기,[16] XORP 및 MCA2,[17] 오픈[18] 파일럿 [19]및 고도트.
예
다음 예시는 기본 플랫폼컴파일러를 사용하여 C 프로그램파일 hello-world.c를 컴파일하는 매우 단순한 SConstruct 파일입니다.
프로그램.('hello-world.c')
다음은 프로그램 hello 구축에 사용되는 환경을 만드는 더 복잡한 예입니다.
부러워하다 = 환경() 부러워하다.추가(CPP플래그=['-벽','-g']) 부러워하다.프로그램.('안녕하세요', ['hello.c', 'main.c'])
「 」를 참조해 주세요.
레퍼런스
- ^ "Archives - SCons".
- ^ 를 클릭합니다Cons (web site), DSMit, archived from the original on 2000-08-15.
- ^ Samuel, Alex (2000-08-04). "Software Carpentry Design Competition Second Round Results Config, Build, and Track categories". Retrieved 2012-10-29.
- ^ Neundorf, Alexander (21 June 2006). "Why the KDE project switched to CMake – and how (continued)". LWN. Retrieved 21 July 2009.
- ^ "CompilingWesnoth". Wiki. Wesnoth. Retrieved 2011-04-11.
- ^ "README.txt". id Software. Retrieved 2015-05-13.
- ^ "Downloads". FCEUX. Retrieved 2017-04-25.
- ^ 를 클릭합니다Gem5.
- ^ "SCons is full of win today". ESR. iBiblio. 2011-04-05. Retrieved 2011-04-11.
- ^ "Developer documentation for GtkRadiant 1.6.0 (Zeroradiant)" (Trac). QE radiant. 2008-06-30. Retrieved 2009-12-28.
- ^ "Installation". Wiki. Ahay. 2011-02-26. Retrieved 2011-04-11.
- ^ "Mixxx/Compiling". 2014-08-26.
- ^ "Building for Linux". MongoDB. 10gen. January 30, 2009. Archived from the original on February 21, 2009. Retrieved February 8, 2011.
- ^ "INSTALL". NSIS (source code). Source forge. 2011-05-28. Archived from the original on 2012-07-11. Retrieved 2011-04-11.
- ^ "/SConstruct - OpenNebula - OpenNebula Development pages". OpenNebula Project. Retrieved 2016-01-09.
- ^ "README.txt". id Software. Retrieved 2017-04-25.
- ^ "Modular Controller Architecture". Research Center for Information Technology (FZI), Karlsruhe Institute of Technology (KIT).
- ^ "openpilot Github repository". comma.ai/. Retrieved 2021-05-10.
- ^ "Introduction to the buildsystem — Godot Engine latest documentation". docs.godotengine.org. Retrieved 2019-08-19.
외부 링크
- 공식 웹사이트
- Neagu, Adrian (9 July 2005), "Make Alternatives", Freecode (Freshmeat), retrieved 21 September 2014
- Hähne, Ludwig (August 21, 2008), Empirical Comparison of SCons and GNU Make (PDF), Technical University Dresden: Genode labs