summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* Make build directory available in the API.v0.3.0Christian Kandeler2013-04-163-1/+9
| | | | | | | Task-number: QBS-261 Change-Id: I78623f6d49d192aeaefead38b9ed16c183b66620 Reviewed-by: Jake Petroules <jake.petroules@petroules.com> Reviewed-by: Tobias Hunger <tobias.hunger@digia.com>
* Help compiler with branch prediction.Christian Kandeler2013-04-1221-81/+81
| | | | | | | | | Mark error checks in potentially performance-sensitive contexts with Q_UNLIKELY. Actual benefits unknown, but it cannot hurt. Change-Id: If3d2375965e6342b5d7a0b46ad2c8a41fd3567d0 Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* Fix handling of minimum Windows version and subsystem linker flags.Jake Petroules2013-04-125-29/+56
| | | | | | | | | | | | | | | | | | | | | | Both MSVC and MinGW now only pass their respective subsystem flags if product.consoleApplication is not undefined - the linkers use console by default. MSVC: as an exception to the above, a subsystem flag must be passed regardless of the value of product.consoleApplication if a minimum system version was specified - in this case subsystem will be set to console. MinGW now correctly handles setting the minimum subsystem/OS version; it was previously using totally nonexistent flags due to poor assumptions about its MSVC compatibility. The test case which tests this functionality was also broken, and is now fixed as well. Task-number: QBS-244 Change-Id: Ibca29ce673a81f1231d364d5b6e6875a462b379c Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* Refactor blackbox tests.Christian Kandeler2013-04-122-40/+92
| | | | | | | | | We want runQbs() to be more flexible while not adding even more function parameters, so aggregate the possible parameters in a new data structure. Change-Id: Ia2f47b7555c8ec5e4ad85ce6b69861e32c764478 Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* introduce FileInfo::isFileCaseCorrectJoerg Bornemann2013-04-124-2/+44
| | | | | | | | | This function checks if the file name of a given path has the same case that's stored in the file system. Only implemented for Windows and Darwin derivatives, no-op on all other systems. Change-Id: I3f0aa8ab89c57b08fbb7f20b42b0bb873bd8448b Reviewed-by: Christian Kandeler <christian.kandeler@digia.com>
* Skip non-applicable command line parser test on Windows.Christian Kandeler2013-04-121-5/+8
| | | | | | | There currently is no "--show-progress" option on that OS. Change-Id: I56150eadb69ac05d342d3a050c87e66bc79bd63f Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* Fix wrongly redefined virtual function.Christian Kandeler2013-04-121-1/+1
| | | | | Change-Id: I66f8ebade87d1d659f1f0c076e738cc3f9fe425f Reviewed-by: Tobias Hunger <tobias.hunger@digia.com>
* Fix qmFilesDir for iOS.Jake Petroules2013-04-121-1/+1
| | | | | Change-Id: I5e63482c25233dd92b1e8e8dc5442b7a04ba1128 Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* Check for Darwin in general rather than merely OS X, where appropriate.Jake Petroules2013-04-122-2/+2
| | | | | | | All usages of Darwin, OS X and iOS checks in QBS should now be correct. Change-Id: I81f38bb6e73bc160bce89597e70e89ce76eaccd2 Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* Fix casing of 'targetOS' in documentation.Jake Petroules2013-04-121-2/+2
| | | | | Change-Id: Ida935794ab4d07502204b9e4a4f8f2aaedb06712 Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* Remove structural redundancy in project and product classes.Christian Kandeler2013-04-1246-1534/+1495
| | | | | | | | | | | | | | | We had two project classes, each holding a list of products that was structurally identical, except that no BuildProduct object existed for a disabled ResolvedProduct. The same kind of duplication also happened for product dependencies. This patch gets rid of these parallel structures. BuildProject and BuildProduct are largely being demoted to data holders and are aggregated by ResolvedProject and ResolvedProduct, respectively. The resulting project structure should be easier to understand and maintain. Change-Id: I68beef60b9e0d62258f6a8337c9015864e18bd80 Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* setup-qt: fix a gazillion typosJoerg Bornemann2013-04-113-46/+48
| | | | | Change-Id: I4991179abbeeecc286a5a988edc7213a4f7678bb Reviewed-by: Christian Kandeler <christian.kandeler@digia.com>
* Make ProcessResult class fully public.Christian Kandeler2013-04-103-3/+5
| | | | | | | Its symbols were not exported, and the header was not included by qbs.h. Change-Id: Id551bb4d80d96b3d67a74f669ed1151ae08d8e15 Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* setup-qt: detect static Qt buildsJoerg Bornemann2013-04-103-3/+19
| | | | | | | qt.core.staticBuild will be set to true for static builds. Change-Id: I9e316eccacb43982ac616377642ac73d530596c8 Reviewed-by: Christian Kandeler <christian.kandeler@digia.com>
* fix relative install root pathsJoerg Bornemann2013-04-102-1/+9
| | | | | | | | | | The install root must be passed to the library as an absolute path. A QBS_ASSERT makes sure that we notice wrong usage. The command line frontend converts a relative install root path to an absolute path. Task-number: QBS-250 Change-Id: I4695dc29fdc5ead3af9a632b420b399f26c40166 Reviewed-by: Christian Kandeler <christian.kandeler@digia.com>
* derive version tag from project.version in doc.qbsJoerg Bornemann2013-04-101-1/+1
| | | | | | | This is working now. Change-Id: I88fecd0253281aee3b86866c6f2ba5c352cbfa88 Reviewed-by: Christian Kandeler <christian.kandeler@digia.com>
* setup-qt: clean up configVariable functionJoerg Bornemann2013-04-101-6/+8
| | | | | | | | Fix the regexp to not match BAR, FOOBAR and BLABAR when asking for BAR. Fix the return value to what is everywhere expected. Change-Id: I9d7a0d6843bc003e836250bedefcd1ae3aedd917 Reviewed-by: Christian Kandeler <christian.kandeler@digia.com>
* make SVConverter::popScopes reusableJoerg Bornemann2013-04-101-1/+1
| | | | | | | Make sure that pushedScopesCount is zero after popScopes. Change-Id: I8434df162566bfd9643c0f05df272f9aae7cc8e6 Reviewed-by: Christian Kandeler <christian.kandeler@digia.com>
* fix scope of own properties of module instancesJoerg Bornemann2013-04-106-7/+31
| | | | | | | | | | | | | | | | | Own properties of module instances must not have the instance itself in the scope. This fixes the following case: Product { name: "foo" Depends { name: "cpp" } cpp.defines: [name.toUpperCase()] // expected result: ["FOO"] } Task-number: QBS-252 Change-Id: Iac3d7153918132d01aec980a19502e9817f5e31d Reviewed-by: Christian Kandeler <christian.kandeler@digia.com>
* correct scope behaviorJoerg Bornemann2013-04-104-14/+22
| | | | | | | | | The scope of an item object must not affect the visibility of properties. This fixes TestLanguage::itemScope. Change-Id: If72b4bfdc6b30870d94aaf05cc704b7eb9beaddc Reviewed-by: Christian Kandeler <christian.kandeler@digia.com>
* remove unused EvaluatorScriptClass::findItemInScopeJoerg Bornemann2013-04-102-10/+0
| | | | | Change-Id: Ia2a284b918573963def4c6183139e5c84488c666 Reviewed-by: Christian Kandeler <christian.kandeler@digia.com>
* add unit tests for class Item and friendsJoerg Bornemann2013-04-102-3/+69
| | | | | Change-Id: I03489abd0fe5558cad814e2ede216851ac295b39 Reviewed-by: Christian Kandeler <christian.kandeler@digia.com>
* add autotest for the scope of overridden module propertiesJoerg Bornemann2013-04-105-0/+78
| | | | | | Task-number: QBS-252 Change-Id: Ib76f7a17374600a4e4f8145dbc2155c62d9ca485 Reviewed-by: Christian Kandeler <christian.kandeler@digia.com>
* remove debug leftoverJoerg Bornemann2013-04-101-6/+0
| | | | | Change-Id: I79c429fdc30a808a7853bb5cfb858512a0728f22 Reviewed-by: Christian Kandeler <christian.kandeler@digia.com>
* expose project scope in referenced productsJoerg Bornemann2013-04-102-1/+1
| | | | | Change-Id: Ic67e930d9d5dc531c18ef3a82d80b31e1916ba8d Reviewed-by: Christian Kandeler <christian.kandeler@digia.com>
* remove unused scripts from src/lib/parserJoerg Bornemann2013-04-102-55/+0
| | | | | | | Those are only useful in Qt Creator's source tree. Change-Id: I17fd0b2d357787b141fb3badeb7283d87a8700df Reviewed-by: Christian Kandeler <christian.kandeler@digia.com>
* Mention the build configuration when giving updates on operations.Christian Kandeler2013-04-095-10/+27
| | | | | | | | | E.g. say "starting to build for configuration gcc-debug". This is especially useful when building for several configurations simultaneously. Change-Id: I441615d87be314ec819c2d2267a03fec770402eb Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* Fix building for more than one configuration at once.Christian Kandeler2013-04-092-19/+101
| | | | | | | Was broken due to a bug in command line parsing. Change-Id: Ice6f5ce057a157f3d740a069ac567d75cfd38ba0 Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* react smarter on changed properties and added productsJoerg Bornemann2013-04-086-37/+138
| | | | | | | | | | | | Instead of throwing away the whole build graph, we detect changed properties in products and invalidate only those. Also, adding products does not cause a full rebuild anymore. Task-number: QBS-6 Task-number: QBS-235 Change-Id: I3ab1ca84eaeaf28bb083da4e6926e7b1ebbd7694 Reviewed-by: Christian Kandeler <christian.kandeler@digia.com>
* Add support for QtWebkitWidgets module.Christian Kandeler2013-04-081-0/+10
| | | | | | | New in Qt 5. Change-Id: If1c671a2ba24a6c48bae64027da8331a2a8043fa Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* Add missing copyright headersTobias Hunger2013-04-084-1/+88
| | | | | | | Change-Id: I809e30fac829f58625084374e03065ab938f05b8 Reviewed-by: Laszlo Papp <lpapp@kde.org> Reviewed-by: Jake Petroules <jake.petroules@petroules.com> Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* Sort commands and options by name in help output.Christian Kandeler2013-04-052-4/+18
| | | | | | | This makes it easier for users to find a specific command or option. Change-Id: I8e08fc927ce5372e6eb3a64ecc7c98ae93617384 Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* Update product properties test to cover referenced products.Christian Kandeler2013-04-055-48/+52
| | | | | | | Fails currently. Change-Id: Idfed174ec48663b5dee232775229049dc8c5d1dd Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* Take documentation into account in qbs project files.Christian Kandeler2013-04-052-0/+33
| | | | | Change-Id: I9e822988bc53a7cf17d1caff377570a295231b1d Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* make use of Rule.condition in dSYM ruleJoerg Bornemann2013-04-051-7/+1
| | | | | | | | | Instead of creating a fake command we turn the rule off if buildDsym is false. Change-Id: I4e436b88010df7bbc6b1cd0c164223f94db793b8 Reviewed-by: Jake Petroules <jake.petroules@petroules.com> Reviewed-by: Christian Kandeler <christian.kandeler@digia.com>
* implement Rule.condition propertyJoerg Bornemann2013-04-059-0/+68
| | | | | | | | Now it's possible to turn rules on/off dependent on module properties set by the product. Change-Id: Ie11b31f416bd95a8a764ce99d7d8ca190eff08b5 Reviewed-by: Christian Kandeler <christian.kandeler@digia.com>
* fix crash when accessing nonexistent outer valueJoerg Bornemann2013-04-053-1/+10
| | | | | | | | Task-number: QBS-248 Change-Id: Idcd8e18559dadf8bc3867dc51c59887ee99633d1 Reviewed-by: Jake Petroules <jake.petroules@petroules.com> Reviewed-by: Christian Kandeler <christian.kandeler@digia.com>
* add convenience functions for artifact lookupJoerg Bornemann2013-04-034-2/+14
| | | | | | | This makes it a bit easier to find the same artifact in two build graphs. Change-Id: I758e6e14a9a2d6c26232361cef1b726369f328e3 Reviewed-by: Christian Kandeler <christian.kandeler@digia.com>
* introduce product.dependencies propertyJoerg Bornemann2013-04-035-9/+200
| | | | | | | | | | | | | It is now possible to access the dependencies of a product or module. Entry point for the tree of dependencies is product.dependencies which returns a list of objects that represent products/modules the product depends on. Blackbox test added. Change-Id: I0c2728da479e8cc45ca3994d7e4a9e7a41802aa1 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com> Reviewed-by: Christian Kandeler <christian.kandeler@digia.com>
* introduce ScriptEngine.definePropertyJoerg Bornemann2013-04-032-6/+13
| | | | | | | This is a convenience wrapper around Object.defineProperty. Change-Id: Ifefe59ea8a443bed347115be9e8e87078a853ec4 Reviewed-by: Christian Kandeler <christian.kandeler@digia.com>
* tst_language: refactor handling of init/cleanup datatagsJoerg Bornemann2013-04-032-95/+42
| | | | | Change-Id: I70af2f43848cb7315eb7dfe64b32447670a62e23 Reviewed-by: Christian Kandeler <christian.kandeler@digia.com>
* Add rules for qhp and qch file generation.Christian Kandeler2013-04-031-0/+73
| | | | | | | | | Since qdoc works in a rather idiosyncratic way, we have to introduce special properties for the output file name as well as the process environment. Change-Id: I3797b3bf393b14c8a9bc671c56f0185515f8ef3f Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* GitIgnore uic productsOrgad Shaneh2013-04-031-0/+1
| | | | | | Change-Id: Ife90612c5d27193f72b62caa6aa60de158e4242a Reviewed-by: Jake Petroules <jake.petroules@petroules.com> Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* Make a process' environment configurable in a prepare script.Christian Kandeler2013-04-035-8/+39
| | | | | | | | This is needed for applications that are configured via environment variables rather than command-line arguments. Change-Id: I114f2bcd65d8551175b35ffbd4912bd37699dc89 Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* Add iOS module and move OS X/iOS common code to DarwinGCCFawzi Mohamed2013-04-026-212/+511
| | | | | | Change-Id: I2fea6a7eddd599c70336f351b6814bfe335edd79 Reviewed-by: Jake Petroules <jake.petroules@petroules.com> Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* Cache module properties.Christian Kandeler2013-03-283-2/+34
| | | | | | | | | The module properties look-up can take some time, so we only do it once. On my Linux machine, this results in a ~30% speed-up of the build graph creation. Change-Id: I41e885915976cc89b321ea1863ecff967b42bf9c Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* Show more fine-grained progress information for project loading.Christian Kandeler2013-03-2811-9/+58
| | | | | | | | | | | | Since we have no sensible heuristic before at least some parsing has been done, we delay setting the actual total effort until we can make an educated guess. While this leads to the progress bar staying at 0% for a little too long, at least the user gets the information about what is happening right away. Note that this improvment is independent of whether or not progress information was actually requested. Change-Id: I0d4b454e99eb02c66c3c7a1fddddc6650be0ece4 Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* fix moduleProperties() list mergingJoerg Bornemann2013-03-283-11/+20
| | | | | | | | | | When collecting list values from modules we must not remove all duplicates. E.g. cpp.cxxFlags: ["-framework", "A", "-framework", "B"] must not result in the list ["-framework", "A", "B"]. Change-Id: I2f961fe1b026b4fbcb52d0245a46a5d15ba96b82 Reviewed-by: Christian Kandeler <christian.kandeler@digia.com>
* yield error if loops in qbs imports are detectedJoerg Bornemann2013-03-284-1/+23
| | | | | | | Task-number: QBS-234 Change-Id: I3768cf7578426092895e992b6179fbf9fa119325 Reviewed-by: Christian Kandeler <christian.kandeler@digia.com>
* add autotest for the moduleProperties functionJoerg Bornemann2013-03-287-3/+91
| | | | | Change-Id: Id7415769d512131c2487b3d7c21259c308c9a56a Reviewed-by: Christian Kandeler <christian.kandeler@digia.com>