aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Fix preprocessor defines list in Qt profile setup.v1.3.0Jake Petroules2014-08-151-1/+1
| | | | | | | For example, now gives the correct QT_GUI_LIB instead of QT_QTGUI_LIB. Change-Id: I8f77d5f32ed613b6a4b0dfac845e3f582c1db90d Reviewed-by: Christian Kandeler <christian.kandeler@digia.com>
* add missing member copy in Item::cloneJoerg Bornemann2014-08-141-0/+1
| | | | | | | | This has no immediate effect as we're not cloning module instances at the moment, but needs to be added for the sake of correctness. Change-Id: I389519efae2ffad4c2710d3d36ee1077e5de982a Reviewed-by: Christian Kandeler <christian.kandeler@digia.com>
* remove unused member from Item classJoerg Bornemann2014-08-141-4/+0
| | | | | Change-Id: I045279dd983c13640f65f08229fc8e6a65e4f642 Reviewed-by: Christian Kandeler <christian.kandeler@digia.com>
* Core library: Do not depend on Qt GUI module unconditionally.Christian Kandeler2014-08-141-1/+2
| | | | | | | | This was missed in 0ebf1bfa33. Task-number: QBS-565 Change-Id: I34a4b2c37b32749c94c045de0a2f7a628f4b0ada Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* Fix race condition in API test.Christian Kandeler2014-08-141-0/+2
| | | | | | | | | | The waitForFinished() function will run indefinitely if the job has already finished. This can happen in the projectLocking test, which calls the function for two jobs, but cannot know which one of them will finish first. Change-Id: I44c3e0550c0a287d96b0a79a9064455ecaaf7437 Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* Add missing member initialization in BuildOptions class.Christian Kandeler2014-08-121-1/+3
| | | | | | | | | The member specifying whether to check timestamps of generated artifacts had a random value in a default-constructed object, which lead to "interesting" behavior. Change-Id: Id12a94832451bbe18791139687ea10d67da829c3 Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* Fix autotest on Windows.Christian Kandeler2014-08-082-1/+4
| | | | | | | Library symbol export problem again. Change-Id: Icd728dd07d2502b9a96b14a77f03020e6cffb303 Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* fix storing/loading of null string valuesJoerg Bornemann2014-08-082-2/+13
| | | | | | | | | There was no distinction between empty strings and null strings when storing/loading values. This led to surprising empty strings where undefined values were expected in JavaScript. Change-Id: Iadb0507632e468a6da58ef6c0bda7916d350e49e Reviewed-by: Christian Kandeler <christian.kandeler@digia.com>
* Fix unclean source file paths resulting from groups with prefixes.Christian Kandeler2014-08-071-0/+1
| | | | | | | | | | | | | Example: Group { prefix: "dir/" files: "../f.txt" } The file path would end up as "/build-dir/dir/../f.txt" after calling FileInfo::resolvePath(), when we expect a clean absolute path. Change-Id: I9a7edb94cdf0fd99ce2d61f362a57ff4b9a8d060 Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* fix --changed-files functionalityJoerg Bornemann2014-08-062-5/+5
| | | | | | Task-number: QBS-660 Change-Id: I6cc960c358b23a6ee38f2533334ca2c7cd8cdf33 Reviewed-by: Christian Kandeler <christian.kandeler@digia.com>
* enhance TestBlackbox::changedFilesJoerg Bornemann2014-08-063-4/+46
| | | | | | | | | | | It makes a difference whether we start from an initial build with or without the --changed-files option. An initial build without the --changed-files options followed by an incremental build with --changed-files unveils QBS-660. Task-number: QBS-660 Change-Id: Iee8466dd203bed01cf053c8eb78d7b960f20a035 Reviewed-by: Christian Kandeler <christian.kandeler@digia.com>
* fix error message about incompatible import versionJoerg Bornemann2014-08-061-1/+1
| | | | | | | This is the language version, not the qbs version. Change-Id: Id5b439d9d0076cf454ae2bb0a9e9a6041d1d7330 Reviewed-by: Christian Kandeler <christian.kandeler@digia.com>
* Add autotest for QBS-559.Christian Kandeler2014-08-065-0/+45
| | | | | | | | | This bug was fixed somewhat accidentally, so make sure it can't creep back in. Task-number: QBS-559 Change-Id: I3f85676f77cbc50b67f226810137860a7733fc6b Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* Deprecate Artifact.condition.Christian Kandeler2014-08-052-2/+8
| | | | | | | | This never really worked. We have the outputArtifacts script for that now. Change-Id: I4c80ec1bcfcfe5a7e93edff1dfbd9a2139da3682 Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* Be smarter about storing property maps.Christian Kandeler2014-08-046-11/+90
| | | | | | | | | | | The current code just dumps such maps into the file via the ">>" operator, so no strings are shared. This patch fixes that. Example results for building Qt Creator: Size of build graph on disk: ~65 MB -> ~34 MB. Size of build graph in memory: ~250MB -> ~150 MB. Change-Id: Ic89d0f6c37ba1cd7b3aa8a35517bb6a6a37061c2 Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* Set minimum qbs version.Christian Kandeler2014-08-041-0/+1
| | | | | Change-Id: I9f1a349c8e34052d322f3cce1bc7da1a35f93764 Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* move Transformer creation out of createOutputArtifactJoerg Bornemann2014-08-011-7/+4
| | | | | | | | We don't re-use transformers anymore, so let's create them unconditionally. Change-Id: Iab0b1afe0f6b6224e1a24373ea94254b79847449 Reviewed-by: Christian Kandeler <christian.kandeler@digia.com>
* Lower the logger level for sanity check output.Christian Kandeler2014-08-011-3/+3
| | | | | | | Nobody ever wants to see these messages on log level "debug". Change-Id: Ic999ee5381099421b7aedf2279d060a4e9555fbd Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* multiplex rules now always see all inputsJoerg Bornemann2014-08-013-16/+6
| | | | | | | | | | | | | Multiplex rules now always see all inputs they're interested in and not only the compatible inputs that are out of date. Also, we do not need to re-use transformers, because that's a fruitless optimization attempt that complicated the code. Eventually, we're able to remove the hard-to-grasp "regenerating transformer" block. Task-number: QBS-645 Change-Id: I86dd307ee6ffa95baddd4e49307f0c1816e29901 Reviewed-by: Christian Kandeler <christian.kandeler@digia.com>
* add test for dynamic multiplex rule inputsJoerg Bornemann2014-08-016-0/+48
| | | | | | Task-number: QBS-645 Change-Id: Ib14533084c575d91cc937ca1f7e05145c06b108f Reviewed-by: Christian Kandeler <christian.kandeler@digia.com>
* Autotests: Make "copy and touch" operation atomic.Christian Kandeler2014-08-014-30/+26
| | | | | | | | | On Windows, QFile::copy does not update the timestamp on the target file. This fixes the "projectInvalidation" API test on that OS. Change-Id: I01c232de0f4e5e9bc5d2d28c24d5fb5516a58ca3 Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* set alwaysUpdated and properties for re-used Artifact objectsJoerg Bornemann2014-07-311-2/+2
| | | | | | | | Otherwise we can end up with outdated values. Task-number: QBS-645 Change-Id: If953d9530f3211666e903b2615410ed9ba2ac0f0 Reviewed-by: Christian Kandeler <christian.kandeler@digia.com>
* do not add file tags to re-used output artifactsJoerg Bornemann2014-07-311-6/+3
| | | | | | | | | This was needed when we createOutputArtifact was called multiple times for the same file path. This doesn't happen anymore. Task-number: QBS-645 Change-Id: Ia99975ee64a183fa5718a2dd56ff4ce1bb11f2ed Reviewed-by: Christian Kandeler <christian.kandeler@digia.com>
* do not call createOutputArtifacts for the same filePath more than onceJoerg Bornemann2014-07-312-3/+18
| | | | | | Task-number: QBS-645 Change-Id: Ia54f71ed7543617ba0b44f05e868a899a7c42e9b Reviewed-by: Christian Kandeler <christian.kandeler@digia.com>
* add getter/setters for Artifact::fileTagsJoerg Bornemann2014-07-3115-47/+76
| | | | | | | | | The setters take care of keeping the product's artifact-by-filetags hash up to date. Before, one had to set up the artifact's file tags before insertArtifactToProduct was called. Otherwise the hash didn't get updated. Change-Id: Ibb530d2c992d72c0a99152009b4e6eecbf770098 Reviewed-by: Christian Kandeler <christian.kandeler@digia.com>
* Speed up artifact removal.Christian Kandeler2014-07-311-40/+14
| | | | | | | | | | | | The current recursive algorithm for removing an artifact from the input set of all rule nodes, while admittedly very l33t-looking, results in a quasi-infinite loop when a larger number of artifacts are to be removed. Instead, we now simply iterate over the list of nodes. A further speed-up might be possible by doing batch changes, but this one solves the immediate problem. Change-Id: Id3c19321c82d5097e58b1b312c8717c59dc06eb3 Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* fix condition for "conflicting rules" errorJoerg Bornemann2014-07-311-29/+24
| | | | | Change-Id: I3877fcee643e1b80b2ee5030bc2dd98bb13244cd Reviewed-by: Christian Kandeler <christian.kandeler@digia.com>
* add trace output for RuleNode::applyJoerg Bornemann2014-07-313-0/+27
| | | | | Change-Id: Icbb514d6ec2b13f2660cf86003aea0c6bbd8e132 Reviewed-by: Christian Kandeler <christian.kandeler@digia.com>
* Avoid contractions in user-visible messages.Christian Kandeler2014-07-316-10/+10
| | | | | Change-Id: I68685166bfaa873f1e5995c7d507afef45b03055 Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* Add missing comma to error message.Christian Kandeler2014-07-312-2/+2
| | | | | Change-Id: I90b1b4dd35c6b2c625d11137e0f7d76d92641f72 Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* Invalidate project after certain unsuccessful re-resolving attempts.Christian Kandeler2014-07-308-4/+68
| | | | | | | Namely, if the build data has been mangled by the re-resolving attempt. Change-Id: Ibe020a6bda38a335f95e2d2cef4f37fac3199a7d Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* fix setup of cpp.compilerPathByLanguageJoerg Bornemann2014-07-301-0/+1
| | | | | | | | | The existence of the correct compiler binaries was checked, but the compilerPathByLanguage map was never updated. It always contained the initial strings "gcc", "g++" and so on. Change-Id: Ied9e164af0fd102b2a061665921f51f96ca9eb80 Reviewed-by: Christian Kandeler <christian.kandeler@digia.com>
* Tests: Move waitForNewTimestamp() function to shared file.Christian Kandeler2014-07-304-14/+17
| | | | | | | We want to use it in the API tests too. Change-Id: I8fad090ea98f67e50b7b2a8e3854c5b618172364 Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* fix calculation of old inputs for dynamic rulesJoerg Bornemann2014-07-306-28/+62
| | | | | | | | | | | | | | Instead of deducing the old inputs of a rule from the inputs of its created transformers, we hold a dedicated list of old inputs, because the former approach doesn't work for dynamic rules. This fixes a speed regression introduced in 32c4d3d7. The outputArtifacts script of dynamic rules was always run on compatible inputs that were not input of transformers, e.g. C++ sources that don't have a Q_OBJECT macro. Change-Id: I2d43fa7c91ed9084bd27dc9b948c06152bfce726 Reviewed-by: Christian Kandeler <christian.kandeler@digia.com>
* Clean up module item caches.Christian Kandeler2014-07-292-24/+16
| | | | | | | | | | The product- and project-specific ones were left-overs from earlier concepts, so get rid of them. Everything goes into the same "global" cache now. Also make sure that we cache disabled modules too; the respective files were always re-read from disk so far. Change-Id: Ib1dee08dbbfe61b0369772df96122e8eab19741b Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* remove pointless assignmentJoerg Bornemann2014-07-281-2/+1
| | | | | Change-Id: Ifc9a1b3797a82587ffe92fdc431d9c91591bd31e Reviewed-by: Christian Kandeler <christian.kandeler@digia.com>
* fix speed regressionJoerg Bornemann2014-07-282-5/+10
| | | | | | | | Commit 9297ea217284e2279f2d4471b3f8fc754dc5fe71 introduced a speed penalty. This is a quasi-revert of said commit. Change-Id: Ia0b0741cf818a9867f127a25830630fb3ea352ff Reviewed-by: Christian Kandeler <christian.kandeler@digia.com>
* GCC module: Only use -fvisibility-inlines-hidden for C++ code.Christian Kandeler2014-07-281-1/+1
| | | | | | | It's not supported for other languages. Change-Id: I69ed8acfd4c693036d341bbdf0cce1e3190467ea Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* Correct handling of project re-resolving with a new build root.Christian Kandeler2014-07-281-5/+7
| | | | | | | | | In that case, we must ignore the existing project. In particular, we must acquire a new build graph lock, as the existing one protects a different build graph file. Change-Id: I6f84d207959c94d082d9966c85d7b86a14ecfeb3 Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* skip TestBlackbox::testAssetCatalog for OS X < 10.9Joerg Bornemann2014-07-241-0/+4
| | | | | Change-Id: I897d4743cefc4e70366c5599c5ba94aadfad70a3 Reviewed-by: Christian Kandeler <christian.kandeler@digia.com>
* Doc: document restriction for Product.name valuesJoerg Bornemann2014-07-241-1/+13
| | | | | | Change-Id: I3134c4ba1c781260d2d14501eb8579e6ec628e02 Reviewed-by: Christian Kandeler <christian.kandeler@digia.com> Reviewed-by: Leena Miettinen <riitta-leena.miettinen@digia.com>
* qtprofile,clang: add libc++ on iOS and OSX for compilation and linkingFawzi Mohamed2014-07-241-2/+9
| | | | | Change-Id: I8e1964238231ecf87ab5df8b036b79a6c7348a61 Reviewed-by: Christian Kandeler <christian.kandeler@digia.com>
* API: Be smarter about adding files already matched by wildcards.Christian Kandeler2014-07-238-23/+109
| | | | | | | | | | | The project file does not need an update in this case. Actually, that would even lead to an error on the next project resolving, as the file would then be listed twice (once explicitly and once matched by a pattern). Task-number: QBS-653 Change-Id: If56969c36d1bba3f9194621690c2e1f25229ee9e Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* Doc: remove outdated informationJoerg Bornemann2014-07-231-30/+0
| | | | | | | The setup-qt tool does more magic these days. Change-Id: I720a9421c5dc831d2e861d982875ac2e613fa605 Reviewed-by: Christian Kandeler <christian.kandeler@digia.com>
* Add autotest for tracking wildcard-related changes.Christian Kandeler2014-07-233-0/+29
| | | | | | | | Namely, adding and removing files matched by patterns. This does not seem to be explicitly tested anywhere yet. Change-Id: I6d7b79500ee9e7375f22537da5db6a72057bbdee Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* Allow qbs.endianness to be undefined.Jake Petroules2014-07-222-2/+2
| | | | | | | If the property IS defined, it still must be in [big, little, mixed]. Change-Id: I77d64580d1dcce8ad027500ee8e394bf05d3d961 Reviewed-by: Christian Kandeler <christian.kandeler@digia.com>
* fix build on platforms != OS XJoerg Bornemann2014-07-221-0/+2
| | | | | Change-Id: Ie8f2226c7d9fe69e6c3842bbace8942674c6a959 Reviewed-by: Christian Kandeler <christian.kandeler@digia.com>
* simplify signature of MSVC.prepareLinkerJoerg Bornemann2014-07-222-13/+10
| | | | | Change-Id: I6dc05e5ef71e4fd54e3a27b5e13de9bdb9c57940 Reviewed-by: Christian Kandeler <christian.kandeler@digia.com>
* simplify signature of MSVC.prepareCompilerJoerg Bornemann2014-07-222-28/+17
| | | | | Change-Id: I1c42f03aa7aa539560ba3da520a2df16758f9485 Reviewed-by: Christian Kandeler <christian.kandeler@digia.com>
* introduce Project.minimumQbsVersionJoerg Bornemann2014-07-227-0/+56
| | | | | | | | | This property can be used to specify the minimum required QBS version of a project. Change-Id: I564f4298c060c3acf2f6221fb1d6978eda1dd1a5 Task-number: QBS-453 Reviewed-by: Christian Kandeler <christian.kandeler@digia.com>