| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
| |
Give the command a proper description.
Change-Id: I7598197262a5ed77403af7fba361589def6c0063
Reviewed-by: Christian Kandeler <christian.kandeler@digia.com>
|
|
|
|
|
|
|
| |
It's part of the public API.
Change-Id: Ieb835e99dccbe6c0decb37fd67d24808842418ed
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
|
|
|
|
|
| |
Change-Id: I6f31008d3cc0e7fbff1cc47703ad05861b0eb67d
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
|
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
|
|
|
| |
- 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>
|
|
|
|
|
|
| |
Change-Id: Ie31e6eb3e098f5176030adb789315cb996b4ae17
Reviewed-by: Christian Kandeler <christian.kandeler@digia.com>
Reviewed-by: Leena Miettinen <riitta-leena.miettinen@digia.com>
|
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
| |
Dynamic library names are different on Mac.
Change-Id: I451d61765a91213e5d2e6141848cb2f00cb0d2d9
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
|
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
| |
We don't throw exceptions anymore.
Change-Id: I4a8baba0b3fd0d6af7adceb4c6ef905f63b84efd
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
|
|
|
|
|
|
|
| |
This is public API.
Change-Id: I37cfd018e350a3ff4cecba34af42bf23a8aaf0fd
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
| |
Change-Id: I9bfa8361a277ce50e8258e1e0ef9eb4ddcc01ff0
Reviewed-by: Christian Kandeler <christian.kandeler@digia.com>
|
|
|
|
|
|
| |
Change-Id: Ib7f9a00bb891fa39c5bc1f891ddbfba1e4d23227
Reviewed-by: Jake Petroules <jake.petroules@petroules.com>
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
| |
Change-Id: I835d1ed8835577fab5434ae89c058fc710d708b1
Reviewed-by: Jake Petroules <jake.petroules@petroules.com>
Reviewed-by: Leena Miettinen <riitta-leena.miettinen@digia.com>
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
| |
A member was not being taken into account.
Change-Id: Icba9831d4536044d2b1dfc8e98dc3e935f944e1e
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
|
|
|
|
|
| |
Change-Id: I814d2662562ce5d31abfc249529d2a2a52f62abc
Reviewed-by: Christian Kandeler <christian.kandeler@digia.com>
|
|
|
|
|
| |
Change-Id: I975d6a9b1bbea2ac45a37a9172d2d1490e6fbd96
Reviewed-by: Christian Kandeler <christian.kandeler@digia.com>
|
|
|
|
|
| |
Change-Id: I4c66d3f8bc6f70f2cd517800323d23bf215af4ce
Reviewed-by: Fawzi Mohamed <fawzi.mohamed@digia.com>
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
|
| |
The usual problem about mising lib file due to no exported
symbols.
Change-Id: Idce4afc9e451a507894b71b18084b0aef9989837
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
|
|
|
|
|
|
|
| |
There were some references to "product module" left.
Change-Id: I0217e375aa387298e0c32811608a33ffc7ee9a75
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
|
|
|
|
|
|
|
|
| |
We were missing some artifacts, and we also left some empty directories
behind.
Change-Id: Ib93fb7a6a644e09526c8d4e177d580fe2d870c54
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
| |
Change-Id: Icea0faa06ceee110406a21c4718eba1a54e03f80
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
|
|
|
|
|
|
|
|
| |
Example projects have been updated to test it.
Task-number: QBS-465
Change-Id: I6e444512132293f7466e5f6372fdae12645c9db1
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
| |
Task-number: QBS-411
Change-Id: I83436f66e9de4f22e0a980c6322909e9854b91cf
Reviewed-by: Christian Kandeler <christian.kandeler@digia.com>
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
| |
Change-Id: I64c220b5b005efd5c2498166622f35781b72e6b4
Reviewed-by: Christian Kandeler <christian.kandeler@digia.com>
|
|
|
|
|
|
|
|
| |
- 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>
|
|
|
|
|
|
|
| |
Lines now wrap at 80 characters and each line is properly indented.
Change-Id: I38f6e25550dfdd4f8fbf84a9431cfca4ba3f9427
Reviewed-by: Christian Kandeler <christian.kandeler@digia.com>
|
|
|
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
| |
Change-Id: I6ed221814912d80c6fdf41276d521b4da2345df2
Reviewed-by: Christian Kandeler <christian.kandeler@digia.com>
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
| |
Change-Id: I4f1ad74617d3326001d49e67e1de7e308ab12eff
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
|
|
|
|
|
| |
Change-Id: Idd2a49381f013710d72e05d9b1781b47ce70750f
Reviewed-by: Christian Kandeler <christian.kandeler@digia.com>
|
|
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
| |
The current code does not work for list values.
Change-Id: I21ae1dcdc1185c48bbccc1ed94b31259f41fb5a4
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
|