aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* fix warning in autotestv1.1.21.1Joerg Bornemann2014-01-231-0/+2
| | | | | | | Give the command a proper description. Change-Id: I7598197262a5ed77403af7fba361589def6c0063 Reviewed-by: Christian Kandeler <christian.kandeler@digia.com>
* Include profile.h via qbs.h.Christian Kandeler2014-01-212-0/+4
| | | | | | | It's part of the public API. Change-Id: Ieb835e99dccbe6c0decb37fd67d24808842418ed Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* Fix compilation on Windows.Christian Kandeler2014-01-201-1/+1
| | | | | Change-Id: I6f31008d3cc0e7fbff1cc47703ad05861b0eb67d Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* Check all output artifacts if checking timestamps was requested.Christian Kandeler2014-01-201-2/+3
| | | | | | | | | | Normally, those artifacts for which "alwaysUpdated" is false are skipped as to not cause false positives. However, if the user indicates that the build directory was messed with, they could, for instance, have been deleted and must therefore be taken into account. Change-Id: I5b0e498c4926c617956ff4e59864489cfc769d15 Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* Tighten sanity checks, part XXXIII.Christian Kandeler2014-01-173-3/+9
| | | | | | | | | | - Check whether the artifacts in a child list actually appears in their products' artifact list. - Do sanity checking right before storing the build graph. This makes sure that a corrupted build graph never gets written to disk. Change-Id: I06b02b97c3621ecdc1f6dae8e6ce818519f9736e Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* Doc: document cpp.archiverNameJoerg Bornemann2014-01-161-0/+18
| | | | | | Change-Id: Ie31e6eb3e098f5176030adb789315cb996b4ae17 Reviewed-by: Christian Kandeler <christian.kandeler@digia.com> Reviewed-by: Leena Miettinen <riitta-leena.miettinen@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>
* Fix API test.Christian Kandeler2014-01-141-6/+10
| | | | | | | | | The test project now has more than one installable file, so we can no longer assume that the first one is the application. Change-Id: I6059362c691912cafa46caa948d6b22baa9a289e Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com> Reviewed-by: Christian Kandeler <christian.kandeler@digia.com>
* Fix build data rescuing.Christian Kandeler2014-01-141-6/+6
| | | | | | | | | The old implementation allowed more than one connection to a child with the same file path represented by different artifact objects. Change-Id: I38db86c50f0f671fdcb05d481f51fb512442cbfd Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* Take source artifact properties into account when change tracking.Christian Kandeler2014-01-146-10/+40
| | | | | | | | | When properties on source files change, rules might have to be re- applied and the installation of the respective source file may have to be re-done. The current code catches none of that. Change-Id: I7d87eb1d6bbb9918f2633ec8cbb9640ca23b90a4 Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* Fix "clean" autotest on OSX.Christian Kandeler2014-01-141-6/+12
| | | | | | | Dynamic library names are different on Mac. Change-Id: I451d61765a91213e5d2e6141848cb2f00cb0d2d9 Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* Use a qbs-specific group for the settings.Christian Kandeler2014-01-141-11/+9
| | | | | | | | | | Otherwise, non-qbs settings from fallback locations will add noise for users. This patch is in effect an addendum to commit 065d89fa2c, which assumed that this happened only on OSX. However, we have now seen such problems also on Linux. Change-Id: If4e40d5941c8e1bd249cf75096b59d4b10880d00 Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* Tighten sanity check.Christian Kandeler2014-01-131-0/+11
| | | | | | | | Check for the same file appearing as different artifacts in a child list. See QBS-491 for an example. Change-Id: Ie93268c05386ccfae2a57097a19e5ec7d135902a Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* Fix profile test.Christian Kandeler2014-01-101-53/+28
| | | | | | | We don't throw exceptions anymore. Change-Id: I4a8baba0b3fd0d6af7adceb4c6ef905f63b84efd Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* Do not leak exceptions from the Profile class.Christian Kandeler2014-01-103-11/+30
| | | | | | | This is public API. Change-Id: I37cfd018e350a3ff4cecba34af42bf23a8aaf0fd Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* Fix corner case in "up to date" check.Christian Kandeler2014-01-102-14/+20
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Currently, the timestamps of target artifacts (and only these) are always retrieved from disk before checking whether artifacts are up to date. This can lead to problems, for instance in the following scenario: - The transformer creating the target artifact has another output artifact, i.e. the target artifact has a non-target sibling. - The sibling is created in a different command that runs after the one creating the target artifact. - While the command creating the target artifact is in progress, a different, unrelated command running at the same time fails. As a result, the executor will wait until the in-flight commands have finished and then cancel the build, not running any commands still queued for execution. This means that the target artifact will have a different on-disk timestamps than its sibling. On the next build, this newer timestamp will be retrieved. Since the current code assumes that all sibling artifacts have the same timestamp, it only checks one random output artifact. If that happens to be the target artifact, the up-to-date check will report that the transformer does not need to be re-run, even though one artifact is not up to date. This patch fixes the two closely related subtle bugs that can lead to this behavior: 1) Get rid of the "convenvience functionality" that always checks the timestamp of target artifacts as a service to users that do not know that they are not supposed to manually touch files in the build directory. This behavior has been obsolete since the introduction of the "--check-timestamps" option. 2) If the "--check-timestamps" option has been given, our invariant about all output artifacts of a transformer having the same timestamp is not guaranteed to hold, as they come from an outside source. Therefore, in this case we must check the timestamps of all output artifacts, not just one. Change-Id: I482fe6060c0dee5fef74a9236a787dc7d40f3b24 Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* fix usage of dsym file tagJoerg Bornemann2014-01-091-1/+4
| | | | | | | | | | This commit amends 3db574b81ee879182b3ab5d3d83641aa42a45141. Task-number: QBS-488 Change-Id: Ic940cc5667dfb0959fd89f32cc59d36da46e8ef5 Reviewed-by: Ivan Komissarov <ABBAPOH@me.com> Reviewed-by: Christian Kandeler <christian.kandeler@digia.com>
* increment copyright year in remaining placesJoerg Bornemann2014-01-084-4/+4
| | | | | Change-Id: I9bfa8361a277ce50e8258e1e0ef9eb4ddcc01ff0 Reviewed-by: Christian Kandeler <christian.kandeler@digia.com>
* Incremented year in copyright infoRobert Loehning2014-01-08374-382/+382
| | | | | | Change-Id: Ib7f9a00bb891fa39c5bc1f891ddbfba1e4d23227 Reviewed-by: Jake Petroules <jake.petroules@petroules.com> Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* fix OS X dsym file tagsJoerg Bornemann2014-01-071-3/+4
| | | | | | | | | | | | | | | | The usage of the same dsym file tag in the app bundle and framework bundle rules led to two separate rule paths. One was creating a dylib cpp -> obj -> dylib -> dsym -> framework the other created an app cpp -> obj -> app -> dsym -> app bundle Using distinct file tags for application and dylib dsyms fixes this conflict. We should detect and handle situations like this in a subsequent commit. Task-number: QBS-384 Change-Id: I931b6a4be929468e4abdc2385aa38d8c224b32c6 Reviewed-by: Christian Kandeler <christian.kandeler@digia.com>
* Docs: Add documentation for convenience items.Christian Kandeler2013-12-129-6/+211
| | | | | | Change-Id: I835d1ed8835577fab5434ae89c058fc710d708b1 Reviewed-by: Jake Petroules <jake.petroules@petroules.com> Reviewed-by: Leena Miettinen <riitta-leena.miettinen@digia.com>
* Fix artifact cleaner.Christian Kandeler2013-12-122-4/+9
| | | | | | | | | If the "remove all" flag is not set, we must take care to not only skip target artifacts, but also their siblings that are not target artifacts. Otherwise, the build graph can end up in an unexpected state. Change-Id: Ie2fa36f3e489c3bee19f461e16fa093515b01020 Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* Fix installation for read-only files.Christian Kandeler2013-12-111-9/+16
| | | | | | | | | | On Windows, we must explicitly add write permissions to the target file before removing it, as the operation will fail if the file is not writable. Task-number: QBS-475 Change-Id: Ide40cc4310e327265b0a5c08f4935866762797b9 Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* Fix transformer comparison.Christian Kandeler2013-12-101-1/+2
| | | | | | | A member was not being taken into account. Change-Id: Icba9831d4536044d2b1dfc8e98dc3e935f944e1e Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* fix serialization of ResolvedTransformer.explicitlyDependsOnJoerg Bornemann2013-12-102-1/+3
| | | | | Change-Id: I814d2662562ce5d31abfc249529d2a2a52f62abc Reviewed-by: Christian Kandeler <christian.kandeler@digia.com>
* fix serialization of RuleArtifact.alwaysUpdatedJoerg Bornemann2013-12-102-5/+9
| | | | | Change-Id: I975d6a9b1bbea2ac45a37a9172d2d1490e6fbd96 Reviewed-by: Christian Kandeler <christian.kandeler@digia.com>
* iOS: exclude non-applicable functionality from Simulator builds.Jake Petroules2013-12-092-1/+3
| | | | | Change-Id: I4c66d3f8bc6f70f2cd517800323d23bf215af4ce Reviewed-by: Fawzi Mohamed <fawzi.mohamed@digia.com>
* Use -arch instead of -m32/-m64 when using LLVM toolchains.Jake Petroules2013-12-051-4/+10
| | | | | | | | This fixes building for iOS targets or any other non-x86 architectures, with LLVM/Clang. Change-Id: I8af3745080c6e678351dd7a117665fb9a8231bee Reviewed-by: Christian Kandeler <christian.kandeler@digia.com>
* Fix "qbs clean" autotest on Windows.Christian Kandeler2013-12-042-1/+4
| | | | | | | | The usual problem about mising lib file due to no exported symbols. Change-Id: Idce4afc9e451a507894b71b18084b0aef9989837 Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* Fix Export item documentation.Christian Kandeler2013-12-041-3/+3
| | | | | | | There were some references to "product module" left. Change-Id: I0217e375aa387298e0c32811608a33ffc7ee9a75 Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* Fix "clean" operation.Christian Kandeler2013-12-043-14/+43
| | | | | | | | We were missing some artifacts, and we also left some empty directories behind. Change-Id: Ib93fb7a6a644e09526c8d4e177d580fe2d870c54 Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* Fix artifact visitor.Christian Kandeler2013-12-044-10/+12
| | | | | | | | | The current implementation is overly complex and misses sibling artifacts. Just go through the list of artifacts instead of traversing top-down. Change-Id: Ic665bfc977a1718ee298efda66d741bb701886c3 Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* Update docs to mention $(VAR) form in Info.plist processing.Jake Petroules2013-12-021-2/+2
| | | | | Change-Id: Icea0faa06ceee110406a21c4718eba1a54e03f80 Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* Support :rfc1034identifier in Info.plist processing.Jake Petroules2013-12-025-19/+25
| | | | | | | | Example projects have been updated to test it. Task-number: QBS-465 Change-Id: I6e444512132293f7466e5f6372fdae12645c9db1 Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* simplify output of detect-toolchainsv1.1.1Joerg Bornemann2013-11-271-2/+1
| | | | | | | | Don't display the Windows SDK version on a separate line. Change-Id: I48d4127c32145e4bde0138f2cfb960378a56c4f4 Reviewed-by: Jake Petroules <jake.petroules@petroules.com> Reviewed-by: Christian Kandeler <christian.kandeler@digia.com>
* use the Windows SDK version, not the ProductVersionJoerg Bornemann2013-11-271-1/+1
| | | | | | | | | The "ProductVersion" of the Windows SDK is mostly useless for the user. Also, it can contain strange values like "6.2..9200", so better don't use it. Change-Id: I8c56979e4c020215558e328e0d936a8e0765554b Reviewed-by: Christian Kandeler <christian.kandeler@digia.com>
* fix Windows SDK lookup for x86_64 buildJoerg Bornemann2013-11-271-6/+14
| | | | | | | | | 64 bit builds of qbs must look in the Wow3264 registry tree. We already did that for VS but not for the SDKs. Change-Id: If96b7d184816c20b7075c5392bc1fdbb45d6f01d Reviewed-by: Jake Petroules <jake.petroules@petroules.com> Reviewed-by: Christian Kandeler <christian.kandeler@digia.com>
* ensure the same working dir for all MSVC compiler callsJoerg Bornemann2013-11-273-2/+6
| | | | | | | | | | Per product, the working dir for MSVC compiler calls must remain the same, because the calls share the file vc110.pdb (the exact file name depends on the VS version). Task-number: QBS-398 Change-Id: Idb865eb11f648e8103d91ae8a9fd43ecb9dc8a46 Reviewed-by: Christian Kandeler <christian.kandeler@digia.com>
* add /FS to cpp.platformC(xx)Flags for VS 2013Joerg Bornemann2013-11-271-4/+10
| | | | | | | Task-number: QBS-411 Change-Id: I83436f66e9de4f22e0a980c6322909e9854b91cf Reviewed-by: Christian Kandeler <christian.kandeler@digia.com>
* fix stdoutFilterFunction for MSVC PCHsJoerg Bornemann2013-11-271-1/+2
| | | | | | | | | For some weird reason the MSVC compiler outputs the header file to be precompiled twice. We filter now all occurrences of the input file name from stdout. Change-Id: I4d0e60af02cc00e836eea278dbfdaf11f48c3432 Reviewed-by: Christian Kandeler <christian.kandeler@digia.com>
* bump version number to 1.1.1Joerg Bornemann2013-11-272-2/+2
| | | | | Change-Id: I64c220b5b005efd5c2498166622f35781b72e6b4 Reviewed-by: Christian Kandeler <christian.kandeler@digia.com>
* Better error diagnostics.Christian Kandeler2013-11-272-0/+9
| | | | | | | | - Add sanity check for multiple artifacts with the same file path. - Print more information in case of multiple inputs to a non-multiplex rule. Change-Id: Ic76248fe61ba02bf3ff0820b9c968efc4b04ff20 Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* Fix formatting of command line option descriptions.Jake Petroules2013-11-261-23/+28
| | | | | | | Lines now wrap at 80 characters and each line is properly indented. Change-Id: I38f6e25550dfdd4f8fbf84a9431cfca4ba3f9427 Reviewed-by: Christian Kandeler <christian.kandeler@digia.com>
* fix "invalid subsystem" warning for MSVCJoerg Bornemann2013-11-262-10/+43
| | | | | | | | | | | | Look at the MSVC version of the mkspec Qt is built with to determine the minimum Windows version. Also, use 5.2 as minimum Windows version for 64 bit. Task-number: QBS-406 Change-Id: I4693cc055eb5309e8c5528e94a03d264fc553c67 Reviewed-by: Jake Petroules <jake.petroules@petroules.com> Reviewed-by: Christian Kandeler <christian.kandeler@digia.com>
* Braces cleanupOrgad Shaneh2013-11-269-28/+19
| | | | | Change-Id: I6ed221814912d80c6fdf41276d521b4da2345df2 Reviewed-by: Christian Kandeler <christian.kandeler@digia.com>
* fix regression introduced in e0a8ec89Joerg Bornemann2013-11-223-1/+12
| | | | | | | | | Accessing module properties in Group.condition didn't work anymore. We must first propagate the modules to the group, then evaluate the condition. Change-Id: Id3eb799faf91f449740c8213671e32af47683c3f Reviewed-by: Christian Kandeler <christian.kandeler@digia.com>
* Add iOS equivalent of CocoaApplication example.Jake Petroules2013-11-2219-0/+1847
| | | | | Change-Id: I4f1ad74617d3326001d49e67e1de7e308ab12eff Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* Fix minor issues in the CocoaApplication example.Jake Petroules2013-11-213-2/+6
| | | | | Change-Id: Idd2a49381f013710d72e05d9b1781b47ce70750f Reviewed-by: Christian Kandeler <christian.kandeler@digia.com>
* Take the qbs.install* properties into account when change tracking.Christian Kandeler2013-11-217-0/+72
| | | | | | | | | | | These are currently ignored, because we only look for properties that were requested in prepare scripts. This does not typically happen for installation parameters, but since they end up in the output artifacts, changes to them still require re-setting up the respective build data. Task-number: QBS-359 Change-Id: I571cb4c1a02ea790ddde2f244136c6a0fd6fb627 Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* Fix settings export.Christian Kandeler2013-11-211-2/+4
| | | | | | | The current code does not work for list values. Change-Id: I21ae1dcdc1185c48bbccc1ed94b31259f41fb5a4 Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>