aboutsummaryrefslogtreecommitdiffstats
path: root/doc/reference/cli
Commit message (Collapse)AuthorAgeFilesLines
* Introduce the session commandChristian Kandeler2019-09-182-0/+55
| | | | | | | | | | 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 ARMDenis Shienkov2019-07-111-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 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>
* bare-metal: Add SDCC toolchain supportDenis Shienkov2019-04-101-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This commit adds a basic support for the SDCC compiler: * http://sdcc.sourceforge.net/ As this compiler support multiple architectures, then it is impossible to uniquely identify the current architecture by dumping of the pre-defined macros (because its content depends on a target flag). In this case the cpp.architecture will contains a default architecture (which is dumped with an omitted target flag). To use it with Qt Creator, it is enough to add there a desired Kit with a custom SDCC C/C++ compiler, and then set the following in the Kit's Qbs profile settings: * Key: qbs.toolchainType * Value: sdcc To create the SDCC profile it is enougth to use the following command: qbs setup-toolchains --type sdcc <path/to/sdcc/compiler/binary> <profile name> A toolchain type can be omitted; in this case the QBS will tries to detect the toolchain type from the specified compiler name. Also it is possible to auto-detect the SDCC toolchain from the PATH environment using the following command: qbs setup-toolchain --detect At current time are supported only the 8051 (aka MCS51) architecture; other architectures can be added later. Change-Id: I8cc239d62e35472ab667e054a64a1e59c2d548bd Reviewed-by: Richard Weickelt <richard@weickelt.de> Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* bare-metal: Add possibility to create the KEIL toolchain profileDenis Shienkov2019-02-191-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | ... from the qbs console using the 'setup-toolchains' command. To create the KEIL profile it is enougth to use the following command: qbs setup-toolchains --type keil <path/to/keil/compiler/binary> <profile name> A toolchain type can be omitted; in this case the QBS will tries to detect the toolchain type from the specified compiler name. Also it is possible to auto-detect the KEIL toolchain from the PATH environment using the following command: qbs setup-toolchain --detect At current time are supported the following KEIL toolchains: * for 8051 * for ARM Change-Id: I80241866c3ec49a4294d896c70b65b75a2341a2a Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* bare-metal: Add possibility to create the IAR toolchain profileDenis Shienkov2019-02-181-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | ... from the qbs console using the 'setup-toolchains' command. To create the IAR profile it is enougth to use the following command: qbs setup-toolchains --type iar <path/to/iar/compiler/binary> <profile name> A toolchain type can be omitted; in this case the QBS will tries to detect the toolchain type from the specified compiler name. Also it is possible to auto-detect the IAR toolchain from the PATH environment using the following command: qbs setup-toolchain --detect At current time are supported the following IAR toolchains: * for 8051 * for ARM * for AVR Change-Id: I5cdc406e475da7c6649427138b8852239012dbea Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* Clarify the meaning and usage of the build configuration parameterRichard Weickelt2019-02-112-11/+24
| | | | | | | | | | | | The documentation for the build configuration parameter was a bit confusing. It was also not explained that parameter assignments before the first occurrence of config are global. This patch explains config in more detail and relates it to qbs.configurationName and qbs.buildVariant. Task-number: QBS-1425 Change-Id: I478f7228aaa0696149f937599b89f785a65c6717 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io> Reviewed-by: Leena Miettinen <riitta-leena.miettinen@qt.io>
* Add detailed information about profilesRichard Weickelt2019-01-303-3/+3
| | | | | | | | | | | | | 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>
* Introduce module providersChristian Kandeler2019-01-233-0/+13
| | | | | | | | | | | | | | | | | | | | | | 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>
* Add "show progress" support on WindowsAndreas Zieringer2018-10-301-2/+0
| | | | | | | | Should work with all console types. Fixes: QBS-1407 Change-Id: I5144469d70d79a263f9960092abda9a3d83462a1 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* Doc: Fix snippet markerLeena Miettinen2018-08-101-1/+1
| | | | | | | | This probably worked, because 'jobs' is included right above 'job-limits'. Change-Id: I5d1ca711469f4f39bbd7fa86c78f888792b1a7cf Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* Add support for job poolsChristian Kandeler2018-08-082-0/+17
| | | | | | | | | | | | | | | | | | | | | | Commands can now be assigned to an arbitrary job pool and a limit for the number of concurrently running jobs in such pools can be provided in a number of ways: - via the build command line: qbs --job-limits linker:1 - via the settings: qbs config preferences.jobLimit.linker 1 - in a project file: JobLimit { jobPool: "linker"; jobCount: 1 } We provide two job pools ourselves with the cpp module: "compiler" and "linker". [ChangeLog] Added the concept of job pools for limiting concurrent execution of commands by type Task-number: QBS-743 Change-Id: Ib3f361dbc73093e342bf0eba0daf2079a2b3a8ce Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io> Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* Document the list-products commandChristian Kandeler2018-06-151-0/+63
| | | | | Change-Id: I948e6251a97b0af94081255a79c11b18d6c8e9d4 Reviewed-by: Leena Miettinen <riitta-leena.miettinen@qt.io>
* Fix CLI documentationChristian Kandeler2018-06-1511-11/+11
| | | | | | | Adapt to the change in how to specify the build configuration name. Change-Id: Ia339d3c991e7b9f82b23ed7f40c5eea19f003dd1 Reviewed-by: Leena Miettinen <riitta-leena.miettinen@qt.io>
* Add support for system-level settingsChristian Kandeler2018-06-015-8/+66
| | | | | | | | | | | | | 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>
* Documentation: Work around qdoc quirkChristian Kandeler2018-05-254-5/+5
| | | | | | | | Apparently, the name of a snippet identifier cannot have the name of another snippet identifier as a substring. Change-Id: Ic82a26f3e05daa627f2de36d330e31216cf0a76e Reviewed-by: Leena Miettinen <riitta-leena.miettinen@qt.io>
* Documentation: Fix use of outdated command-line syntaxChristian Kandeler2018-04-231-1/+1
| | | | | | | | | This was overlooked when we introduced the "config" key. Task-number: QBS-1332 Change-Id: I4b12c2a03995613f6c6956545c6ba2fd7c9feadd Reviewed-by: Leena Miettinen <riitta-leena.miettinen@qt.io> Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* Doc: Fix a broken link to the qbs moduleLeena Miettinen2018-02-011-1/+1
| | | | | | | | The commit to remove this file is in master, so this link needs to be fixed in 1.11. Change-Id: Ieb2dc1a6800f271783cd8f39e48dfbe7eb3bcc65 Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* Doc: Add links to CLI command optionsLeena Miettinen2018-01-032-0/+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 QML commands to document modulesLeena Miettinen2017-12-213-3/+3
| | | | | | Task-number: QBS-1245 Change-Id: I996bb44a1db9aae71ef42bca87265371de951272 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* Doc: Use QDoc QML commands to document Qbs language itemsLeena Miettinen2017-11-305-16/+16
| | | | | | Task-number: QBS-1245 Change-Id: I470a629312b1c65ea9e51c603607c486115a304c Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* Give the setupRunEnvironment script an additional parameterChristian Kandeler2017-11-222-0/+11
| | | | | | | | | | | Required by follow-up commit. [ChangeLog] The Module.setupRunEnvironment script now has a new parameter "config". Users can set it via the --setup-run-env-config option of the run command. Change-Id: I1be57fcff5321874cf3dcf4fb3a7ef7d6f69a8a5 Reviewed-by: Jake Petroules <jake.petroules@qt.io>
* CLI: Fix the --version optionChristian Kandeler2017-11-071-0/+50
| | | | | | | | | | This option was supported in a very hacky way by attaching it to the "build" command, where it does not belong. Add a dedicated command instead and support the option variant in the same way as we do for --help. Change-Id: Ib8f1a0e44f9ae669093f059c86518138df510bc3 Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* Remove pointless option for update-timestamps commandChristian Kandeler2017-10-051-2/+1
| | | | | | | Also fix help output and CLI documentation. Change-Id: I45229809ea2f088628f1b512200fe3c8e99f4132 Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* Improve dump-nodes-tree commandChristian Kandeler2017-10-051-7/+1
| | | | | | | | | | | | - Remove redundant output also for rule nodes (rather than just for artifacts). - Strip down the list of supported options. Some of the ones we listed there made no sense for this command. - Fix help output and CLI documentation. Change-Id: If13667d48e12de99df3bb19a4f82f97aa9256d02 Reviewed-by: Leena Miettinen <riitta-leena.miettinen@qt.io> Reviewed-by: Jake Petroules <jake.petroules@qt.io>
* Improve status commandChristian Kandeler2017-10-051-6/+1
| | | | | | | | | | - Indent also the untracked and missing file lists. - Remove pointless options. - Fix help output and CLI documentation. Change-Id: Iba23ad7fc3366cfac02b255b17cca9127556b9bb Reviewed-by: Leena Miettinen <riitta-leena.miettinen@qt.io> Reviewed-by: Jake Petroules <jake.petroules@qt.io>
* Fix shell commandChristian Kandeler2017-10-051-16/+0
| | | | | | | | | | | | | - Use the build environment rather than the system environment (that's the whole point of the command). - Remove the need for a specific product. - Use a more sensible prompt. - Strip down the list of supported options. - Fix typo in comment. Change-Id: I8e4040d44ab6a95e60a7265e05d5b66fb3dfa878 Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io> Reviewed-by: Leena Miettinen <riitta-leena.miettinen@qt.io>
* Remove --jobs from the list of options for the resolve commandChristian Kandeler2017-10-051-1/+0
| | | | | | | | | This command does not spawn concurrent jobs. Change-Id: I4bc605b31ff94e463f1c65d98379843b50c36ec4 Reviewed-by: Jake Petroules <jake.petroules@qt.io> Reviewed-by: Leena Miettinen <riitta-leena.miettinen@qt.io> Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* Doc: Create a CLI referenceLeena Miettinen2017-10-0420-0/+1944
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>