aboutsummaryrefslogtreecommitdiffstats
path: root/doc
Commit message (Collapse)AuthorAgeFilesLines
* doc: fix BinaryProbe examplev2.1.2-12.1Ivan Komissarov2023-09-181-2/+3
| | | | | | Change-Id: I6d9b26057f1e45458d42f18779d499953cae7e41 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io> Reviewed-by: Leena Miettinen <riitta-leena.miettinen@qt.io>
* apple: fix dmg.absoluteSourceBase default valueIvan Komissarov2023-09-081-3/+4
| | | | | | | | | | | | | Dmg module collects all installables and replaces the absoluteSourceBase with stageDirectory. However, by default, we install the bundle to the installRoot/installPrefix/installDir folder and absoluteSourceBase missed the installPrefix path which is "/usr/local" on mac by default. Change-Id: I24dfab27b0321308347883376a052c479388418a Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* doc: add docs for some missing Qt.core propsIvan Komissarov2023-09-071-0/+42
| | | | | Change-Id: I883be3f550706ed8178dbb247dcb481d0a9dad4c Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* doc: fix Group item docIvan Komissarov2023-09-071-10/+18
| | | | | Change-Id: I8ed20eb9bd4470941fc7b3b170bf4d9bab96a49b Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* doc: fix typoIvan Komissarov2023-08-301-1/+1
| | | | | Change-Id: I94938476436eb9164900a5104fa3c45af3ed95df Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* doc: move Special Property Values to a separate pageIvan Komissarov2023-05-113-55/+165
| | | | | | | | Also, document values that were not documented such as path, filePath, product, project. Change-Id: Ibad64e2998697b4c8c625c3088b835c8be428f54 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* Do not merge deps in pkgconfig by defaultIvan Komissarov2023-05-031-4/+2
| | | | | | | | | | This was needed only as a workaround for packages with deep dependency tree. With the new module loader code, this is not needed anymore and we can start removing the prop. Fixes: QBS-1710 Change-Id: I47046049e89e705288f1b1ae04be625bd83302e8 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* doc: fix introIvan Komissarov2023-04-221-15/+5
| | | | | Change-Id: I403a5a8f7716c88ed7c36d610cb1762e78be3e14 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* Rewrite ModuleLoaderChristian Kandeler2023-04-201-1/+13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | =================== Problem description =================== The ModuleLoader class as it exists before this patch has a number of serious problems: - It instantiates modules over and over again everywhere a Depends item appears. The different instances are later merged in a hopelessly obscure and error-prone way. - It seriously pollutes the module scopes so that sloppily written project files appear to work even though they shouldn't. - Dependencies between products are handled twice: Once using the normal module instantiation code (with the Export item acting like a Module item), and also with a parallel mechanism that does strange, seemingly redundant things especially regarding transitive dependencies, which appear to introduce enormous run-time overhead. It is also split up between ModuleLoader and ProjectResolver, adding even more confusion. - The code is messy, seriously under-documented and hardly understood even by its original authors. It presents a huge obstacle to potential contributors. ================= Patch description ================= - Each module is instantiated once per product. Property values are merged on the fly. Special handling for dependencies between products are kept to the absolutely required minimum. - There are no more extra passes for establishing inter-product dependencies. Instead, whenever an unhandled dependency is encountered, processing the current product is paused and resumed once the dependency is ready, with the product state getting saved and restored in between so no work is done twice. - The ModuleLoader class now really only locates and loads modules. The new main class is called ProjectTreeBuilder, and we have split off small, self-contained pieces wherever possible. This process will be continued in follow-up patches (see next section). ======= Outlook ======= The ProjectTreeBuilder ist still too large and should be split up further into small, easily digestible parts with clear responsibilities, until the top-level code becomes tidy and self-documenting. In the end, it can probably be merged with ProjectResolver and Loader. However, this first requires the tight coupling between ProjectTreeBuilder/ModuleProviderLoader/ProbesResolver/ProjectResolver to be broken; otherwise we can't produce clean interfaces. As this would involve touching a lot of otherwise unrelated code, it is out of scope for this patch. ================= Benchmarking data ================= We first present wall-time clock results gathered by running "qbs resolve --log-time" for qbs itself and Qt Creator on macOS and Windows. The numbers are the average of several runs, with outliers removed. Then the same for a simple QML project using a static Qt on Linux (this case is special because our current way of handling plugins causes a huge amount of modules to be loaded). Finally, we show the output of the qbs_benchmarker tool for resolving qbs and Qt Creator on Linux. The data shows a speed-up that is hardly noticeable for simple projects, but increases sharply with project complexity. This suggests that our new way of resolving does not suffer anymore from the non-linear slowdown when the number of dependencies gets large. Resolving qbs on Windows: Before this patch: ModuleLoader 3.6s, ProjectResolver 870ms With this patch: ProjectTreeBuilder 3.6s, ProjectResolver 840ms Resolving Qt Creator on Windows: Before this patch: ModuleLoader 17s, ProjectResolver 6.8s With this patch: ProjectTreeBuilder 10.0s, ProjectResolver 6.5s Resolving qbs on macOS: Before this patch: ModuleLoader 4.0s, ProjectResolver 2.3s With this patch: ProjectTreeBuilder 4.0s, ProjectResolver 2.3s Resolving Qt Creator on macOS: Before this patch: ModuleLoader 32.0s, ProjectResolver 15.6s With this patch: ProjectTreeBuilder 23.0s, ProjectResolver 15.3s Note that the above numbers are for an initial resolve, so they include the time for running Probes. The speed-up for re-resolving (with cached Probes) is even higher, in particular on macOS, where Probes take excessively long. Resolving with static Qt on Linux (QBS-1521): Before this patch: ModuleLoader 36s, ProjectResolver 18s With this patch: ProjectTreeBuilder 1.5s, ProjectResolver 14s Output of qbs_benchmarker for resolving qbs on Linux: Old instruction count: 10029744668 New instruction count: 9079802661 Relative change: -10 % Old peak memory usage: 69881840 Bytes New peak memory usage: 82434624 Bytes Relative change: +17 % Output of qbs_benchmarker for resolving Qt Creator on Linux: Old instruction count: 87364681688 New instruction count: 53634332869 Relative change: -39 % Old peak memory usage: 578458840 Bytes New peak memory usage: 567271960 Bytes Relative change: -2 % I don't know where the increased memory footprint for a small project comes from, but since it goes away for larger projects, it doesn't seem worth investigating. Fixes: QBS-1037 Task-number: QBS-1521 Change-Id: Ieeebce8a7ff68cdffc15d645e2342ece2426fa94 Reviewed-by: Ivan Komissarov <ABBAPOH@gmail.com> Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* freedesktop: Rename "name" property to "appName"Christian Kandeler2023-03-151-1/+1
| | | | | | | | | "name" is a built-in property of the Module item that must not be set by users. Astonishingly, this has worked so far due to the way the ModuleLoader code was written. Change-Id: I959bc0bba6b7c17a420fc6201031ab0bf4449292 Reviewed-by: Ivan Komissarov <ABBAPOH@gmail.com>
* Docs: Do not use .contains()Christian Kandeler2023-02-207-37/+37
| | | | | | | Amends e3522f42773cfbb9a980e859c906457b3571fa1f. Change-Id: If51576f080ee5c01eeae493934cf646403594965 Reviewed-by: Ivan Komissarov <ABBAPOH@gmail.com>
* Remove documentation for outdated JS extensions to Array and StringChristian Kandeler2023-02-161-24/+0
| | | | | | | | | | | String.{starts,ends}With() are part of ECMAScript 6 and supported directly by QuickJS. {String,Array}.contains() are superseded by ECMAScript's includes(). Deprecating them would needlessly annoy users, but we shouldn't encourage their use either. Change-Id: Ie0828ba0f78b0235e4b0a3127e56dc8fc2cc46dd Reviewed-by: Ivan Komissarov <ABBAPOH@gmail.com>
* Remove dangling link to unused hostOS propertyRichard Weickelt2023-02-141-2/+0
| | | | | | | | | | The hostOS property was taken out of the qbs module and replaced by the os property of the Host service. The whole bullet point is no longer valid. Change-Id: Ia35a51dffc7b7593e896b754f741cf12aab71db3 Fixes: QBS-1716 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* doc: fix typoIvan Komissarov2023-02-081-1/+1
| | | | | Change-Id: Icaa492b0fee01d37a4cf1940e6d8f456b532abbc Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* Switch JavaScript back-endChristian Kandeler2023-02-072-7/+48
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Newer clang versions seem to expose serious bugs in QtScript, whose complexity makes it difficult to track them down. We therefore switch to the more light-weight QuickJS, which offers all the features we need (most notably property access interception), as well as good performance. To save some porting effort, we removed the long-deprecated loadFile() and loadExtension() functions. During the porting procedure, we noticed and fixed thread safety issues in artifact access from JS commands. We consider this change important enough to bump the major version, so the next release will be 2.0. Detailed benchmarking data is below. In summary, we see a modest speed- up at the cost of a similarly modest increase in memory consumption (with the exception of project resolving on macOS, which has become a bit slower). Importantly, the increase does not rise with project size, as the comparison of qbs vs Qt Creator shows. Output of qbs_benchmarker on Linux with qbs as test project: ========== Performance data for Resolving ========== Old instruction count: 12870602895 New instruction count: 11923459780 Relative change: -8 % Old peak memory usage: 61775848 Bytes New peak memory usage: 67583424 Bytes Relative change: +9 % ========== Performance data for Rule Execution ========== Old instruction count: 4074062223 New instruction count: 3887473574 Relative change: -5 % Old peak memory usage: 35123704 Bytes New peak memory usage: 38398392 Bytes Relative change: +9 % ========== Performance data for Null Build ========== Old instruction count: 1104417596 New instruction count: 1011033948 Relative change: -9 % Old peak memory usage: 24461824 Bytes New peak memory usage: 25325920 Bytes Relative change: +3 % Output of qbs_benchmarker on Linux with Qt Creator as test project: ========== Performance data for Resolving ========== Old instruction count: 67166450352 New instruction count: 60772791018 Relative change: -10 % Old peak memory usage: 327011616 Bytes New peak memory usage: 343724176 Bytes Relative change: +5 % ========== Performance data for Rule Execution ========== Old instruction count: 71684351183 New instruction count: 67051936965 Relative change: -7 % Old peak memory usage: 374913688 Bytes New peak memory usage: 387790992 Bytes Relative change: +3 % ========== Performance data for Null Build ========== Old instruction count: 8383156078 New instruction count: 7930705668 Relative change: -6 % Old peak memory usage: 180468360 Bytes New peak memory usage: 182490384 Bytes Relative change: +1 % Real-world data building Qt Creator (using qbs --log-time, several runs, removing outliers): macOS: Resolving: 43s -> 47s Rule execution: 17s -> 14s Windows: Resolving: 18s -> 16s Rule execution: 22s -> 17s Fixes: QBS-913 Fixes: QBS-1103 Fixes: QBS-1126 Fixes: QBS-1227 Fixes: QBS-1684 Change-Id: Ie5088155026e85bbd1e303f1c67addb15810a3cb Reviewed-by: Ivan Komissarov <ABBAPOH@gmail.com> Reviewed-by: Orgad Shaneh <orgads@gmail.com>
* RIP QMake buildIvan Komissarov2022-12-164-123/+0
| | | | | | | | | | We have been supported CMake build for quite some time so users should have plenty of time to adapt. Ubuntu, Brew and macports also use CMake for building QBS. Change-Id: Ib78177f4a7ca8cdea1a2f3a8eac8bfe804674f32 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* baremetal: Add support for HPPA architectures to GCC toolchainPino Toscano2022-11-161-0/+3
| | | | | | | | Add the HPPA architecture, developed by Hewlett-Packard: https://en.wikipedia.org/wiki/PA-RISC Change-Id: Iec06ea4752326a70c2ceb210a3d4bdf8e19bdf47 Reviewed-by: Ivan Komissarov <ABBAPOH@gmail.com>
* Add public bundle.useBuiltinXcodeBuildSpecs propertyIvan Komissarov2022-10-291-0/+11
| | | | | | Change-Id: Ib630bc08565527ee648c803f83d4dc9513410b7e Reviewed-by: Leena Miettinen <riitta-leena.miettinen@qt.io> Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* Make handling of deprecated items and properties configurableChristian Kandeler2022-10-043-0/+23
| | | | | | | | | | | | | | | | | | | As of now, a newly deprecated property leads to users getting bombarded with warnings, even though they did not yet have a chance to adapt their project. Now the warnings appear by default one minor version before removal, which together with our convention of keeping deprecated properties for at least two minor versions gives users enough time to adapt without getting spammed. There is also a mode for switching to the previous behavior (for early detection), as well as the possibility to trigger errors instead of warnings, which should be helpful in CI configurations. To support the case where the user cannot do anything about them, the warnings can also be suppressed altogether. Change-Id: I295f816758f0f111fcb0351581a4328be3af5668 Reviewed-by: Leena Miettinen <riitta-leena.miettinen@qt.io> Reviewed-by: Ivan Komissarov <ABBAPOH@gmail.com>
* Merge branch '1.23' into masterIvan Komissarov2022-08-223-4/+9
|\ | | | | | | Change-Id: I1640aa670bd12be70b794286deda4d420bb491df
| * doc: fix types in Host serviceIvan Komissarov2022-08-151-4/+4
| | | | | | | | | | | | | | This amends 54ec5e8851f0573beb466ddec2e20a1f3c2b7f7a. Change-Id: Ie2b5d7fa18b2df1776e8c33ab84c6e3c72322a2a Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
| * cmake: fix installing documentationIvan Komissarov2022-08-151-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The HTML documentation was not installed if QCH doc was not requested, fix that. Introduce a new 'qbs_docs' target which should be used instead of the 'BuildQbsDocumentation' target. This is done for compatibility with QMake. Also, introduce a single 'qbs_docs' component for installing docs in one go - this is required for MacPorts since there is no easy way to install multiple components at once with CMake. Which docs will be installed is controlled at the configure step: $ cmake -DQBS_INSTALL_HTML_DOCS=1 -DQBS_INSTALL_QCH_DOCS=1 -DQBS_INSTALL_MAN_PAGE=1 $ cmake --build . --target qbs_docs # not required for man-page only install $ cmake --install . --component qbs_docs Change-Id: I174662c54255a8fb10529b1961c298eb1f1b1470 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
| * doc: Install man pages with cmakeMarius Gripsgard2022-08-112-0/+5
| | | | | | | | | | Change-Id: Ibce74cf1b524c8c08b38dfc76549b4723ea705b3 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* | Add executableSuffix to the FileInfo serviceRaphael Cotty2022-08-081-0/+7
|/ | | | | Change-Id: I86c24c6ad1ea0daf298b71501a6719c8b2650c1c Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* Support c17 and c2x values for cLanguageVersionOrgad Shaneh2022-08-011-1/+1
| | | | | | | | | | Compiler version sources: https://en.wikipedia.org/wiki/C17_(C_standard_revision) https://en.wikipedia.org/wiki/C2x https://en.wikipedia.org/wiki/Xcode#Xcode_11.0_-_14.x_(since_SwiftUI_framework) Change-Id: I3bdb54334e0cbf326a5d25d31c45f331cbb36c55 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* doc: Fix documentation of PkgConfigProbe propertiesv1.23.0Thorbjørn Lindeijer2022-07-191-2/+2
| | | | | | | The exactVersion and maxVersion docs were somewhat mixed up. Change-Id: I840fb09e72ab53251edd1c2af038f080eb27905a Reviewed-by: Ivan Komissarov <ABBAPOH@gmail.com>
* Merge "Merge 1.22 into master"The Qt Project2022-04-143-5/+6
|\
| * Merge "Merge remote-tracking branch 'origin/1.21' into 1.22" into 1.22The Qt Project2022-04-081-1/+1
| |\
| | * Merge remote-tracking branch 'origin/1.21' into 1.22Christian Kandeler2022-04-071-1/+1
| | |\ | | | | | | | | | | | | | | | | | | | | | | | | It seems we completely forgot to merge 1.21 into master, losing at least some of the bugfixes in 1.21.1. Change-Id: I4e8e32a861da817d9b686991933d6a32332534c5
| | | * Doc: align JSON API ErrorInfo with codeRobin Farine2022-01-241-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 'ErrorItem::toJson()' maps the key 'description' to the textual description of the error. Change-Id: I92c4b7521f6ffbda60196eb1fa363a0a79431f6a Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
| * | | Documentation: Adapt to introduction of "exportingProduct"Christian Kandeler2022-04-072-4/+5
| |/ / | | | | | | | | | | | | | | | | | | | | | | | | Amends 7f424ec158. Fixes: QBS-1694 Change-Id: I0cc6d1a022c863ce38e0dd0e3f00ba7929c73041 Reviewed-by: Leena Miettinen <riitta-leena.miettinen@qt.io> Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* / / Add module for providing AddressSanitizer supportChristian Kandeler2022-04-111-0/+77
|/ / | | | | | | | | Change-Id: Id34e57a59ad21961ee32da1bf93f6a55596d95aa Reviewed-by: Ivan Komissarov <ABBAPOH@gmail.com>
* | Add support for other platforms supported by Digital MarsDenis Shienkov2022-02-171-12/+19
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch adds support for the following target platforms: * DOS - both 32/16 bit. * Windows - 16 bit. Also, more specifically, the target is controlled by the `cpp.extenderName` property, which is the DOS extender to use. The Digital Mars support the following DOS extenders: * Rational 16 bit DOS Extender * ZPM 16 bit DOS Extender * DOSX 32 bit DOS Extender * Pharlap 32 bit DOS Extender which have the following names `dosr`, `dosz`, `dosx`, `dosp`. The user can set any of the desired values in the `cpp.extenderName` property (also this property can be empty that means no any extender is used). Right now the `qbs-setup-toolchain` utility creates all possible supported profiles with the required pre-configured properties: Profile 'dmc-8_57_0-windows-x86' created for 'C:/dm/bin/dmc.exe'. Profile 'dmc-8_57_0-windows-x86_16' created for 'C:/dm/bin/dmc.exe'. Profile 'dmc-8_57_0-dosx-x86' created for 'C:/dm/bin/dmc.exe'. Profile 'dmc-8_57_0-dosp-x86' created for 'C:/dm/bin/dmc.exe'. Profile 'dmc-8_57_0-dosr-x86_16' created for 'C:/dm/bin/dmc.exe'. Profile 'dmc-8_57_0-dosz-x86_16' created for 'C:/dm/bin/dmc.exe'. Profile 'dmc-8_57_0-dos-x86_16' created for 'C:/dm/bin/dmc.exe'. Compiling with DOS extenders requires additional external utilities and libraries (depending on the extender type). Some of them are no longer available at the moment, so the tests in CI are only done for the `dmc-windows-x86`, `dmc-windows-x86_16`, and `dmc-dos-x86_16` profiles. Change-Id: I221d2995900c63605c8552b825bf0c4d55171f5c Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* | Update documentation about WatcomProbeDenis Shienkov2022-02-151-2/+2
| | | | | | | | | | Change-Id: Ic06f4d2ff28425a7fb76c38ca69144a0db1a3ab2 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* | Add support for other platforms supported by Open WatcomDenis Shienkov2022-02-091-0/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | This patch adds support for the following target platforms: * DOS - both 32/16 bit. * OS/2 - both 32/16 bit. * Windows - 16 bit. Also all these platforms covered in CI tests. Change-Id: Ie75d9203c50f4d61546b19328992ff0e107d9942 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* | Add probe items in module providersRaphael Cotty2022-02-082-1/+3
| | | | | | | | | | | | | | | | Probes can now be used in the ModuleProvider item. Change-Id: If1bf07269aa7d9c3c9dd8a41ac4bd3d259393a49 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io> Reviewed-by: Ivan Komissarov <ABBAPOH@gmail.com>
* | Long live Open Watcom toolchainDenis Shienkov2022-02-043-0/+133
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch adds basic support for the Open Watcom toolchain. This patch uses the `owcc` compiler (supplied with the toolchain), which is a wrapper that supports the POSIX standard. Reason is that the native OW compiler and linker has a limitations in the command line arguments (e.g. they have wrong quotes handling and so on). This patch supports both the latest official version v1.9 and also its fork v2.0. Also added the CI autotests for the version v2.0 for the Windows host. These autotests only perform a limited number of tests (only the bare-metal tests) due to the following toolchain limitations: * The toolchain does not have STL support (there seems to be some kind of the partial support in the form of separate legacy STL ports). * The toolchain support something compatible with the C++98 standard. * The toolchain does not support the shared libraries on Linux hosts. These limitations make it impossible or unjustified to reuse most of the available tests (it requires a lot of work). There was also an attempt to set up CI for tests on Linux host, but for some reason the toolchain installer crashes on CI (although it works fine on a local PC with Ubuntu). Change-Id: Iecf76f51f0b09d31a89683f786b9cd7a825f235e Reviewed-by: Ivan Komissarov <ABBAPOH@gmail.com>
* | Add qmlImportPaths property to Qt.android_supportJan Blackquill2022-02-031-0/+9
| | | | | | | | | | | | Change-Id: I3fd73b5053562b139324d3a473184e9c520c2587 Reviewed-by: Raphaël Cotty <raphael.cotty@gmail.com> Reviewed-by: Ivan Komissarov <ABBAPOH@gmail.com>
* | Create Host service and update FileInfoRaphael Cotty2022-02-014-124/+157
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In order to use PathProbe and BinaryProbe in module providers, the qbs properties used in the probes will be replaced by the Host and the FileInfo services. The new Host service implements these host related properties: architecture, os, platform, osVersion, osBuildVersion, osVersionParts, osVersionMajor, osVersionMinor, osVersionPatch, nullDevice The FileInfo service implements these properties: pathSeparator, pathListSeparator Task-number: QBS-1612 Change-Id: Icecde3d82a531a5b143ce150ffd544ee674e6f4d Reviewed-by: Christian Kandeler <christian.kandeler@qt.io> Reviewed-by: Leena Miettinen <riitta-leena.miettinen@qt.io> Reviewed-by: Ivan Komissarov <ABBAPOH@gmail.com>
* | Doc: Update copyright year to 2022 in the online footerLeena Miettinen2022-01-191-1/+1
| | | | | | | | | | Change-Id: I9c3cf494036a624a2f2a3fde628373cd4388ce32 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* | Doc: Use the new way to prevent autolinkingLeena Miettinen2022-01-192-7/+4
| | | | | | | | | | | | | | | | Instead of "\externalpage nolink" entries, add "ignorewords" to the .qdocconf file. Change-Id: Ic3f0da4d91145d98223972dd93d79443b4eaeca2 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* | Add wrapper 'content' div to QDoc conf for Hugo siteJan Blackquill2022-01-121-0/+3
| | | | | | | | | | | | | | | | This is needed to distinguish the sidebar from the rest of the page, to allow styling it separately Change-Id: I5b8039f0b51a02b24778bab140b6402e6db94ee7 Reviewed-by: Ivan Komissarov <ABBAPOH@gmail.com>
* | Document how to append files to base properties in derived typesMitch Curtis2021-12-152-0/+33
|/ | | | | | | Change-Id: I5ee6d7bce9aa6479f7603356304e0a0f99f05610 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io> Reviewed-by: Leena Miettinen <riitta-leena.miettinen@qt.io> Reviewed-by: Ivan Komissarov <ABBAPOH@gmail.com>
* cpp Module: Implement runtimeLibrary property for MinGWBjörn Schäpers2021-11-291-2/+2
| | | | | | | | Otherwise there is no possibility to add these arguments, since cpp.linkerFlags are put into -Wl which is not correct for them. Change-Id: I4b9355e082269d390b2afc20bec1376c5d1fcd59 Reviewed-by: Ivan Komissarov <ABBAPOH@gmail.com>
* Print conan output while ConanfileProbe runsKai Dohmen2021-10-261-0/+9
| | | | | | | | | Sometimes installing dependencies with conan takes multiple minutes. To see what conan does and if somehow conan stopped working the conan stdout and stderr will be printed to commandline. Change-Id: I987ef95b38deecd713dc6b46be0e2641025345c6 Reviewed-by: Ivan Komissarov <ABBAPOH@gmail.com>
* Split libDirs and extraPaths variablesIvan Komissarov2021-10-261-1/+12
| | | | | | | | | pkg-config has 2 different variables - PKG_CONFIG_LIBDIR overrides the default search paths and PKG_CONFIG_PATH prepends paths to the default paths or paths set via PKG_CONFIG_LIBDIR. Change-Id: I8f67b7bbae9325b17abb20ec5eb8d037626c8089 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* pkgconfig: Implement early dependency mergingIvan Komissarov2021-10-251-0/+14
| | | | | | | | | | | | Due to performance reasons, we have to do the dependency resolution on the qbspkg-config side, like original pkg-config does. Otherwise, it is not possible to use GRPC module as it depends on a bunch of ABSEIL libraries which has a lot of cross-dependencies and QBS cannot handle them (resolving takes > 10 minutes for a simple dependency on GRPC). Change-Id: Ice25f6cea09fe731a511d91891936ba746e5b697 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* doc: clarify that app is not runnableIvan Komissarov2021-10-191-3/+11
| | | | | | | | ... unless rpaths are set. Also, link Running Applications page with the "qbs run" docs. Change-Id: If981555cb617324d45408d98f7f5bc61ba737eaf Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* doc: add page for Qt module providerIvan Komissarov2021-10-193-17/+79
| | | | | Change-Id: Ic912c4b11780503d368602c8c103fd9ece589853 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* Don't mention the old-style import qbs statementRichard Weickelt2021-10-181-3/+0
| | | | | | | | | The import qbs 1.0 import statement has been removed a long time ago, but it was still mentioned in the hello world example. Task-number: QBS-1678 Change-Id: Ie44cae1a25f007e6bbeaf0632f472089428d6c47 Reviewed-by: Ivan Komissarov <ABBAPOH@gmail.com>