| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
| |
Change-Id: I3877fcee643e1b80b2ee5030bc2dd98bb13244cd
Reviewed-by: Christian Kandeler <christian.kandeler@digia.com>
|
|
|
|
|
| |
Change-Id: Icbb514d6ec2b13f2660cf86003aea0c6bbd8e132
Reviewed-by: Christian Kandeler <christian.kandeler@digia.com>
|
|
|
|
|
| |
Change-Id: I68685166bfaa873f1e5995c7d507afef45b03055
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
|
|
|
|
|
| |
Change-Id: I90b1b4dd35c6b2c625d11137e0f7d76d92641f72
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
|
|
|
|
|
|
|
| |
Namely, if the build data has been mangled by the re-resolving attempt.
Change-Id: Ibe020a6bda38a335f95e2d2cef4f37fac3199a7d
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
| |
Change-Id: Ifc9a1b3797a82587ffe92fdc431d9c91591bd31e
Reviewed-by: Christian Kandeler <christian.kandeler@digia.com>
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
| |
Change-Id: I8e1964238231ecf87ab5df8b036b79a6c7348a61
Reviewed-by: Christian Kandeler <christian.kandeler@digia.com>
|
|
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
| |
Change-Id: Icbfb31d435b804254e1df95ed188763360f7c33b
Reviewed-by: Christian Kandeler <christian.kandeler@digia.com>
|
|
|
|
|
|
|
|
|
|
| |
The qbs file artifact was missing in that particular lookup table,
because the "qbs" file tag is added after insertArtifact is called.
This fixes tst_blackBox::testEmbedInfoPlist on OS X.
This commit amends 32c4d3d7.
Change-Id: Ibab9f301ca4cc4e562b4a397953add70351403bb
Reviewed-by: Christian Kandeler <christian.kandeler@digia.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Example:
outputArtifacts: {
return [{
fileTags: "blubb",
filePath: "x",
cpp: {
includePaths: "mydir"
defines: ["BLA", "BLUBB"]
}
}]
}
Task-number: QBS-646
Change-Id: I3defa656e1a5b10fe56e4bbba7c354612144552c
Reviewed-by: Christian Kandeler <christian.kandeler@digia.com>
|
|
|
|
|
|
|
| |
Clients need to set the define as well when including the header.
Change-Id: I0aa73cb2f530258685dc44b9da99d04d8d737b13
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
|
|
|
|
|
| |
Change-Id: I5bda4b7941506c39465b2462b24cc0fdf7c3f813
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
|
|
|
|
|
|
|
| |
No JavaScript is ever run, so it cannot be canceled either.
Change-Id: I322b2b1bb599273562f60028c07ac6bb09b4dd66
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
|
|
|
|
|
|
|
|
| |
This class replaces the Version struct in setup-qt and the
ImportVersion class of the loader.
Change-Id: Ic65eaf62de44ce0c082fe805431463defce1fe3b
Reviewed-by: Christian Kandeler <christian.kandeler@digia.com>
|
|
|
|
|
|
|
|
|
| |
Namely, at the same time we set the transformer on the artifact.
Otherwise there will be a time window where the build graph is
inconsistent (and there'd probably be a memory leak as well).
Change-Id: Ief5d253e672ffcd76dfceab1572a5dcfdf4cdaa3
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
|
|
|
|
|
|
|
|
| |
We can get an exception in build() when there are already jobs running,
which was not the case originally. Adapt to this.
Change-Id: I6c10983f9635950d1597c2b34f1b885112f3877d
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
|
|
|
|
|
|
|
|
|
|
|
| |
- Make sure errors are not overwritten in the executor.
- Do not report a process result for canceled processes. Such bogus
errors currently spam the output, making it difficult to find
the actual error that caused us to cancel the process in the first
place.
Change-Id: I76d724d084532fbce243bf180d955d6f34ac0a91
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
|
|
|
|
|
|
|
|
| |
Will be used by future patches.
Change-Id: I20bc0cdcbf8bde8d351e3fce30d3e15f1cb444e8
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
Reviewed-by: Christian Kandeler <christian.kandeler@digia.com>
|
|
|
|
|
|
|
|
|
|
|
|
| |
This is the functionality that allows callers to add files to groups
etc. Unfortunately, the QML/JS rewriter we use for this purpose pulls in
the Qt GUI module, which results in unnecessary library dependencies if
one only wants to use the command-line frontend. Therefore, allow this
feature to be compiled out.
Task-number: QBS-565
Change-Id: Ic134ff9cf37bd552ad493b388c05bcece983fd65
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
|
|
|
|
|
|
|
|
|
|
| |
When creating the set of input artifacts we must not include compatible
artifacts that have been created by this rule.
This can e.g. happen for the ["cpp", "hpp"] to ["hpp", "cpp", "unmocable"]
rule and led to occasional crashes in TestBlackbox::track_qobject_change.
Change-Id: I8bf5e8285fa22c8ec89619fb7d3bec60b9797ef0
Reviewed-by: Christian Kandeler <christian.kandeler@digia.com>
|
|
|
|
|
|
|
|
| |
Bail out if we try to remove an input artifact of a rule while applying
this rule. This indicates a serious flaw of the calling code.
Change-Id: I19110ececa02e5a795474a99f5ba911e4d2c9faa
Reviewed-by: Christian Kandeler <christian.kandeler@digia.com>
|
|
|
|
|
|
|
|
|
| |
Missing file dependencies (e.g. header files that are not part of the
project) must trigger a rebuild their dependents.
Change-Id: I502e696d886c86a503e8950ae60254075f7e9415
Task-number: QBS-631
Reviewed-by: Christian Kandeler <christian.kandeler@digia.com>
|
|
|
|
|
|
|
|
|
|
|
| |
Artifacts must be invalidated if a dependency is removed.
Consider a foo.cpp that includes bar.h. If bar.h is removed from the
project, then we must recompile foo.cpp to trigger the compile error
that stems from the wrong include.
Change-Id: Ifc2bc3085be553f87685a17c5ff05273daa6579c
Task-number: QBS-631
Reviewed-by: Christian Kandeler <christian.kandeler@digia.com>
|
|
|
|
|
|
|
|
| |
It's sometimes valuable to know which file a timestamp belongs to...
Change-Id: I41e748840bb07ff9755f33769b1b97b19066871a
Reviewed-by: Jake Petroules <jake.petroules@petroules.com>
Reviewed-by: Christian Kandeler <christian.kandeler@digia.com>
|
|
|
|
|
| |
Change-Id: I825deb8f44aa8e0fa2a1e89cae7a1c0c3e314073
Reviewed-by: Christian Kandeler <christian.kandeler@digia.com>
|
|
|
|
|
| |
Change-Id: I03f52f26fe8b8b657177d7a3128231619788ebb2
Reviewed-by: Christian Kandeler <christian.kandeler@digia.com>
|
|
|
|
|
| |
Change-Id: Ie3f4296e6006f37b74644018f399c7694171fa74
Reviewed-by: Christian Kandeler <christian.kandeler@digia.com>
|
|
|
|
|
|
|
| |
...because that's what it returns.
Change-Id: Ie0c8f27ea1d6b686fc1f825dbc8b42c56f1a7b68
Reviewed-by: Christian Kandeler <christian.kandeler@digia.com>
|
|
|
|
|
| |
Change-Id: I906b5642a9285d9db47fe7230743f02b2a264413
Reviewed-by: Christian Kandeler <christian.kandeler@digia.com>
|
|
|
|
|
|
|
|
| |
This was used to calculate include and library names.
That's done in setup-qt now.
Change-Id: Ief2b17e9fdf65e829dc563dac49e70d8dcbaebee
Reviewed-by: Christian Kandeler <christian.kandeler@digia.com>
|
|
|
|
|
|
|
| |
The usage of this property was removed in 04e5834e.
Change-Id: Ib938d9761f432b5b3cfad27d6c4008061edb69c7
Reviewed-by: Christian Kandeler <christian.kandeler@digia.com>
|
|
|
|
|
|
|
|
|
|
|
| |
We kept lists of added and removed artifacts in ProductBuildData. It was
never quite clear when to invalidate those lists, which led to QBS-635.
Instead we let the RuleNode decide which artifacts it considers as
"added or removed for this rule".
Task-number: QBS-635
Change-Id: I390e0ab775c695045c6e91ade3ac7326692cb314
Reviewed-by: Christian Kandeler <christian.kandeler@digia.com>
|
|
|
|
|
| |
Change-Id: Id2f55d64dcbaf6c1b80009a13d48ed823ee213cd
Reviewed-by: Christian Kandeler <christian.kandeler@digia.com>
|
|
|
|
|
|
|
|
|
|
| |
This property is special: We cannot just test for relevance by
checking whether it is used in any transformers, because changing
it can cause new transformers to get pulled in.
Task-number: QBS-650
Change-Id: If18495b47c7238fc8a1256146f4e935ce9655b18
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
|
|
|
|
|
|
|
|
| |
The code path where this is relevant has apparently never been taken, so
add an autotest as well (and fix the wording of the error message).
Change-Id: I314f1cb888264d30920a58f4e9cbbbf01fbcc4e6
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
|
|
|
|
|
|
|
|
| |
When re-resolving an existing project, the build graph already
exists in memory and does not have to be read from disk.
Change-Id: Icf5cf7396a859d4ee1c495b8cc4fa7a1ee61ff1d
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
|
|
|
|
|
|
|
|
| |
This property is actually a file path, not a mere name.
Task-number: QBS-579
Change-Id: I04e8f03eac97b5f86fe743a4923888a3d2a82c5d
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
|
|
|
|
|
|
|
|
|
| |
To get rid of unnecessary project resolving due to time stamp updates.
This is particularly relevant for Qt Creator, which often calls this
code for no reason.
Change-Id: Ic28464fa470c79efb800800ddb4f1c368d1e527d
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
|
|
|
|
|
|
|
| |
To distinguish this lock better from the build graph file lock.
Change-Id: Ib520bea568c5f9bf0ea5c87347f5576d82c935c4
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
|
|
|
|
|
|
|
|
| |
We did the unlocking in a different thread, which does not seem like a
good idea.
Change-Id: Id3427bf52e993011d0f18b0d7f526901e31e9c30
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
|
|
|
|
|
|
|
| |
We don't support that much control over the build dir's contents.
Change-Id: I50cd5e254551e109925b0265a52319df326142f2
Reviewed-by: Jake Petroules <jake.petroules@petroules.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
So that two qbs instances can't overwrite each other's
build graphs. In practice, this is probably most relevant
for IDEs, as these hold a build graph for potentially long
periods of time.
Facilitates QLockFile that was introduced in Qt 5.1. For older
Qt versions, no locking happens.
Task-number: QBS-162
Change-Id: Ib598617fb1742eb57b6a017f40b9631d1d54e627
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
|