aboutsummaryrefslogtreecommitdiffstats
path: root/doc/qbs.qdoc
Commit message (Collapse)AuthorAgeFilesLines
* Update build environment and Bionic Docker imageRichard Weickelt2019-10-241-4/+4
| | | | | | | Update also the docs to refer to the Ubuntu image rather than Debian. Change-Id: I2c64f8f169c7a8ff9d5090ebc55c56bffd957659 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* Introduce the session commandChristian Kandeler2019-09-181-3/+4
| | | | | | | | | | Offers a JSON-based API for interaction with other tools via stdin/ stdout. This allows for proper qbs support in IDEs that do not use Qt or even C++. Change-Id: Ib051a40b7ebe1c6e0c3147cca9bd96e7daec1fde Reviewed-by: Jörg Bornemann <joerg.bornemann@qt.io>
* baremetal: Long live the IAR EW project generator for MSP430Denis Shienkov2019-08-281-1/+1
| | | | | | | | | | | | | | | | | | | | | | | Right now it is possible to generate a native projects for the IAR Embedded Workbench IDE, e.g. using the following command: qbs generate -g iarew7 -d <path/to/build/directory> -f <path/to/qbs/project> profile:<your/qbs/profile> We need in a valid IAR EW QBS profile, from which the generator take a desired target architecture and other stuff. The IAR EW generator has a semi-intelligent logic, it parses a source QBS project and converts a compiler flags and other stuff to an appropriate configurations of the native IAR EW project. Currently it is supported only one 'iarew7' generator which allow to generate a projects for the IAR EW for MSP430 for all versions of 7 series. Tested with the IAR EW for MSP430 v7.12.4, using as the QBS bare-metal examples, and as other projects. Change-Id: Ic0bbc82e6ebb3b04bced639797976e432809171f Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* baremetal: Long live the KEIL UV project generator for ARMDenis Shienkov2019-08-201-1/+1
| | | | | | | | | | | | | | | | | | | | | | | Right now it is possible to generate a native projects for the KEIL UVision IDE, e.g. using the following command: qbs generate -g keiluv5 -d <path/to/build/directory> -f <path/to/qbs/project> profile:<your/qbs/profile> We need in a valid KEIL QBS profile, from which the generator take a desired target architecture and other stuff. The KEIL UV generator has a semi-intelligent logic, it parses a source QBS project and converts a compiler flags and other stuff to an appropriate configurations of the native KEIL UVsion project. Currently it is supported only one 'keiluv5' generator which allow to generate a projects for the KEIL UVision v5 for ARM architecture. Tested with the KEIL UVision v5.23 for ARM, using as the QBS bare-metal examples, and as other projects. Change-Id: I3af9d01f25a9570a99a62d4ce2c30fec3566b9a1 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* doc: Add missed information about KEIL uVision generatorDenis Shienkov2019-08-021-3/+26
| | | | | Change-Id: Ib69952c190555401c6acdb48971ec0833215723a Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* baremetal: Long live the IAR EW project generator for STM8Denis Shienkov2019-08-011-1/+2
| | | | | | | | | | | | | | | | | | | | | | | Right now it is possible to generate a native projects for the IAR Embedded Workbench IDE, e.g. using the following command: qbs generate -g iarew3 -d <path/to/build/directory> -f <path/to/qbs/project> profile:<your/qbs/profile> We need in a valid IAR EW QBS profile, from which the generator take a desired target architecture and other stuff. The IAR EW generator has a semi-intelligent logic, it parses a source QBS project and converts a compiler flags and other stuff to an appropriate configurations of the native IAR EW project. Currently it is supported only one 'iarew3' generator which allow to generate a projects for the IAR EW for STM8 for all versions of 3 series. Tested with the IAR EW for STM8 v3.11.1, using as the QBS bare-metal examples, and as other projects. Change-Id: I47880d62cd1e81ed7bbfba840a5af0c558065013 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* baremetal: Long live the IAR EW project generator for 8051Denis Shienkov2019-07-181-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | Right now it is possible to generate a native projects for the IAR Embedded Workbench IDE, e.g. using the following command: qbs generate -g iarew10 -d <path/to/build/directory> -f <path/to/qbs/project> profile:<your/qbs/profile> We need in a valid IAR EW QBS profile, from which the generator take a desired target architecture and other stuff. The IAR EW generator has a semi-intelligent logic, it parses a source QBS project and converts a compiler flags and other stuff to an appropriate configurations of the native IAR EW project. Currently it is supported only one 'iarew10' generator which allow to generate a projects for the IAR EW for 8051 for all versions of 10 series. Tested with the IAR EW for 8051 v10.10.1, using as the QBS bare-metal examples, and as other projects. Change-Id: If8a7397bebf6176010d42cfda41230e50a499a69 Reviewed-by: Ivan Komissarov <ABBAPOH@gmail.com> Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* baremetal: Long live the IAR EW project generator for AVRDenis Shienkov2019-07-111-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | Right now it is possible to generate a native projects for the IAR Embedded Workbench IDE for Microchip AVR architecture, e.g. using the following command: qbs generate -g iarew7 -d <path/to/build/directory> -f <path/to/qbs/project> profile:<your/qbs/profile> We need in a valid IAR EW QBS profile, from which the generator take a desired target architecture and other stuff. The IAR EW generator has a semi-intelligent logic, it parses a source QBS project and converts a compiler flags and other stuff to an appropriate configurations of the native IAR EW project. Currently it is supported only one 'iarew7' generator which allow to generate a projects for the IAR EW for AVR for all versions of 7 series. Tested with the IAR EW for AVR v7.20.1, using as the QBS bare-metal examples, and as other projects. Change-Id: Ic5811e579e86b868d5946637db9d8780ef47968b Reviewed-by: Ivan Komissarov <ABBAPOH@gmail.com> Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* baremetal: Long live the IAR EW project generator for ARMDenis Shienkov2019-07-111-1/+26
| | | | | | | | | | | | | | | | | | | | | | | | Right now it is possible to generate a native projects for the IAR Embedded Workbench IDE, e.g. using the following command: qbs generate -g iarew8 -d <path/to/build/directory> -f <path/to/qbs/project> profile:<your/qbs/profile> We need in a valid IAR EW QBS profile, from which the generator take a desired target architecture and other stuff. The IAR EW generator has a semi-intelligent logic, it parses a source QBS project and converts a compiler flags and other stuff to an appropriate configurations of the native IAR EW project. Currently it is supported only one 'iarew8' generator which allow to generate a projects for the IAR EW for ARM for all versions of 8 series. Tested with the IAR EW for ARM v8.20, v8.32, v8.40, using as the QBS bare-metal examples, and as other projects. Change-Id: I2aa24d5a635f1f5a0e645bec8c30053e960d90a3 Reviewed-by: Ivan Komissarov <ABBAPOH@gmail.com> Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* doc: Describe possible build options for QBSIvan Komissarov2019-05-201-0/+139
| | | | | Change-Id: Iec02aa7664efef27e562ab563436a389b3b908bc Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* doc: add example how to use multiplexingIvan Komissarov2019-05-171-0/+6
| | | | | Change-Id: I67697fb5b4ddb2fcd7f42a2e70247038fc98f082 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* doc: Fix the section about docker containersIvan Komissarov2019-05-071-4/+8
| | | | | Change-Id: Ifb152a1c7a90422a4eed9cf5a790aa10518f27a9 Reviewed-by: Leena Miettinen <riitta-leena.miettinen@qt.io>
* doc: Add Building Qbs with Qbs sectionIvan Komissarov2019-05-061-2/+42
| | | | | | | | | | This section describes how to build Qbs with Qbs and how to run auto tests Change-Id: I3587f3a36262802354a79eb037697f9c410f7171 Reviewed-by: Richard Weickelt <richard@weickelt.de> Reviewed-by: Leena Miettinen <riitta-leena.miettinen@qt.io> Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* Update Debian Stretch Docker imageRichard Weickelt2019-04-291-6/+13
| | | | | | | | | | | | | | | | | The Debian Docker image is outdated and the user experience is not optimal, especially when using it on Linux hosts. - Update Qt to 5.11.3 and build it from source since the Qt installer is overly complicated to use - Create a Qt profile and make it the default - Add entrypoint script to avoid file permission problems on Linux hosts - Add docker-compose.yml file for easier command line usage - Improve documentation Task-number: QBS-1402 Task-number: QBS-1438 Change-Id: I2cbe53ed115fc8cbb96c1e1305297c581e7d0589 Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* Increase minimum required Qt versionChristian Kandeler2019-04-261-1/+1
| | | | | | | | | We recently merged a patch that used Qt 5.10 functionality. Let's use this opportunity to increase the minimum required Qt version. We choose 5.11, since that is also Qt Creator's requirement. Change-Id: I729a7e840ab9cdafb8f9fba604e413cd4b822bed Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* Doc: mention that the default build configuration is debugMitch Curtis2019-02-181-0/+2
| | | | | | Change-Id: I906810c52ebb02dfce2022feaf76b23fa050f8b4 Reviewed-by: Leena Miettinen <riitta-leena.miettinen@qt.io> Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* Detect Qt via a module providerChristian Kandeler2019-02-121-5/+5
| | | | | | | | | | | | | | | | | Creation of qbs modules for Qt is now done on demand during project resolving. The qmake executable(s) are looked up via PATH or taken from the Qt.qmakeFilePaths provider property. As a result, Qt projects can now be built without a profile. The qtprofilesetup library is gone; its code is now in the module provider. I kept the C++ -> JavaScript conversion as straightforward as possible and mostly resisted the temptation to "optimize". The setup-qt tool still exists and mainly sets Qt.qmakeFilePaths. [ChangeLog] It is no longer required to call setup-qt before building Qt projects. Change-Id: I5b7e4711ec47b996911c499f29d8129d90e4731e Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* Add detailed information about profilesRichard Weickelt2019-01-301-17/+56
| | | | | | | | | | | | | The documentation was missing essential inforation about the concept of profiles. This is especially important for beginners. Although profiles would deserve a page of its own, I decided to extend the configuring page because a lot of useful information was already there. Task-number: QBS-1386 Change-Id: Ia9c33eb3babcfe902b55583b15db9c4a9ecf87a4 Reviewed-by: Richard Weickelt <richard@weickelt.de> Reviewed-by: Leena Miettinen <riitta-leena.miettinen@qt.io> Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* Fix page navigation links for Target PlatformsRichard Weickelt2019-01-291-3/+3
| | | | | | | | The user manual defines a strict navigation flow. The "Target Platforms" document was added only recently, but it wasn't properly integrated. Change-Id: I69edb60fddba0f012d25dce5a91ed746d54abe87 Reviewed-by: Leena Miettinen <riitta-leena.miettinen@qt.io>
* Introduce module providersChristian Kandeler2019-01-231-1/+59
| | | | | | | | | | | | | | | | | | | | | | If a dependency is not found, we now search for a matching module provider that can generate one for us. We also provide a generic fall-back provider which uses pkg-config to locate the dependency (but could be extended to incorporate other methods in the future). This is the most important part of this change for practical purposes, as it makes hundreds of popular libraries available for use in qbs projects without users having to write any boilerplate code. In a future patch, a module provider could also be used to implement the functionality of the qtprofilesetup library, relieving users of the need to create a profile for building Qt applications. [ChangeLog] The Depends item now falls back to pkg-config to locate dependencies whose names do not correspond to a qbs module. Fixes: QBS-1107 Change-Id: Ifd4f05c237cf58cd9fe707c3da648d3dbb33e82b Reviewed-by: Leena Miettinen <riitta-leena.miettinen@qt.io> Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* Fix outdated documentationChristian Kandeler2019-01-181-6/+6
| | | | | | | Configuration names must be prefixed with "config:" these days. Change-Id: I6e858caacc3e2ddad20fd5ba980848fafeb01928 Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* Doc: Add information about PathProbeIvan Komissarov2019-01-071-0/+1
| | | | | | | | | Also adds new section to the Reference Task-number: QBS-1187 Change-Id: I0798ec1791cdcb2177ee28bb8c180d1bd6375d30 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io> Reviewed-by: Leena Miettinen <riitta-leena.miettinen@qt.io>
* Get rid of the need for "import qbs"Joerg Bornemann2018-06-221-12/+0
| | | | | | | | | | | | It is difficult to place why the "import qbs" statement is needed. What it does is providing the default imports like CppApplication. There's no advantage in having a project file without this base import, so we always import "qbs" implicitly now. [ChangeLog] Removed the need to add "import qbs" to project files. Change-Id: I5954fbbade361188d1d54815cc3bf806fb461e9d Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* Add support for system-level settingsChristian Kandeler2018-06-011-0/+4
| | | | | | | | | | | | | In addition to the traditional per-user settings, there is now also a system-wide settings file affecting all users. The file's platform- specific default location can be overridden at build time. The qbs-config tool can write these settings via the new --system option. [ChangeLog] Introduced the concept of system-level qbs settings Change-Id: Ie6f675a74e96ce1fa7b2dd0712f6106071e848a6 Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* Add a Makefile generatorChristian Kandeler2018-05-091-0/+53
| | | | | | | | | | | | | At the very least, this is a useful debugging tool, as it displays the artifacts part of the build graph in a familiar format. Tested successfully with the qbs project itself: The generated Makefile could be used to build a working qbs on Linux and Windows. [ChangeLog] Added a Makefile generator Task-number: QBS-33 Change-Id: I8165168d9273bdb4853d4ac566b72087f9104f7a Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* Add QtScript git submoduleJoerg Bornemann2018-04-091-0/+1
| | | | | | | | | | | | | | | This adds QtScript as a git submodule to build the qbsscriptengine library. QtDeclarative support has been stripped out. We don't need that. Windows CE and Symbian platform support has been removed. JIT has been disabled, which improves resolve/rule execution by 8%. [ChangeLog] Bundled QtScript as a submodule. Task-number: QBS-913 Change-Id: Idfbaf06eb2cef3985e5eae955f231686499f7754 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io> Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>
* Merge 1.11 into masterChristian Kandeler2018-04-051-2/+37
|\ | | | | | | Change-Id: Ia9e19bf1317c55d84602e4e0f54f7a4f412dd600
| * Doc: Add a section about licensingLeena Miettinen2018-03-211-2/+37
| | | | | | | | | | | | | | Task-number: QBS-1314 Change-Id: I2cfdf2d826a31523823cec195585725851acd2be Reviewed-by: Kai Koehne <kai.koehne@qt.io> Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* | Bump required Qt versionChristian Kandeler2018-04-031-1/+1
| | | | | | | | | | | | | | ... and remove the workarounds that are no longer needed. Change-Id: Ie0ae19279633784f8cea3bdbe4a9eeaa308689aa Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* | Documentation: Fix syntax errorChristian Kandeler2018-03-141-1/+1
| | | | | | | | | | | | Change-Id: I4209bd3ff88ce64c2089c23f43fbb8026613915e Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io> Reviewed-by: Leena Miettinen <riitta-leena.miettinen@qt.io>
* | Add new property type "varList"Christian Kandeler2018-03-131-0/+4
|/ | | | | | | | | | | While we could already assign arrays to variant properties, these would not have list semantics when merging modules, so this fills a gap in our type system. [ChangeLog] Added new property type "varList". Change-Id: I54581119f60582f2b11290e13cd4920fd72f55a1 Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* Fix docs regarding help2man - it's not a "Perl module"Jake Petroules2018-01-081-1/+1
| | | | | | | Amends 8027000 Change-Id: I7f79e93c9160bef626aa49f4af4d507efc12cb77 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* Account for the Qbs docs build now requiring additional dependenciesJake Petroules2018-01-051-0/+11
| | | | | | | | | | | | | | Document it, and install the dependencies in the Docker images. For the man page build, the installed version of the qbs app is now used to get the help text rather than the non-installed version, since the non-installed version may not be able to find all library dependencies (like Qt) on some platforms by default. The build also now depends on the other executables as well since their presence affects the output of qbs --help. Change-Id: Ic9896231aa76a346180bf30f7b2483391f5e4ea0 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* Doc: Describe constructing the path to the installation target dirLeena Miettinen2018-01-031-0/+3
| | | | | | | | Add an example that specifies values for the properties. Task-number: QBS-1237 Change-Id: I645a1b0bca099411035fae98acdbf27e7a942d3d Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* Doc: Add links to CLI command optionsLeena Miettinen2018-01-031-3/+4
| | | | | | | | | Added targets to the file where the options are documented, to avoid having to use the weird URLs automatically generated by QDoc. Change-Id: I3bffa79b564ffb9582f814124881dcd0cc60aa7d Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* Doc: Use the \QBS macro for the product nameLeena Miettinen2017-12-221-3/+3
| | | | | Change-Id: I5cf6c06035af309fc8460ae0246af10308eea57b Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* Doc: Add some links to commands and propertiesLeena Miettinen2017-12-221-67/+56
| | | | | | | Usually, replace the \c command with the \l command. Change-Id: I062e9a3f34874e832c972773b88d58225e1621b0 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* Doc: Move external link URL to the external-resources fileLeena Miettinen2017-12-221-1/+1
| | | | | Change-Id: I924e1354e870df990accb5f4778b4d34797535c1 Reviewed-by: Jake Petroules <jake.petroules@qt.io>
* Doc: Use QML commands to document modulesLeena Miettinen2017-12-211-11/+10
| | | | | | Task-number: QBS-1245 Change-Id: I996bb44a1db9aae71ef42bca87265371de951272 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* Doc: Use QML commands to document Qbs convenience itemsLeena Miettinen2017-11-301-1/+1
| | | | | | Task-number: QBS-1245 Change-Id: I158e4c91b9306e74919901935f7d8eb546623d41 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* Doc: Use QDoc QML commands to document Qbs language itemsLeena Miettinen2017-11-301-17/+19
| | | | | | Task-number: QBS-1245 Change-Id: I470a629312b1c65ea9e51c603607c486115a304c Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* Doc: Describe the build process at a general levelLeena Miettinen2017-11-141-9/+101
| | | | | | | Add an image. Change-Id: Ia08903501c9ef6d210121ef69ea448308920d849 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* Doc: add a page describing what multiplexing is and how it worksJake Petroules2017-10-231-2/+58
| | | | | | | Change-Id: I98415837ff441312333b3b038f3989397f505215 Reviewed-by: Leena Miettinen <riitta-leena.miettinen@qt.io> Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io> Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* Document how to target common platformsLeena Miettinen2017-10-231-0/+1
| | | | | | | Task-number: QBS-1183 Change-Id: I53f1a8f44f5ea727c797a8cf3c37948ac7fc3fea Reviewed-by: Leena Miettinen <riitta-leena.miettinen@qt.io> Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* Doc: Describe porting qmake projects to QbsLeena Miettinen2017-10-051-5/+6
| | | | | | Task-number: QBS-407 Change-Id: Ia2f59288e2f9aca0d9fed800ee52c4082cf18d07 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* Doc: Describe using Qbs Settings dialog to manage settingsLeena Miettinen2017-10-041-0/+23
| | | | | Change-Id: Ib96e452ba459be449fdd30edef002bccf51fab3e Reviewed-by: Kai Koehne <kai.koehne@qt.io>
* Doc: Create a CLI referenceLeena Miettinen2017-10-041-1/+1
| | | | | | | | | | | | | Each command is described on a separate page. Option and parameter descriptions are fetched from include files. \group and \ingroup commands are used to create a table that shows the CLI commands and short descriptions (from \brief commands). Task-number: QBS-947 Change-Id: I956c0e029f87e98162e03206a79baef604f1d55e Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* Merge remote-tracking branch 'origin/1.9'Joerg Bornemann2017-09-261-1/+1
|\ | | | | | | Change-Id: I40c1ea23e7351deac715958783158c089e65a02d
| * Doc: Update the cpp module exampleJoerg Bornemann2017-09-251-1/+1
| | | | | | | | | | | | | | | | Remove the outdated property precompiledHeader from the simplified cpp module. Use includePaths as example instead. Change-Id: Ib51d97a10d4853b09dc475ad1257b7888758c907 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* | Doc: Update supported platforms and build requirementsLeena Miettinen2017-09-151-2/+37
| | | | | | | | | | | | | | | | | | | | | | | | | | - Synchronize required versions of tools with Qt Creator 4.4, where applicable. - List currently tested platforms. - Move the instructions from the README to the Qbs Manual and add the URL to product documentation. Task-number: QBS-1071 Change-Id: I5d710972bd6b686b18f02a1bd7db5e8356e09b7a Reviewed-by: Jake Petroules <jake.petroules@qt.io> Reviewed-by: Kai Koehne <kai.koehne@qt.io>