aboutsummaryrefslogtreecommitdiffstats
path: root/src/app/shared
Commit message (Collapse)AuthorAgeFilesLines
* qbs-config: Understand JavaScript for all types.Christian Kandeler2014-07-101-34/+9
| | | | | | | | | | The current code understands JS maps, but not lists of maps etc, which is certainly unexpected. So allow JS literals for all types. Additionally, simple sequences of characters are still interpreted as strings, so users are not forced to quote in the common case. Change-Id: Ifd345b86cd730fb1d394dbf90e9357fed86edd97 Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* support map values in settingsJoerg Bornemann2014-07-101-0/+39
| | | | | | | | | The config command can now read and write maps. Example: qbs config foo '{"foo":"bar","zoo":"baz"}' Change-Id: I54c67f21fd6fd4a291d547abb6097a0dd9022d9f Reviewed-by: Christian Kandeler <christian.kandeler@digia.com>
* factor out settings-related functions to own fileJoerg Bornemann2014-07-092-18/+51
| | | | | | | | This allows us to add more complex functionality to the Settings/String conversion functions. Change-Id: Ic4896868914d7f6e5a0bbd64beb0d64d3fd82ce7 Reviewed-by: Christian Kandeler <christian.kandeler@digia.com>
* remove qbsSettings() functionJoerg Bornemann2014-07-091-8/+0
| | | | | | | | Don't use a special Settings shared pointer. This simplifies the code a lot. Change-Id: I974cf9634d1760633744b1ed3cc18a9458ae2caf Reviewed-by: Christian Kandeler <christian.kandeler@digia.com>
* remove unused filesJoerg Bornemann2014-07-082-267/+0
| | | | | Change-Id: Ie9f14d051e9d82a682637862aef767ded7721e7b Reviewed-by: Christian Kandeler <christian.kandeler@digia.com>
* Allow the user to specify a custom place for settings.Christian Kandeler2014-02-213-3/+9
| | | | | | Task-number: QBS-509 Change-Id: I4ad32c648121068880d652e3ba39d4eea59dfbc3 Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* Make config commands understand booleans.Christian Kandeler2014-01-161-0/+6
| | | | | | | | | | The user frontends for our settings assume everything is a string, so do the necessary conversions. Note that this means there is no way to set the string values "true" and "false". For a correct implementation, users would need to supply types when adding new values. Change-Id: If3638525eeebe73857834389bae46484eee92cc3 Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* Incremented year in copyright infoRobert Loehning2014-01-087-7/+7
| | | | | | Change-Id: Ib7f9a00bb891fa39c5bc1f891ddbfba1e4d23227 Reviewed-by: Jake Petroules <jake.petroules@petroules.com> Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* Add editing capabilities to config-ui application.Christian Kandeler2013-08-121-0/+15
| | | | | | | | | | Configuration entries can be added and removed, and their values as well as their names can be changed. The latter feature means the GUI interface is now actually more powerful than the command-line version. Change-Id: Ic95954fe7bcae727448d25cfba833792ba47b5cb Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* Change targetOS and hostOS to lists, and remove targetPlatform.Jake Petroules2013-06-182-3/+1
| | | | | Change-Id: I33317c857a319e0fa25c9e0d0cc69abc4ad3fabb Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* Make the toolchain property a list.Jake Petroules2013-06-181-1/+1
| | | | | | | | | | | This allows us to differentiate between clang and gcc toolchains, and also allows us to easily apply conditions to multiple related toolchains (gcc, clang, mingw are all considered part of the gcc toolchain family). The probes now also correctly set the toolchain. Change-Id: Ic5d01fe7fe25dd5e5937cbff7d9253f180571533 Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* make Depends.name and Depends.submodules case sensitiveJoerg Bornemann2013-04-171-6/+6
| | | | | | | | | Also rename modules/qt to modules/Qt and use this form consequently. Task-number: QBS-254 Change-Id: I2e994f2bc5f93d4f887e14ac224ab360c54ad029 Reviewed-by: Christian Kandeler <christian.kandeler@digia.com>
* change values of qbs.endiannessJoerg Bornemann2013-03-221-1/+1
| | | | | | | | | | The valid values for the endianness are now "big", "little" and "mixed". Task-number: QBS-236 Change-Id: I710f2e1b7d1e5c71471d51519dff3e15aeb4b829 Reviewed-by: Jake Petroules <jake.petroules@petroules.com> Reviewed-by: Christian Kandeler <christian.kandeler@digia.com>
* consolelogger: abide no_acsii_conversionFawzi Mohamed2013-03-201-4/+4
| | | | | | Change-Id: I327090cbac40b58d280c5a23b82d0a477f0a1f26 Reviewed-by: Jake Petroules <jake.petroules@petroules.com> Reviewed-by: Christian Kandeler <christian.kandeler@digia.com>
* Make qbs::logLevelTag() return a QString.Christian Kandeler2013-02-061-2/+2
| | | | | | | This string is intended to be printed. Change-Id: I833d65ef94755a11014b8f53a3b9270b8202f0a9 Reviewed-by: Tobias Hunger <tobias.hunger@digia.com>
* Remove global log sink.Christian Kandeler2013-02-065-0/+333
| | | | | | | | | | | | | | | Applications may not want to use the same log sink for all builds. The logging facility is also decoupled from the command-line client in other ways: - The LogWriter modifiers for output channel and text color are gone, since this type of decision should not be made by low-level code. Instead, the "highlight" string can be forwarded to the log sink. - The console logger now lives in app/shared, as it must never be used by library code. Change-Id: I8863a554c9b74577320ef23f6f934a74e0f0cbb0 Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* Do not hardcode the settings source in the library.Christian Kandeler2013-01-293-3/+49
| | | | | | | | | This is inherently application-specific. Therefore, the library must not instantiate the Settings class itself anywhere; instead, a pre-allocated object comes in via the API. Change-Id: I04a101d5535508b9e165123b4efe06d957c0d171 Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* Support "--help" option in all tools.Christian Kandeler2013-01-221-4/+4
| | | | | | | This is needed to incorporate the tool-specific help into "qbs help". Change-Id: Ie6e05f86f417b354beb24e270f837fd159014a3f Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* Remove the "platform" concept.Christian Kandeler2013-01-182-74/+29
| | | | | | | | | | Ever since profiles were introduced, platforms have had no real purpose anymore, so it's about time we get rid of them. ("Property sharing" can instead be implemented via base profiles.) Change-Id: I1d629c9b698c7006f733a3c1382b0474f030915e Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* Use class instead of struct whereever possibleTobias Hunger2013-01-101-2/+4
| | | | | | | | | E.g. clang complains about struct/class mismaches, so try to use class as consistently as possible to avoid opportunities for mistakes. Change-Id: I81021336f2dc75a2f5b2b1105491aa50f8ea851d Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* update copyright yearJoerg Bornemann2013-01-092-2/+2
| | | | | Change-Id: Ic2962e57ede037b910d7e77b01b0163f0a22cb7d Reviewed-by: Christian Kandeler <christian.kandeler@digia.com>
* Consistently use mkspecPath in qbs::SettingsTobias Hunger2013-01-081-1/+1
| | | | | Change-Id: I7dbd595e7be59ec44d4786523278601b8cf0270b Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* Remove "local configuration" infrastructure.Christian Kandeler2012-12-121-1/+1
| | | | | | | | The original "per source project" approach made no sense, and the search for a different use case was unsuccessful. Change-Id: Icaf5935202450c5492f69afb1ffd724dfd423134 Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* Redo help output.Christian Kandeler2012-12-052-502/+0
| | | | | | | | | | | | | | 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>
* Allow for reuse of log level stringsTobias Hunger2012-11-291-22/+10
| | | | | Change-Id: I6b301b7fcd1c95aee6417c1db2bdcb35ed88d97c Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* setup-qt: adjust to changes in Qt 5Joerg Bornemann2012-11-222-2/+2
| | | | | | | | | The mkspecs/default symlink (directory on Windows) went away in Qt5. The qt.core module gets the property mkspecPath that holds the full path to the mkspec. Change-Id: Ic47abed642dadbd017fdbac45726ec51fb6cb5ca Reviewed-by: Christian Kandeler <christian.kandeler@digia.com>
* Always initialize Buildoptions::maxJobCount to a sensible value.Christian Kandeler2012-11-152-8/+3
| | | | | | | | We currently do the initialization in the command line parser, where it is of no use to other clients of the library. Change-Id: I8dc04840c4d716f5d488e1511130c03f2377ad14 Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* Don't use QSharedPointer for Settings objects.Christian Kandeler2012-11-132-4/+3
| | | | | | | They are not actually shared (and it would be a drag to do so). Change-Id: Ia4a33b37d858ac81af48c96a1fb04ba3d77e7685 Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* Introduce central translation context.Christian Kandeler2012-11-121-0/+1
| | | | | | | | Let's have a central class for doing translations in the library, instead of sprinkling Q_DECLARE_TR_FUNCTIONS all over the place. Change-Id: I73b7a299356305cc903663f3d59b128afe4ec263 Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* Do product filtering at an earlier stage.Christian Kandeler2012-11-062-1/+4
| | | | | | | | | | | | | It is unintuitive and confusing to give the Sourceproject and the Executor a list of projects as part of their build() operations, when in reality just some products should be built. So take the "selectedProducts" out of the Buildoptions and do the filtering outside of the library. This way, we can tell the API "build these projects" or "build these products" and it will mean exactly that. Change-Id: I88860a9cf7f4058145964b1b56b01e7970c9e8d0 Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* fix qbs help output for non-Unix platformsJoerg Bornemann2012-11-051-1/+5
| | | | | Change-Id: I4ea21d01881749b93617f643c605cad863eaeeb5 Reviewed-by: Christian Kandeler <christian.kandeler@digia.com>
* Add a progress indicator for the command-line client.Christian Kandeler2012-11-022-2/+24
| | | | | | | | | | This is considered useful especially for larger projects. Along the way, fix some progress observer problems uncovered by this addition. Change-Id: I520a50d74ca10a1a125b0c11318613c23ffc17d2 Task-number: QBS-156 Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* Some major steps toward a sensible public API.Christian Kandeler2012-11-021-1/+0
| | | | | | | | | | | | | | | | | - Make SourceProject the central class for clients to use. - It only lets the user see ResolvedProjects and their components; internal information, e.g. the script engine, the executor or anything related to the build graph, are not exposed. - It's no longer explicitly shared, since that makes little sense for this kind of class. - Note that the name now makes even less sense than it did before; it will be changed in a follow-up commit. - Do not hardcode the system environment in RunEnvironment, since clients are likely to want to provide their own environment. Change-Id: I73c19aa5bb6dbfa13a5996a70ae452a4fc0e2c94 Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* Document some classes.Christian Kandeler2012-10-291-10/+10
| | | | | | | | | | | Along the way, rename some things to help understand them: - Configuration -> PropertyMap - Rule::fileScript -> Rule::fileName Change-Id: Ibff62526fe8e0be92b23456c942665ebb7db10dc Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com> Reviewed-by: Tobias Hunger <tobias.hunger@digia.com> Reviewed-by: Christian Kandeler <christian.kandeler@digia.com>
* Remove some redundant namespace usages.Christian Kandeler2012-10-231-1/+1
| | | | | Change-Id: Ie00bea24eb95dbd16f987373138899825c228ce5 Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* Get rid of special treatment for files ending in ".qbp".Christian Kandeler2012-10-191-32/+17
| | | | | | | | | - Deprecate the ".qbp" suffix. - Do not go up the directory tree when looking for project files. Change-Id: I39ece65683556b720fb940dde27e485f865cf086 Task-number: QBS-137 Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* Remove unused member variableTobias Hunger2012-10-161-1/+0
| | | | | Change-Id: Icadb8628967eb8d4c99bebeef19719bf9320ae3d Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* Move command line parser out of lib/.Christian Kandeler2012-10-162-0/+507
| | | | | | | | It's by definition for use by the qbs command line tools only, so put it into app/. Also make the class name match the file name. Change-Id: I32f99563a9c5d1078137d90320aac0e6f28eaee6 Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* license and copyright updatedJoerg Bornemann2012-10-082-56/+40
| | | | | | Change-Id: I0c0b3035514ee6b735e85c098029fa2f41edb6ff Reviewed-by: Christian Kandeler <christian.kandeler@digia.com> Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* Added targetPlatform property to qbsRuslan Nigmatullin2012-09-182-1/+4
| | | | | | Change-Id: I9ae627296a24fac1936c84fdf18114fa083e5099 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com> Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* Special platforms setup: Adapt to some recent changes.Christian Kandeler2012-04-201-3/+7
| | | | | | | | - Add profiles. - Take variable renamings into account. Change-Id: Ic1f3f8896b1489cd059067c4c75376daa5a7ab17 Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
* Use global definition of environment variable separator.Christian Kandeler2012-03-152-15/+0
| | | | | | Change-Id: If93a6f64762b22023070937d5765b40434385a98 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com> Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
* setup-mt-platforms: Adapt to new cpp properties.Christian Kandeler2012-02-292-2/+6
| | | | | Change-Id: Idc557ec4b4a3c2aab05481005db86a65691401fa Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
* setup-mt-platforms: Use sensible compiler flags.Christian Kandeler2012-02-282-0/+2
| | | | | Change-Id: I6df0c53edde0f48d6f7d21857a514a576a9011f8 Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
* Make sysroot a base property.Christian Kandeler2012-02-241-1/+1
| | | | | | | It's not only relevant for the toolchain. Change-Id: I8d9b6fb02c7efb1e1e8d4941fc5210d4af084487 Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
* Add support for the magical MT platform.Christian Kandeler2012-02-242-0/+327
Change-Id: Iee3228a256980fe2aea0265f0eecca63f37824fb Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>