aboutsummaryrefslogtreecommitdiffstats
path: root/doc/reference
Commit message (Collapse)AuthorAgeFilesLines
* Implement cpp.generateLinkerMapFile for GCC-like toolchainsDenis Shienkov2019-10-211-2/+0
| | | | | | | | | Now it is possible to generate a linker map file from the GCC, MinGW and CLang toolchains. Change-Id: I69b07e907129daac0ff29bd62034d8807cd5fdf1 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io> Reviewed-by: Richard Weickelt <richard@weickelt.de>
* baremetal: Introduce new cpp::generate{Assembler|Compiler}ListingFilesDenis Shienkov2019-10-171-0/+22
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This properties enables or disables generation of a compiler or assembler listing files. Reason why we need in this property is in that some compilers (e.g. KEIL C51) generates a listing files by default, that spams a project sources directory. So, we need to have a possibility e.g. to disable it or to generate to an output directory. This patch implements this feature for KEIL, IAR, SDCC compilers with the following restrictions: * IAR (8051, AVR, STM8, MSP430, ARM) - full support. * KEIL (8051) - full support. * KEIL (ARM) - has only one restriction in that a compiler does not support specifying of an output listing file name. It is possible to specify only an output listing directory. So, a listing file names will be a bit different than for other compilers (e.g. if a source file name is 'foo.c', then the listing file name will be 'foo.lst', instead of 'foo.c.lst'). * SDCC (8051, STM8) - seems, has not possibility to disable an auto-generated listing files. But it generates an output listing files to a right output directory with the object files. Besides, a listing files has a correct names (e.g. for the 'foo.c' file, the listing file will be 'foo.c.lst'). Change-Id: Ic3516101e69eed156cf71606a7144efc72d40204 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* Refactor the map file generation propertyDenis Shienkov2019-10-011-2/+2
| | | | | | | | | | | | | | 1. It is makes sense to define this property once inside of CppModule, instead of duplicate it in each other module. 2. A new property name 'generateLinkerMapFile' will be better than a previous, so, we can rename this property. 3. The map file generation is not necessary to be always enabled, so, we can disable this property by default. Change-Id: I0439e8b3e0273593c8456d32b1c099ff09498fad Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* 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>
* Define jobPool for AutotestRunnerJochen Ulrich2019-08-111-0/+16
| | | | | Change-Id: Ia90ea48e414fe9c4041f4bfc6961638b8a49fec4 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* Add command and AutotestRunner timeoutJochen Ulrich2019-08-011-0/+9
| | | | | | | Task-number: QBS-1454 Change-Id: I6e2514d10cca0cba0a14456ecd2abfb495539ee4 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io> Reviewed-by: Denis Shienkov <denis.shienkov@gmail.com>
* Merge 1.14 into masterChristian Kandeler2019-07-264-38/+35
|\ | | | | | | Change-Id: Ic632b377bf10e2b320956011e9a7d4eea99f560b
| * Fix outdated documentation for some multiplexing propertiesChristian Kandeler2019-07-171-3/+2
| | | | | | | | | | | | | | | | Amends 38c897a0d4. Fixes: QBS-1458 Change-Id: I2b3d72f5d738cc45fa061ce47711160d54bdfdc5 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
| * Set minimumTvosVersion to "6.0" by defaultIvan Komissarov2019-07-151-1/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | This fixes (at least) two compile errors: - clang: error: invalid deployment target for -stdlib=libc++ (requires iOS 5.0 or later) - ld: library not found for -ldylib1.o The dylib1 is only present on macOS and not present in recent tvOS/iOS SDKs, clang tries to link to it if deployment target is less or equal to "5.0". Change-Id: Ie77a514bb2661312823df054f0dfca07d69e3059 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
| * Add a complete example for a Rule in a ProductIvan Komissarov2019-07-101-31/+23
| | | | | | | | | | Change-Id: I4739440cb90f7ef5795f79da053246f8071aa57e Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
| * doc: Fix JobLimit::jobCount typeIvan Komissarov2019-07-061-1/+1
| | | | | | | | | | | | | | | | Should be int, not string Change-Id: Ib0caaa1730125d6f6debbbfc4346fe4f29dba935 Reviewed-by: Qbs CI Bot <travis-bot@weickelt.de> Reviewed-by: Orgad Shaneh <orgads@gmail.com>
| * Set cpp.minimumIosVersion to "6.0" by defaultIvan Komissarov2019-07-051-2/+5
| | | | | | | | | | | | | | | | | | This is required because earlier iOS versions are broken in recent XCode installations (at least, for XCode >= 7.0.0) Change-Id: Ib55e2eafcf26357695ab057da8109921518b7fea Reviewed-by: Qbs CI Bot <travis-bot@weickelt.de> Reviewed-by: Christian Kandeler <christian.kandeler@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>
* Add support for gRPC to the protobuf.cpp moduleIvan Komissarov2019-06-271-0/+87
| | | | | | | | This implements support for the gRPC framework: https://www.grpc.io Change-Id: Ia85461b9618e73827114c137fce8615e5a8139e3 Reviewed-by: Qbs CI Bot <travis-bot@weickelt.de> Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* Add PathProbe::candidateFilter propertyIvan Komissarov2019-06-261-0/+19
| | | | | | | | | | | | | | | This property can be used to check if candidate conforms with some conditions. For example, an architecture of a shared library candidate should match the current qbs.architecture. Also, this will allow to implement support for the "text based stub libraries" (yaml files that point to a real library in a system) on macOS - instead of checking real file architecture, it should be read from .tbd file Change-Id: Ie84a3e70d883dec949440358e2f08213a8501982 Reviewed-by: Qbs CI Bot <travis-bot@weickelt.de> Reviewed-by: Christian Kandeler <christian.kandeler@qt.io> Reviewed-by: Leena Miettinen <riitta-leena.miettinen@qt.io>
* Allow PathProbe to search multiple filesIvan Komissarov2019-06-251-2/+39
| | | | | | Change-Id: I6ae2dd130cbafb03e51bc6e8e8a3e262d6d45fc6 Reviewed-by: Qbs CI Bot <travis-bot@weickelt.de> Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* Document the Qt.quickcontrols2 moduleChristian Kandeler2019-06-141-0/+3
| | | | | | Fixes: QBS-1453 Change-Id: I810eabd5b4175cf2b9de054b306eea29c0748cf9 Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
* Fix doc for qbs.installPrefixIvan Komissarov2019-05-291-1/+1
| | | | | | | | Task-number: QBS-1449 Change-Id: Ib3eb8fc2818f19611a0d1b045cee7b8fe961a92f Reviewed-by: Richard Weickelt <richard@weickelt.de> Reviewed-by: Denis Shienkov <denis.shienkov@gmail.com> Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* Add pkgconfig.sysroot propertyIvan Komissarov2019-05-272-0/+43
| | | | | | | | | | | By default, pkg-config uses qbs.sysroot property which is not desirable in some cases - for example, on macOS, even build for current system is sysrooted to the SDK folder within XCode installation. pkg-config installed with brew resides in /usr/local and can't be found within an SDK dir. For that reason, it make sense to override it manually Change-Id: Ibf779fd1bf0e87189abb2eab23d4e9e153fcca17 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* Merge 1.13 into masterChristian Kandeler2019-05-231-1/+1
|\ | | | | | | Change-Id: Ic8e80604deb03e48fe264271de2e0add5023af87
| * Documentation: Fix two typosChristian Kandeler2019-05-131-1/+1
| | | | | | | | | | Change-Id: Id352796fbf535e381bafd7f98dd5a53b785f9064 Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* | doc: Add link to the Target Platforms page from qbs.targetPlatformIvan Komissarov2019-05-101-0/+2
| | | | | | | | | | | | Fixes: QBS-1426 Change-Id: Ic44f02b88285d033247a9260e7d3a367e9e5dc6e Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* | doc: Reorganize qbs.targetOS and qbs.targetPlatformIvan Komissarov2019-05-101-24/+30
| | | | | | | | | | | | | | | | | | Move conditional examples to the targetOS property. Add small example about targetPlatform itself. Task-number: QBS-1426 Change-Id: Ia66dfb18c332e220c1359419202f97c974357363 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* | Merge 1.13 into masterChristian Kandeler2019-05-101-0/+8
|\| | | | | | | Change-Id: Ic02d717f80f5d831f0cedb3b7c565a9bfef3a2a3
| * Qt: Do not link static plugins into static librariesChristian Kandeler2019-05-071-0/+8
| | | | | | | | | | | | | | | | | | Plugins should only be linked into applications and shared libraries. Change-Id: I95adc3f1f1ec8ea512e4166e78be1d9c5abb6745 Fixes: QBS-1441 Reviewed-by: Ola Røer Thorsen <ola@silentwings.no> Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* | doc: Make the difference between targetPlatform and targetOS clearerIvan Komissarov2019-05-061-9/+78
| | | | | | | | | | | | | | Task-number: QBS-1426 Change-Id: Ia10eacef270c897d6d04af56dbf14574a86704ad Reviewed-by: Richard Weickelt <richard@weickelt.de> Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* | doc: Add protobuf.cpp exampleIvan Komissarov2019-05-061-0/+19
| | | | | | | | | | Change-Id: I6b3460c2e1b007716611bf850c29a20b59234236 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* | Android: add Qt.android_support.extraLibsBogDan Vatra2019-05-021-0/+9
| | | | | | | | | | | | | | extraLibs are needed to add OpenSSL support to Qt apps. Change-Id: Ib91f593c0be7d9a689fdc6c0537749353f3164eb Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* | Default to the minimum supported NDK API versionBogDan Vatra2019-04-261-1/+3
| | | | | | | | | | | | | | | | | | - android-16 will be used for 32 bit arm ABIs - android-21 will be used for all 64 bit ABIs and x86. x86 has broken wstring support in android-16 to android-19. Change-Id: I38f6e6ec3f16c172cb0b061cfc4cc9efdb8f1700 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* | Android: Nuke support for old NDKsBogDan Vatra2019-04-251-10/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - Support NDK only r19+ - Remove deprecated and unsupported stl libs: "system", "gabi++_static", "gabi++_shared", "stlport_static", "stlport_shared", "gnustl_static", "gnustl_shared" - Fix armv7a link (we need to link against libc++.[a/so].API) - Use lldb - Use llvm bin utils [ChangeLog][Android] Support NDK only r19+, remove deprecated and unsupported stl libs, use lldb and llvm bin utils Change-Id: If9d5d5462dffb6c9bf481f910ee2c3ba03bc5649 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* | [Android] Allow the user to override version attributesBogDan Vatra2019-04-241-0/+40
| | | | | | | | | | | | | | | | Allow the user to override the android::versionCode and android::versionName from QBS project file. Change-Id: I437294e8f6b52c1072bb1c992d1c7ac5233896c9 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* | bare-metal: Add SDCC toolchain supportDenis Shienkov2019-04-102-0/+94
|/ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
* Doc: Add information about PkgConfigProbeIvan Komissarov2019-02-201-0/+217
| | | | | | | Task-number: QBS-1187 Change-Id: If6fa86c37bfff26ae84a3833a2cc291120fe731b Reviewed-by: Leena Miettinen <riitta-leena.miettinen@qt.io> 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>
* doc: Add information about KeilProbeDenis Shienkov2019-02-181-0/+93
| | | | | | Change-Id: Ia8eb378f322c0127729b2531fb3406134623b324 Reviewed-by: Ivan Komissarov <ABBAPOH@gmail.com> Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* doc: Rename documentation file 'iarprobe' to 'iar-probe'Denis Shienkov2019-02-151-0/+0
| | | | | | | ... to be more consistent with other probes. Change-Id: I99f8b6d27a0e38f5b473da94a2c3e63a76e491d5 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* Doc: Add documention about IncludeProbeIvan Komissarov2019-02-141-0/+55
| | | | | | Task-number: QBS-1187 Change-Id: Iad5eafd5bc08c907b1a1dd83c78d745ad856d17a Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* Doc: Add information about IarProbeDenis Shienkov2019-02-131-0/+93
| | | | | | | Change-Id: Ifb4cc67d1e461953aa3440fc1d59a4d00fb6c8ac Reviewed-by: Ivan Komissarov <ABBAPOH@gmail.com> Reviewed-by: Christian Kandeler <christian.kandeler@qt.io> Reviewed-by: Leena Miettinen <riitta-leena.miettinen@qt.io>
* Doc: Add a bit more info on the Probes pageIvan Komissarov2019-02-131-1/+4
| | | | | | | Task-number: QBS-1187 Change-Id: Ic504a8391c0e238e5fe946cb70041e3463a0f4db Reviewed-by: Christian Kandeler <christian.kandeler@qt.io> Reviewed-by: Leena Miettinen <riitta-leena.miettinen@qt.io>
* Fix some missed license headersDenis Shienkov2019-02-131-1/+1
| | | | | Change-Id: I98570fb463bf856a6b6ab2b39fa2bca27b8c0500 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* Doc: Rename pathprobe.qdoc to path-probe.qdocIvan Komissarov2019-02-121-0/+0
| | | | | Change-Id: I025c9f7bc082b6566b7e4fe658d22a6024549e76 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* Detect Qt via a module providerChristian Kandeler2019-02-121-0/+16
| | | | | | | | | | | | | | | | | 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>
* Doc: Add information about FrameworkProbeIvan Komissarov2019-02-111-0/+60
| | | | | | | Task-number: QBS-1187 Change-Id: Id53b6dbd33a4999d409c713035acb460831eff65 Reviewed-by: Denis Shienkov <denis.shienkov@gmail.com> Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* Doc: Add information about BinaryProbeIvan Komissarov2019-02-111-0/+85
| | | | | | | Task-number: QBS-1187 Change-Id: I6a97d9f7f70462996a352f7acef8e69f690a37bf Reviewed-by: Denis Shienkov <denis.shienkov@gmail.com> Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* Clarify the meaning and usage of the build configuration parameterRichard Weickelt2019-02-113-12/+37
| | | | | | | | | | | | 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>
* Document property access in modulesRichard Weickelt2019-02-041-9/+86
| | | | | | | | | | When implementing a module, it is good to know what possibilities exist to access properties. The documentation was a bit vague here. This commit lists all of them and gives some examples. Task-number: QBS-1420 Change-Id: Ia791371204f67ff946e9c73a170760027129e41d Reviewed-by: Christian Kandeler <christian.kandeler@qt.io> Reviewed-by: Leena Miettinen <riitta-leena.miettinen@qt.io>
* Add detailed information about profilesRichard Weickelt2019-01-304-5/+5
| | | | | | | | | | | | | 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>
* Clarify documentation of qbs.enableDebugCodeAlexandru Croitor2019-01-291-1/+14
| | | | | | Change-Id: I441acf3b494756b0c123383a68f50bed37c6e6cb Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io> Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* Qt: Allow users to explicitly tag files as mocableChristian Kandeler2019-01-291-0/+12
| | | | | | | | | This is helpful for declaring a QObject-derived class via a macro, in which case the moc scanner will not help. Fixes: QBS-1410 Change-Id: I19ee30eac670228686b5528888159220cf39abd3 Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>