QBS(빌드툴)
Qbs (build tool)개발자 | Qt 프로젝트 |
---|---|
초기 릴리즈 | 2012년 2월 15일, [1] | 전(
안정된 릴리스 | 1.22.1 / 2022년 4월 [2] , 전( |
저장소 | www |
기입처 | C++, JavaScript, QML, 일부 Java 및 TypeScript |
운영 체제 | 크로스 플랫폼 |
유형 | 자동화, 소프트웨어 개발 도구 구축 |
면허증. | LGPL[3] |
웹 사이트 | wiki![]() |
Qbs(큐브라고 발음)는 소프트웨어의 빌드 프로세스를 관리하기 위한 크로스 플랫폼 프리 오픈 소스 소프트웨어입니다.주로 C/C++와 같은 프로그래밍 언어로 작성된 크고 복잡한 프로젝트를 지원하도록 설계되었습니다.
Qbs는 (이전 qmake와 마찬가지로) 높은 수준의 프로젝트 설명에서 빌드 그래프를 생성하고 낮은 수준의 빌드 그래프(make와 같은)에서 명령을 실행하는 작업을 수행하는 올인원 도구입니다.
Qbs는 원래 Nokia에 의해 만들어졌으며, 그 후 Qt Company가 자사의 Qt 툴킷과 함께 배포합니다.Qt 프레임워크와 통합되어 Qt의 메타 오브젝트 시스템 및 바이너리 리소스(그림 등) 통합에 사용되는 moc(메타 오브젝트 컴파일러) 및 rcc(리소스 컴파일러) 소스 생성을 자동화합니다.
특징들
Qbs는 소스 내 빌드를 위한 메커니즘이 없다는 점에서 독특하며, 단일 소스 트리에서 여러 빌드를 만들 수 있으며, 단일 명령 호출 및 병렬로 빌드하는 것도 포함됩니다.이것은 빌드 디렉토리가 삭제되어도 소스 파일은 영향을 받지 않고 소스 디렉토리에 출력 아티팩트가 기록되지 않도록 하는 주요 기능입니다.
QBS는 특정 프로그래밍 언어, 툴킷 또는 라이브러리를 지원하지 않습니다.이는 많은 QT 관련 툴 및 워크플로우를 지원하는 하드 코드인 qmake와는 대조적입니다.대신 QBS는 다양한 프로그래밍 언어와 도구를 지원할 수 있도록 QML 방언과 자바스크립트로 작성된 모듈 세트를 제공합니다.Qbs는 현재 Android SDK와 NDK, C, C++, Java, NSIS, TypeScript, WiX, Xcode 및 기타 다양한 도구를 지원하는 모듈을 제공합니다.
QBS는 Android, FreeBSD, iOS, Linux, macOS, QNX, tvOS, watchOS 및 Windows를 포함한 많은 플랫폼을 위한 프로젝트를 구축할 수 있으며 Universal Windows Platform 애플리케이션, INTEGITY, VxWorks 및 개발 중인 기타 플랫폼을 지원합니다.
Qt Creator는 내장된 QBS 지원을 제공하며 Visual Studio용 IDE 통합은 제너레이터 기능을 통해 제공됩니다.Xcode 지원은 현재 개발 중입니다.
빌드 프로세스
QBS의 빌드 프로세스는 2단계로 이루어집니다.우선 빌드 그래프는 프로젝트의 구성 파일을 읽고 입력 및 출력 노드의 집합과 이들 사이의 의존성을 유향 비순환 그래프로 계산함으로써 해결된다.그런 다음 실행자는 종속성 규칙에 따라 출력 파일을 생성하는 데 필요한 모든 명령을 병렬로 실행합니다.
각 빌드 프로젝트에는 내부 빌드 그래프 형식의 일련화된 표현을 QBS가 저장하는 디렉토리에 단일 빌드 그래프(*.bg) 파일이 포함됩니다.이 파일을 역직렬화하고 캐시된 정보를 활용하면 QBS는 프로젝트를 매우 신속하게 해결할 수 있으며, 이는 거의 즉각적인 증분 빌드로 이어집니다.빌드 그래프 파일을 삭제하면 전체 프로젝트가 완전히(깨끗하게) 재구축됩니다.이와는 대조적으로 QBS는 빌드 디렉토리에 있는 파일의 타임스탬프에 의존하지 않으며, 그 내용을 조작해도 타겟을 재구축할 수 없습니다.--check-outputs
옵션이 사용됩니다.이는 일부 플랫폼(Windows 등)에서는 빌드 그래프 파일에서 타임스탬프를 읽는 것에 비해 파일 시스템에서 타임스탬프를 읽는 속도가 매우 느리기 때문에 성능상의 이유로 수행됩니다.
QBS 파일의 예
Cpp 응용 프로그램 { 이름: "헬로월드" 파일: "main.cpp" }
역사
Qbs 개발은 2010년 Qmake의 교체 필요성에 따라 Nokia에서 시작되었습니다.QBS의 디자인은 훨씬 더 낮은 학습 곡선, IDE와의 더 나은 통합, 그리고 예측 가능한 행동을 가진 안정적이고 강력한 언어를 제공하는 것을 목표로 합니다.Qbs 1.0은 2013년에[4] 출시되어 그 무렵부터 Qt Company에 의해 Qt Project의 거버넌스 모델로 개발되었습니다.개발자들은 Qt의 자체 빌드 시스템으로 Qbs가 Qmake를 대체할 수 있기를 희망했다.그러나 2018년 10월 qmake 및/또는 cmake를 위해 폐지되었다[5].Qt Company는 2019년 8월 7일 블로그 투고에서 6분기부터 cmake가 Qt의 표준 빌드[6] 시스템이 될 것이라고 밝히고 cmake의 엄청난 인기를 한 [6]요인으로 꼽았다.
Qbs 개발은 외부 자원자에 의해 인계되었으며, 2020년 6월 현재 Qt Project [7]산하에 여전히 적극적으로 유지되고 있다.Qt Company는 Qbs에 대한 추가 개발을 중단한다고 발표했지만 커뮤니티에 [5]의한 향후 Qbs 릴리즈에 필요한 인프라스트럭처를 제공할 것을 약속했습니다.
QBS를 사용하는 응용 프로그램
레퍼런스
- ^ "Introducing Qbs". The Qt Company. Retrieved 2016-06-02.
- ^ "ndex of /official_releases/qbs". download.qt.io. Retrieved 2022-05-13.
- ^ "Qt Licensing - Qt Developer Network". qt-project.org.
- ^ "qbs 1.0.0 released". The Qt Company. Retrieved 2016-06-02.
- ^ a b "Deprecation of Qbs". www.qt.io.
- ^ a b "Technical vision for Qt 6 - The next big release". www.qt.io.
- ^ "GitHub - qbs/qbs: Modern build tool for software projects". GitHub.