| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
| |
Change-Id: I0ecc59ff2277be198415332af405394043fa77d4
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
|
|
|
|
|
| |
Change-Id: I365acd2eb6fd27d3b31bcf7d84c00039166781ec
Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
|
|
|
|
|
|
|
|
| |
One of the checks fails in 1.12, because we still list "qbs" as an input
file tag in the bundle module.
Change-Id: I8f033e4dc653989b153182c11e6607afe5658e6e
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
|
|
|
|
|
|
|
|
|
| |
If a product could not get properly loaded and a per-product property
override was given on the command line, we used to erroneously complain
about the property override instead of reporting the real error.
Change-Id: I1cbbc8ff9b6dcd453563c4745778576342862ca3
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
|
|
|
|
|
| |
Change-Id: I180feccc60857a5431e1c55354e478824f62b6fe
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
|
|
|
|
|
| |
Change-Id: Id35b1843da772f703f1b2cb60487f9513c0a8efc
Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
|
|
|
|
|
|
|
|
| |
... via the environment. This should help reduce false positives in our
CI.
Change-Id: I28492b4e476289f2d9418a272b167d9a679ebc5f
Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
|
|
|
|
|
|
|
|
|
|
|
| |
The crash would happen when creating the export information for a
product whose Export item contained an assignment of the form "x.y:
original", where x is not a module and the assignment was inside a
Properties item.
Task-number: QBS-1362
Change-Id: I900857fcd97852360ec2b75de1b7a791fd948dc4
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
|
|
|
|
|
|
|
|
|
|
| |
... of the form "x.y.z: value", where there is no module x.y. The errors
printed in this case did not have a location, because none of the value
items are proper module instances and we did not keep track of the chain
of parent items.
Change-Id: I2da4da7beb5bd6f6d185a63c90d42340c9e30492
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
|
|
|
|
|
|
|
|
|
| |
... if the non-existing module name has more than one component. We
inadvertantly skipped the check in that case.
Task-number: QBS-1362
Change-Id: I1fcababee1ea70c3133bd1b1c8f8f32f8450a0e8
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
|
|
|
|
|
|
|
|
| |
Fun fact: If the file path you pass to the linker via -o does not
contain a dot, then mingw will append ".exe".
Change-Id: I4a4133c99fc63fd91e47c905ca902d3eb26b1146
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
|
|
|
|
|
|
|
|
|
|
| |
We need to make sure all the artifacts are present in the build graph
before writing the respective interface file, but we don't need to
rewrite it if these artifacts are rebuilt. So use auxiliaryInputs
instead of inputs.
Change-Id: I82dee65f6630a0bbd24245df9100e4dabf0320f2
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
|
|
|
|
|
|
|
| |
So the problem can be more easily investigated.
Change-Id: Ia968a4e42164cce5b3f67d9e8a29ccd5b24e3eaf
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
|
|
|
|
|
|
|
|
|
|
| |
... library, this can lead to warnings or linker errors. Most easily
seen on macOS when multiplexing across multiple architectures,
and an app ends up linking against multiple multiplexed variants of
a dependent product library.
Change-Id: I4ea4b419099a1010f7b8c32ee11079da93f1d236
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
|
|
|
|
|
| |
Change-Id: I3209a71c21ea1f91d232ab2bb607fa81c9751ad7
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
|
|
|
|
|
|
|
|
| |
The flag is supported in earlier compiler versions than our code
assumed.
Change-Id: I5bc32c29c61885ca38e60bb8a000250a11d32b0c
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
|
|
|
|
|
|
|
|
| |
This used to cause an infinite recursion, eventually crashing after
running out of stack space.
Change-Id: I073f7163d73a70b17bab078c8a99199bc9d21eaa
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
|
|
|
|
|
|
|
|
|
| |
This used to lead to an error message about duplicate product names,
which left the user in the dark about the actual problem.
Change-Id: I460dcdf89112124cfd303529d42acd6c13fe9155
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
|
|
|
|
|
|
|
|
|
| |
The input artifact scanner was missing a check, so empty paths could end
up in the list of file dependencies. As a result, the respective
artifact would get rebuilt every time.
Change-Id: I34e48776856224dc885f03d34d40cae88d7d5e4b
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
If a former child artifact is not in the list anymore after the rules
applicator has run and it was not originally added as a result of
scanning, then it is no longer a child artifact.
We used to add these artifacts back to the list of children, so that an
existing parent/child connection persisted even after changing the rule
input tags in a way that the child would not match anymore.
Change-Id: I700f515bbe5732bdb9251d48e3fc5ad53fb181cc
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
|
|
|
|
|
|
|
|
|
|
| |
We forgot to adapt the static library rule back when we implemented
smart relinking.
Change-Id: Iea952c868ca7b5c0bda89690865d554be4893bb5
Reviewed-by: Kai Koehne <kai.koehne@qt.io>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
|
|
|
|
|
|
|
|
| |
Those were broken, because QScriptValue::toVariant() doesn't take
QScriptValue::prototype() into account, which we set for imports.
Change-Id: I571f7a4b63df08b1768f61bcc1d622f3730c2a73
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
|
|
|
|
|
| |
Change-Id: I42a01e549c15c91428d0f8bd9be03ea59c773032
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The qmlcache module was broken in an impressive number of ways:
- We forgot to adapt the Probe to a5cc49f2c6.
- The return value of the validate property is never evaluated;
you have to throw an error for it to have an effect.
- From 5.11 on, qmlcachegen does not support the
--target-architecture option anymore.
Task-number: QBS-1353
Change-Id: I770ddc18ad2519c1d5db83bee9634717b1768d67
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
| |
This module generates .pc files for products, optionally attempting to
derive some of the entries from the contents of the Export item.
[ChangeLog] Added new module "Exporter.pkgconfig" for creating pkg-
config metadata files.
Task-number: QBS-1232
Change-Id: Ic41e645e4462e8f85ad6c2025fb967e88d3438f9
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
| |
Because we don't turn shadow products into actual products in the
ProjectResolver, the results of probes run in their context did not end
up in the build graph and the configure scripts were therefore
needlessly re-executed on the next project resolving.
Fix this by storing these probe results along with the project-level
ones.
Change-Id: I647bbedbbe3fa6f36b536fd1b80fd321894362f8
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
In addition to the traditional per-user settings, there is now also a
system-wide settings file affecting all users. The file's platform-
specific default location can be overridden at build time.
The qbs-config tool can write these settings via the new --system
option.
[ChangeLog] Introduced the concept of system-level qbs settings
Change-Id: Ie6f675a74e96ce1fa7b2dd0712f6106071e848a6
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Includes in the first line of a source file starting with a byte order
mark would not get detected, resulting in failure to recompile after a
header file change.
Skip over the BOM before passing the data to the lexer.
Task-number: QBS-1348
Done-with: Ola Røer Thorsen <ola@silentwings.no>
Change-Id: I894a5b1667e49be5f8ce9b5cc66e4e796fd073f1
Reviewed-by: Ola Røer Thorsen <ola@silentwings.no>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
|
|
|
|
|
|
|
| |
This was forgotten in 2bda52aa3d. Also added autotest.
Change-Id: Iba8c7c7aa6629f321017315b03964ce20809ac23
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
|
|
|
|
|
|
|
|
| |
Need to wait for a new timestamp, to make sure rules see all the
changes.
Change-Id: I972737e44d89d10cfa55eae41c5ac44c3c69e021
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Before this patch, if a product had a non-required dependency on another
product and that product's condition was false, then the dependencies
from the disabled product's Export item still got into the importing
product, which is not what users expect.
The fix is achieved by splitting up the addTransitiveDependencies()
function and moving the part that is not required for determining the
dependencies between products into handleProduct(). In that function we
already have definite knowledge about which dependencies are enabled, so
we can simply filter out dependencies of modules representing products
that are disabled.
Task-number: QBS-1250
Change-Id: I787a4554b2ced3924e0c6ab7e78bd73221fbecdc
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
|
|
|
|
|
|
|
|
|
|
| |
... after a transformer finishes. This makes our "out of date" check
independent of the local clock resolution for generated artifacts that
do not have source artifacts as children.
Change-Id: If3d47f1fd859c30846806fabaddf3b47a840a6d3
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
That call was probably conceptually unneeded since d08ce8f643 (because
from then on the module instance, which already has a qbs instance, was
used to evaluate the condition), and harmful since be8432fac9 (because
the loadBaseModule() call then happened on the shared module prototype).
This patch also needs to touch the module merger: Because the prototype
is now not tainted with qbs properties from the product item anymore, we
have to make sure that variant values are not ignored during module
merging; otherwise, qbs properties set by the multiplexing
procedure could get lost in the merge process.
Change-Id: Iae5d47dbe018d330f4c96e919bb0f83c086ae1df
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
|
|
|
|
|
| |
Change-Id: I441c0454ee7a4b928c132052c49db1cddc34d3c9
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
|
|
|
|
|
|
|
|
|
|
| |
The search path order provides additional prioritization. Conflicts can
now only occur between candidates in the same directory. This is needed
e.g. to allow distributions to provide global search paths.
Change-Id: I698a96e8943041fb0c4536901f75394bacd7fb40
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
|
|
|
|
|
|
|
| |
One of our test machines still had problems.
Change-Id: I49ec0ffd9831fbe768155a132f2d8db674e0db87
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
|
|
|
|
|
|
|
|
|
| |
It turns out that the gcc versions on some of our test machines are so
old that they don't even know the deprecated "c++1z" value yet. So don't
require the compiler call to actually succeed.
Change-Id: I751223f073edbd207e078c2bb018cdea4cd95e64
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
|
|
|
|
|
|
|
|
| |
Some of our test machines have older compilers, so also check for the
deprecated command-line options.
Change-Id: I589c29faf3cafd6bd22e975e3d80ea4f24e39507
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
|
|
|
|
|
|
|
|
|
| |
... when adjusting dependencies for multiplexing. If the profiles
property is set, it must override our heuristic about which variant of
the dependency to use.
Change-Id: I207dd6cdee91fb2715b5abcd634573f850f14404
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
|
|
|
|
|
|
|
|
|
|
|
| |
... and choose the highest entry. This enables different modules to
specify their requirements without introducing conflicts.
Same for cpp.cLanguageVersion.
Task-number: QBS-1225
Change-Id: I96ed6c370eb190023fdb69274dcb080d967f512d
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
|
|
|
|
|
| |
Change-Id: I7ef04109d22956bf7d6d63dd0f5f4cda87245561
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This change adds new Rule item property called
explicitlyDependsOnFromDependencies.
It allows specifying a list of file tags to consider in dependent
target artifacts which should be used as dependencies.
[ChangeLog] The Rule item property explicitlyDependsOn no longer
considers target artifacts of products that the processed product
depends on. The new property explicitlyDependsOnFromDependencies can
be used for that purpose.
Change-Id: I47a80699fe881d4075b292ad164dd6e776049a83
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
At the very least, this is a useful debugging tool, as it displays the
artifacts part of the build graph in a familiar format.
Tested successfully with the qbs project itself: The generated Makefile
could be used to build a working qbs on Linux and Windows.
[ChangeLog] Added a Makefile generator
Task-number: QBS-33
Change-Id: I8165168d9273bdb4853d4ac566b72087f9104f7a
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
|
|
|
|
|
| |
Change-Id: I8e55d065603521473190f2b8da332caa25956e3b
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
|
|
|
|
|
| |
Change-Id: I1f22a986cdb581cdd968b6f09bde4fe46d7f97f4
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
|
|
|
|
|
|
|
|
| |
Depends.productTypes can be empty, in which case there will be no
deferred Depends items.
Change-Id: I46bb24276d31c4141c36e806adb951bfe296b8e6
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
|
|
|
|
|
| |
Change-Id: Ib0c90169c2f9387755f0781e0db39becc5d221a9
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
|
|
|
|
|
|
|
|
|
| |
... if needed. This is required to lift the restriction that products
cannot be matched by Depends.productTypes if their type depends on
a module property, which turned out to be too limiting in practice.
Change-Id: Ibc51f035209e583d335719560a69d5bb42cb6df9
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
|
|
|
|
|
|
|
|
|
|
|
| |
This is a set of file tags representing run-time dependencies of the
test executables.
[ChangeLog] Added the AutotestRunner.auxiliaryInputs property for
specifying run-time dependencies of test executables
Change-Id: If1ac6256d83f535b8be859a096062f07b0070729
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The user can specify the outputs of lex/yacc via
%option prefix="foo"
in the .l file and
%output "parser.cpp"
in the .y file.
Also, introduce the following properties to specify the outputs:
lexOutputFilePath, yaccOutputFilePath.
Scan the lex/yacc inputs for those specifications and adjust the output
artifacts accordingly.
[ChangeLog] Added support for %option outfile and %output to the
lex_yacc module.
Change-Id: I5437c737ae8da54dc7eda81ac7384727f00f9d1f
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
|