Jump to content
 







Main menu
   


Navigation  



Main page
Contents
Current events
Random article
About Wikipedia
Contact us
Donate
 




Contribute  



Help
Learn to edit
Community portal
Recent changes
Upload file
 








Search  

































Create account

Log in
 









Create account
 Log in
 




Pages for logged out editors learn more  



Contributions
Talk
 



















Contents

   



(Top)
 


1 Features  





2 Build process  





3 Example Qbs file  





4 History  





5 Applications that use Qbs  





6 References  





7 Further reading  





8 External links  














Qbs (build tool)






فارسی
 

Edit links
 









Article
Talk
 

















Read
Edit
View history
 








Tools
   


Actions  



Read
Edit
View history
 




General  



What links here
Related changes
Upload file
Special pages
Permanent link
Page information
Cite this page
Get shortened URL
Download QR code
Wikidata item
 




Print/export  



Download as PDF
Printable version
 
















Appearance
   

 






From Wikipedia, the free encyclopedia
 


This article relies excessively on referencestoprimary sources. Please improve this article by adding secondary or tertiary sources.
Find sources: "Qbs" build tool – news · newspapers · books · scholar · JSTOR
(June 2016) (Learn how and when to remove this message)

Qbs

Developer(s)

Qt Project

Initial release

February 15, 2012; 12 years ago (2012-02-15)[1]

Stable release

1.22.1 / April 29, 2022; 2 years ago (2022-04-29)[2]

Repository

www.code.qt.io/cgit/qbs/qbs.git

Written in

C++, JavaScript, QML, some Java and TypeScript

Operating system

Cross-platform

Type

Build automation, software development tools

License

LGPL[3]

Website

wiki.qt.io/Qbs Edit this on Wikidata

Qbs (pronounced Cubes) is a cross-platform free and open-source software for managing the build process of software. It was designed to support large, complex projects, written in any number of programming languages, primarily C/C++.

Qbs is an all-in-one tool that generates a build graph from a high-level project description (like its predecessor qmake), and additionally undertakes the task of executing the commands in the low-level build graph (like make).

Qbs was originally created by Nokia, then The Qt Company, who distributes it along with their Qt toolkit. It integrates with the Qt framework, and automates the creation of moc (meta object compiler) and rcc (resource compiler) sources, which are used in Qt's meta-object system and in the integration of binary resources (e.g. pictures).

It has been deprecated by Qt Group in 2018 to redirect the resources to CMake instead "Deprecation of Qbs"..

Features[edit]

Qbs is unique in that it has no mechanism for in-source builds, guaranteeing the ability to create several builds from a single source tree, including building them from a single command invocation and in parallel. This is a key feature, ensuring that source files remain unaffected if a build directory is removed and that no output artifacts are written into the source directory.

Qbs has no built-in support for any particular programming language, toolkit, or library. This is again in contrast to qmake, which hardcodes support for many Qt-related tools and workflows. Instead, Qbs is provided with a set of modules written in a QML dialect and JavaScript that enable support for a variety of programming languages and tools. Qbs currently provides modules supporting the Android SDK and NDK, C, C++, Java, NSIS, TypeScript, WiX, Xcode, and a variety of other tools.

Qbs can build projects for many platforms including Android, FreeBSD, iOS, Linux, macOS, QNX, tvOS, watchOS, and Windows, with support for Universal Windows Platform applications, INTEGRITY, VxWorks, and other platforms under development.

Qt Creator provides built-in Qbs support, and IDE integration for Visual Studio is provided by the generators feature. Support for Xcode is currently under development.

Build process[edit]

The build process in Qbs takes place in two stages. First, the build graph is resolved by reading the project's configuration files and computing the set of input and output nodes and the dependencies between them in a directed acyclic graph. Then the executor executes all of the commands necessary to create the output files, in parallel according to the dependency rules.

Each build project contains a single build graph (*.bg) file in the directory where Qbs stores the serialized representation of its internal build graph format. Deserializing this file and utilizing the cached information allows Qbs to very quickly resolve the project, leading to near-instant incremental builds. Deleting the build graph file causes a complete (clean) rebuild of the entire project. In contrast to make, Qbs does not rely on timestamps of files in the build directory, and tampering with its contents will not lead to targets being rebuilt unless the --check-outputs option is used. This is done for performance reasons because on some platforms (e.g. Windows), reading timestamps from the filesystem is very slow compared to reading them from the build graph file.

Example Qbs file[edit]

CppApplication {
    name: "helloworld"
    files: "main.cpp"
}

History[edit]

Qbs development began at Nokia in the year 2010 in response to the need for a replacement for qmake. Qbs' design aims to provide a much lower learning curve, better integration with IDEs, and a stable and powerful language with predictable behavior. Qbs 1.0 was released in 2013[4] and further developed by the Qt Company beginning around that time under the governance model of the Qt Project. The developers hoped to eventually push for Qbs to replace qmake as Qt's own build system. However, in October 2018 it was deprecated[5] in favor of qmake and/or cmake. In an August 7, 2019 blog post, the Qt Company stated that starting with Qt 6, cmake will become Qt's standard build system[6] and cited cmake's extreme popularity as a factor.[6]

Qbs development was taken over by external volunteers, who as of June 2020 are still actively maintaining it under the Qt Project umbrella.[7] Although the Qt Company announced that they would stop further development on Qbs, they committed to provide the necessary infrastructure for future releases of Qbs by the community.[5]

Applications that use Qbs[edit]

References[edit]

  1. ^ "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. 22 July 2022.
  • Further reading[edit]

    External links[edit]

    GUIs built with Qt

  • Gambas
  • KDE Plasma
  • Kdenlive
  • KDE Partition Manager
  • FeatherPad
  • Lubuntu
  • Lumina
  • LXQt
  • MeeGo
  • Sailfish OS
  • Skanlite
  • VLC
  • Qt technologies

  • QML
  • QtScript
  • Qt Quick
  • Signals and slots
  • Tools

  • qmake
  • Qt Creator
  • Language bindings

  • List for Qt 5
  • PyQt
  • PySide
  • QtRuby
  • Qt Jambi
  • Supported platforms

  • Linux
  • Windows
  • Windows 10 Mobile
  • macOS
  • iOS
  • QNX
  • VxWorks
  • Related topics

  • Mer
  • The Qt Company
  • Qt Project
  • KDE Software
  • Commons

  • Retrieved from "https://en.wikipedia.org/w/index.php?title=Qbs_(build_tool)&oldid=1229112007"

    Categories: 
    Build automation
    Compiling tools
    Qt (software)
    Hidden categories: 
    Articles lacking reliable references from June 2016
    All articles lacking reliable references
     



    This page was last edited on 14 June 2024, at 23:04 (UTC).

    Text is available under the Creative Commons Attribution-ShareAlike License 4.0; additional terms may apply. By using this site, you agree to the Terms of Use and Privacy Policy. Wikipedia® is a registered trademark of the Wikimedia Foundation, Inc., a non-profit organization.



    Privacy policy

    About Wikipedia

    Disclaimers

    Contact Wikipedia

    Code of Conduct

    Developers

    Statistics

    Cookie statement

    Mobile view



    Wikimedia Foundation
    Powered by MediaWiki