aboutsummaryrefslogtreecommitdiffstats
path: root/src/app/qbs/parser/commandlineoptionpool.h
Commit message (Collapse)AuthorAgeFilesLines
* Remove the fallback providerIvan Komissarov2024-04-221-1/+0
| | | | | Change-Id: Idbb8b86d2630cd1852fca6792e7795a8a8df490e Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* Make handling of deprecated items and properties configurableChristian Kandeler2022-10-041-0/+1
| | | | | | | | | | | | | | | | | | | 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>
* Introduce module providersChristian Kandeler2019-01-231-0/+1
| | | | | | | | | | | | | | | | | | | | | | 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 support for job poolsChristian Kandeler2018-08-081-0/+2
| | | | | | | | | | | | | | | | | | | | | | 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>
* Give the setupRunEnvironment script an additional parameterChristian Kandeler2017-11-221-0/+1
| | | | | | | | | | | 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-1/+0
| | | | | | | | | | 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 the --force optionChristian Kandeler2017-09-041-1/+0
| | | | | | | | It hasn't been in use for a while now. Change-Id: I85c22d44309727ee458414cad0fb42c312030a9b Reviewed-by: Jake Petroules <jake.petroules@qt.io> Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* Change style of #includes of Qt headersJake Petroules2017-01-041-1/+1
| | | | | | | | | | | | | | | | By using q<lowercase>.h headers, we become more bootstrap-friendly, as no full syncqt is required any more. In the same go, prefix all includes with the module name. This helps grep-based analysis of which parts of Qt are used and where. It's also consistent with Qt's public headers (where syncqt enforces the style). Testdata and examples are excluded from the change, as they are not relevant for bootstrapping. Change-Id: I9539b1d795e87fca6e5fc6c91acbb775b79208d9 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io> Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* Update license headersIikka Eklund2016-08-291-14/+23
| | | | | | | | | | Patch-set 1 includes *.h Every source file needs to have up-to-date license headers in order to pass ci. Change-Id: Ib6cf3ac47dfba6dff262fded44bc952aef3bda8b Reviewed-by: Jake Petroules <jake.petroules@qt.io>
* Introduce the --wait-lock command line optionJake Petroules2016-07-141-0/+1
| | | | | | | | | | | | | This allows multiple qbs processes competing for the same configuration instance to be launched simultaneously, and the inactive instances will wait indefinitely for the lock file to be released. This is primarily intended for use by the IDE generator plugins like Visual Studio where the "Build Solution" command builds all projects in the solution in parallel (and this cannot be disabled). Change-Id: I13c37a21dd8386e3dfdab1f769b8242bfcfc2e45 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* Cache the results of probes.Christian Kandeler2016-06-151-0/+1
| | | | | | | | | | | Probes are often used to call external processes, which can be expensive. We do not want them to be executed every time a project is re-resolved. So cache the results and provide the means to force re- execution if something changes externally. Task-number: QBS-25 Change-Id: I5c48a6f657f5829b72df7677b566177502655c5e Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* Replace 'the Qt build suite' with 'Qbs' in copyright notices.Jake Petroules2016-06-061-1/+1
| | | | | | Change-Id: I885d94bb14b325dc36767a840ebdb0be1fb59dd2 Reviewed-by: Leena Miettinen <riitta-leena.miettinen@qt.io> Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* Add an option to require transformers to generate all declared outputs.Jake Petroules2016-03-091-0/+1
| | | | | | | | | | | | This ensures that a successful build cannot complete without all output artifacts of all rules and transformers in the project existing (unless they are marked alwaysUpdated: false). This is undesirable to enable by default due to the potential overhead, but can be a useful debugging tool and so is provided as an option. Change-Id: I46ee49e28cc06d5aff9a3cfd520f929fef4de3f8 Reviewed-by: Christian Kandeler <christian.kandeler@theqtcompany.com>
* Do not give special treatment to target artifacts in "qbs clean".Christian Kandeler2015-09-041-1/+0
| | | | | | | | | | | | The differentiation between "remove all artifacts" and "remove only non- target artifacts" was probably introduced originally to allow people to save space in their build directory while still being able to run their project from there. However, people can (and should) simply install their project in that case, which is the default anyway these days. So now "qbs clean" does what "qbs clean --all-artifacts" used to do. Change-Id: Id307bee9c2605a22e3f42669df298a1ba20b393b Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
* add a --version command line argumentJoerg Bornemann2015-05-221-0/+1
| | | | | | | | | "qbs --version" prints the qbs version and exits. --version is an option of the default command, "qbs build". Change-Id: I0f02a77096199e67ec716d2f57bb85d439517e2b Task-number: QBS-790 Reviewed-by: Christian Kandeler <christian.kandeler@theqtcompany.com>
* update license headersJoerg Bornemann2015-03-021-2/+2
| | | | | Change-Id: I36d825db3a5ef32c162c3063aab1e8a1f2696f4f Reviewed-by: Christian Kandeler <christian.kandeler@theqtcompany.com>
* Replace --show-command-lines with --command-echo-mode.Jake Petroules2015-02-251-1/+1
| | | | | | | | | | This allows users to hide command output entirely without changing the logging level. It is also used by the generator command to hide the dry run command "executions" it performs when creating the build graph for project generation. Change-Id: I27a64c8138521001f5b62473b4a3b4ff46d8ba25 Reviewed-by: Christian Kandeler <christian.kandeler@theqtcompany.com>
* Add an API to support build system generators.Jake Petroules2015-02-121-0/+1
| | | | | | | | | More generally, a plugin-based API to support performing arbitrary operations producing some output given a resolved qbs project. Task-number: QBS-658 Change-Id: I5c0c3652520ec17e751ad9980bc186dde58e48d1 Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
* Merge branch '1.3' into 'master'Christian Kandeler2015-01-281-6/+6
|\ | | | | | | | | | | | | | | | | Conflicts: doc/reference/jsextensions/jsextensions-general.qdoc src/lib/corelib/language/evaluatorscriptclass.cpp src/lib/corelib/language/evaluatorscriptclass.h Change-Id: Ic9b77b56e8fc8bf93e0a553930757de8c93fed22
| * Update LicenseEike Ziller2015-01-261-6/+6
| | | | | | | | | | Change-Id: I092fca9f950de1ba38826c33b155f86feae2770b Reviewed-by: Christian Kandeler <christian.kandeler@theqtcompany.com>
* | Do installation at build time.Joerg Bornemann2015-01-081-0/+1
| | | | | | | | | | | | | | | | | | | | | | This is useful for e.g. "packaging products" that work on the contents of installation folders. For this purpose, we also expose the install root as a property in the qbs module. Opt-out is available, and the "install" command still works. Change-Id: I346a8e6d19fc24b38660201b1f6fa510acc6676c Reviewed-by: Jake Petroules <jake.petroules@petroules.com>
* | add option to show command lines in build outputJoerg Bornemann2014-11-071-0/+1
| | | | | | | | | | | | | | | | | | | | With "qbs build --show-command-lines" one can suppress command descriptions and show actual command lines instead. Change-Id: I98328254bad7fb85036abb0525c5ad7e734110c7 Task-number: QBS-615 Reviewed-by: Christian Kandeler <christian.kandeler@digia.com> Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
* | Merge remote-tracking branch 'origin/1.3'Joerg Bornemann2014-10-161-7/+8
|\| | | | | | | | | | | | | | | Conflicts: qbs_version.pri version.js Change-Id: I645b2f37bae9d36d4bca54b267d57df8b0b7fd21
| * License update.Eike Ziller2014-10-161-7/+8
| | | | | | | | | | | | | | Add LGPLv3 option. Change-Id: I8a63ad5e46a2701032b2103f791df4dec5b707e8 Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* | Allow products to opt-out of the normal build process.Christian Kandeler2014-10-021-0/+1
|/ | | | | | | | This feature can be used to implement "action targets". Task-number: QBS-262 Change-Id: I3669786aa722ba294ca75735f5afefc0c509e1cf Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* Allow the user to specify a custom place for settings.Christian Kandeler2014-02-211-0/+1
| | | | | | Task-number: QBS-509 Change-Id: I4ad32c648121068880d652e3ba39d4eea59dfbc3 Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* Merge remote-tracking branch 'origin/1.1'Joerg Bornemann2014-01-091-1/+1
|\ | | | | | | Change-Id: Iccf01f1dad3fca4a78c7d9b795fdef6df0181e9b
| * Incremented year in copyright infoRobert Loehning2014-01-081-1/+1
| | | | | | | | | | | | Change-Id: Ib7f9a00bb891fa39c5bc1f891ddbfba1e4d23227 Reviewed-by: Jake Petroules <jake.petroules@petroules.com> Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* | Support specifying the Qbs build directory as a command line option.Jake Petroules2013-11-261-0/+1
|/ | | | | | | | | Also supports changing the default build directory ('.') using the 'preferences.defaultBuildDirectory' property. Task-number: QBS-462 Change-Id: Id3d05d2f5b14197bd3af2e7f9d55bdd263809716 Reviewed-by: Christian Kandeler <christian.kandeler@digia.com>
* add build option --check-timestampsJoerg Bornemann2013-07-231-0/+1
| | | | | | | | | Give users the possibility to force qbs to read the physical timestamps instead of using the stored timestamps. Task-number: QBS-303 Change-Id: I6010515b5e8f97ec0b91069cbc7d8a1b0931dce5 Reviewed-by: Christian Kandeler <christian.kandeler@digia.com>
* Allow installing without building.Christian Kandeler2013-06-171-0/+1
| | | | | | | Task-number: QBS-310 Change-Id: I22139a8c537ded6553f9dc326bb202b1b871c0ee Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* Add option to log how much time an operation takes.Christian Kandeler2013-03-261-0/+1
| | | | | | | | This is an interesting information that people might want independently of debugging output. Change-Id: I4a1e3c31cfce6546b43bd2f5f343bf297d764a42 Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* Introduce new command-line option "--force".Christian Kandeler2013-02-011-0/+1
| | | | | | | | Useful for overriding certain sanity checks. No use case implemented yet. Change-Id: I10df8fbfde9b293832298fa27fc6fd4955dd9a44 Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* Introduce the "install" command.Christian Kandeler2013-01-221-0/+2
| | | | | | | | | | | This decouples building and installing, e.g. allowing the latter to be executed by a privileged user to a system-wide directory. In addition, the ability to install build artifacts (typically executables or libraries) has been added. Change-Id: I28e725e4c1168eebe88e12c75e3d3e9f5fe28ca5 Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* update copyright yearJoerg Bornemann2013-01-091-1/+1
| | | | | Change-Id: Ic2962e57ede037b910d7e77b01b0163f0a22cb7d Reviewed-by: Christian Kandeler <christian.kandeler@digia.com>
* Add command-line support for removing all build artifacts.v0.2.0Christian Kandeler2012-12-111-0/+1
| | | | | | | Task-number: QBS-109 Change-Id: I20e4f8587f880a33de594488bb189649aadaec89 Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* Redo help output.Christian Kandeler2012-12-051-0/+61
It's not feasible to document all commands and options correctly in one help screen. Instead, we now have a main help screen listing all possible commands and one dedicated help screen for every command. The more thorough and precise help output goes hand in hand with fixing a number of parsing bugs and underspecified commands. This, in turn, necessitated a refactoring of the command line parser, which is now much more modular. Change-Id: Id18f8c609d7d4a797a06598c3df4bc9ba02c9615 Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>