| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The default value "undefined" tells the qrc file generator to use
only the input file name as a resource alias.
The benefits of changing the default value are as follows:
1) It's a bit weird to reset a normal value to undefined in qbs code.
2) This simplifies feature usage for output Artifacts and single files.
3) If one wants to put a hierarchical structure into a qrc file
there are a lot of cases in which they have to specify
resourceSourceBase manually.
4) When a Group with a wildcard and a prefix is used this makes user's
intention a bit clearer. This strongly separates "I want this set of
files" from "I want this directory structure".
Task-number: QBS-1053
Change-Id: Ib6413643398dca475b4b71ad884202c9e7fb823a
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
|
|
|
|
|
|
|
| |
Task-number: QBS-1043
Change-Id: I5f537f148792b0e2647d08d6e8004d79ae402f07
Reviewed-by: Leena Miettinen <riitta-leena.miettinen@qt.io>
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
|
|
|
|
|
|
|
|
|
|
|
| |
Previously the value of this property was taken only from the first
input. That value became the only prefix for the whole qrc file.
Now every unique value of resourcePrefix generates new <qresource> tag
with the corresponding prefix.
Change-Id: I2177b3bc38085014c41107225bcb4bd4c51ba58b
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
Reviewed-by: Jake Petroules <jake.petroules@qt.io>
|
|
|
|
|
|
|
|
|
|
|
| |
Let fileName contain the file name and filePath the file path like
everywhere else.
[ChangeLog] In Scanner items input.fileName now contains a file name,
and input.filePath contains the file path.
Change-Id: I3abc01989c56940df935047db56055936b3ab224
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
|
|
|
|
|
|
|
|
| |
Users should be able to "opt out" of values inserted by modules outside
their control.
Change-Id: I4f641b50ea203054759453402fa1e1795f6df4dd
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
|
|
|
|
|
|
|
| |
Tags should behave the same as module properties in that respect.
Change-Id: I5cbfde9c2cf90eef93feef0a8ffd894309341577
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
|
|
|
|
|
|
|
| |
Change-Id: If2e0e7c455359b4124a5fa5de63f0f553610ed92
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
Reviewed-by: Topi Reiniƶ <topi.reinio@qt.io>
Reviewed-by: Jake Petroules <jake.petroules@qt.io>
|
|
|
|
|
|
|
|
| |
Like QML has been doing forever.
Task-number: QBS-941
Change-Id: I0e46003740b68f2172c623043a0861910c1fe29d
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
|
|
|
|
|
|
|
|
|
|
|
| |
We should make it easier for users to find out how to write their own
rules.
Task-number: QBS-880
Task-number: QBS-1012
Change-Id: I5469a5b17a4f1967db0dd4c281e5292124a2928c
Reviewed-by: Leena Miettinen <riitta-leena.miettinen@qt.io>
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
|
|
|
|
|
|
|
|
| |
[ChangeLog] Added support for generating qrc files.
Change-Id: I9c5d703fcb6f8c14606d5abf66e8edfd4959f364
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>
Reviewed-by: Jake Petroules <jake.petroules@qt.io>
|
|
|
|
|
|
|
| |
[ChangeLog] Added support for QtScxml module.
Change-Id: I1ad8d51a3d9532d4a24270e4cc13f26f51620b07
Reviewed-by: Jake Petroules <jake.petroules@qt.io>
|
|\
| |
| |
| | |
Change-Id: Ie98233d955f3695da0b20069fb2317931e353e4e
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
This allows integration with tools like Bullseye Coverage.
Task-number: QBS-1000
Change-Id: I318599a9df0f082a096fb72db7a8878b15e571cc
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
Reviewed-by: Jake Petroules <jake.petroules@qt.io>
Reviewed-by: Leena Miettinen <riitta-leena.miettinen@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
People must be able to set the version part of their shared library's
soname. So far, we hardcode it to the major part of the product version,
but that's not always right.
[ChangeLog] Introduced cpp.soVersion.
Change-Id: Ie06d5b88d0b3ee62f5924d58407e2a88e9e6f90d
Reviewed-by: Jake Petroules <jake.petroules@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Patch-set 3 includes rest of the files.
Every source file needs to have up-to-date license
headers in order to pass ci.
Change-Id: I55ed96910b5cb13513f80eb118feafcdaa32e8b0
Reviewed-by: Jani Heikkinen <jani.heikkinen@qt.io>
|
|\|
| |
| |
| | |
Change-Id: Id711e244f207d6c4f08e240ef4c033f344b530fc
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
[ChangeLog] Added automatic escaping of arguments passed to the
cpp.linkerFlags and cpp.platformLinkerFlags properties using the -Wl
or -Xlinker syntaxes. To revert to the old behavior,
Project.minimumQbsVersion can be set to a version lower than 1.6.
Change-Id: Ibe9d0fa3c9acf5062428ce1c3bc4d840e1cec4b3
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
This property allows specifying a set of flags to pass to the compiler driver.
Effectively this is similar to specifying flags in both *compilerFlags and
linkerFlags, except driverFlags will never be passed to the system linker.
[ChangeLog] Introduced cpp.driverFlags, which allows specifying flags to be
passed to the compiler driver (in any mode), but never the system linker.
Change-Id: I2171246f3b20cbaca74114cf4fa0b6d38c23c621
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
|
|\|
| |
| |
| | |
Change-Id: Ic2903bf480a73ff8644ea6f6af2aadb419af40e4
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
This was never recommended for use, and has been removed in the latest
Android NDK r12. See https://github.com/android-ndk/ndk/blob/master/docs/HardFloatAbi.md
for full details on the matter.
Task-number: QBS-989
Change-Id: I49fd1b7527d43e8b6caa2b905a41a6f0b1e5b4af
Reviewed-by: BogDan Vatra <bogdan@kdab.com>
|
| |
| |
| |
| |
| |
| |
| |
| | |
Ever since we introduced module merging, there has been no difference
between moduleProperty() and moduleProperties().
Change-Id: I3f9a9df3f24bf971828e774a5f687356509df2ca
Reviewed-by: Jake Petroules <jake.petroules@qt.io>
|
| |
| |
| |
| |
| |
| |
| | |
Task-number: QBS-998
Change-Id: I8f3999078bc3fec2001b5ffec9b1f51ba9848b56
Reviewed-by: Leena Miettinen <riitta-leena.miettinen@qt.io>
Reviewed-by: Jake Petroules <jake.petroules@qt.io>
|
|\|
| |
| |
| | |
Change-Id: I645e4b1dfe6fada1f3ff8a56be07ef5d6647b453
|
| |
| |
| |
| |
| |
| |
| |
| | |
This is needed sometimes.
Task-number: QBS-998
Change-Id: Idd15f79ec8996b4df5311425727e38ea8d6eebae
Reviewed-by: Jake Petroules <jake.petroules@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
These tools are popular enough to warrant seamless integration out of
the box.
[ChangeLog] Added lex_yacc module.
Change-Id: I2b31f0e527b1d467e9daa0e239eb58d2aea83f69
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
Reviewed-by: Jake Petroules <jake.petroules@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
This property allows qbs to automatically select an appropriate linker
based on the objects being linked. The new behavior is to automatically
use the C++ compiler driver for linking if any of the objects being
linked were compiled from C++ or Objective-C++ sources, otherwise the C
compiler driver if any of the objects being linked were compiled from C
or Objective-C sources, otherwise the system linker. To retain the old
behavior, cpp.linkerName can be set to cpp.cxxCompilerName, and
cpp.linkerMode to "manual". Qbs will also avoid passing the -stdlib
option or linking c++abi on Linux unless any of the objects being linked
were compiled from C++ or Objective-C++ sources.
As a result the default behavior for building a pure C application or
pure ASM application with Qbs is to NOT link to the C++ standard library
or any other supporting C++ libraries.
[ChangeLog] Introduced cpp.linkerMode property to allow selection of the
correct linker (C driver, C++ driver, or system linker) based on the
objects being linked
Change-Id: Ic16e31a3072c9e296c348783a21717902c15bff6
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
|
|/
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This serves two use cases.
Use case 1: Groups with overlapping conditions can be structured more
naturally, possibly getting rid of redundant property assignments.
Consider this:
Group {
condition: qbs.targetOS.contains("unix")
cpp.dynamicLibraries: ["pthread"]
files: ["unix_all.cpp"]
}
Group {
condition: qbs.targetOS.contains("linux")
cpp.dynamicLibraries: ["pthread", "dl"]
files: ["linux.cpp"]
}
Group {
condition: qbs.targetOS.contains("unix")
&& !qbs.targetOS.contains("linux")
cpp.dynamicLibraries: ["pthread"]
files: ["unix_nonlinux.cpp"]
}
Whereas now we can write:
Group {
condition: qbs.targetOS.contains("unix")
cpp.dynamicLibraries: ["pthread"]
files: ["unix_all.cpp"]
Group {
condition: qbs.targetOS.contains("linux")
cpp.dynamicLibraries: outer.concat(["dl"])
files: ["linux.cpp"]
}
Group {
condition: !qbs.targetOS.contains("linux")
files: ["unix_nonlinux.cpp"]
}
}
Use case 2: Putting source files into a dedicated project file which can
be instantiated from different products (similar to pri files in qmake)
becomes much more useful when these files can actually contain more than
one group. In this context, the top-level Group item will often act
purely as a structural element, satisfying the QML syntax' requirement
of a single root item.
[ChangeLog] Made the Group item nestable.
Change-Id: Ie1d7bed7bca33f6f023b625e8726d2e8db08e45d
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
Reviewed-by: Jake Petroules <jake.petroules@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Introduce a "version" property to the Module item and corresponding
properties to the Depends item to set constraints on that version.
[ChangeLog] Introduced the ability to check a module's version in a
Depends item.
Change-Id: I583b40216fb91af21f4e79ad403a7e327215ff79
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
Reviewed-by: Jake Petroules <jake.petroules@qt.io>
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
|
|\
| |
| |
| | |
Change-Id: If1a2c368170d89d5e6e11b08a32b37901d51eb1d
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
[ChangeLog] The "osx" value in qbs.hostOS and qbs.targetOS has been
replaced with "macos". For backwards compatibility, qbs.hostOS will
still contain "osx" in addition to "macos", and an error will be printed
if qbs.targetOS contains "osx" but not "macos". Specifying "macos"
without "osx" is allowed. These checks are subject to be removed in a
future version of qbs, so update your hostOS and targetOS checks
accordingly.
[ChangeLog] cpp.minimumOsxVersion has been deprecated and replaced with
cpp.minimumMacosVersion. cpp.minimumOsxVersion is subject to be removed
in a future version of qbs, so update your projects accordingly.
Change-Id: I479891829dff6eb6750cb2a04e1395f085896f63
Reviewed-by: Jake Petroules <jake.petroules@qt.io>
|
|\|
| |
| |
| | |
Change-Id: I0d15404445ffbadfd5fb2277630650928bb24b05
|
| |
| |
| |
| |
| |
| |
| | |
Task-number: QBS-983
Change-Id: Id0bd4a91f6afbe04621cfff28b0ef43dcfeee69b
Reviewed-by: Leena Miettinen <riitta-leena.miettinen@qt.io>
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
The concrete use case is to prevent such paths from getting into the
list of rpaths, which can mess with the look-up of libraries in the case
where we linked against a different version than the one provided by the
system.
[ChangeLog] Introduced property cpp.systemRunPaths.
Task-number: QBS-921
Change-Id: I67a17bbebca22bfadf0932ecc6cc0cfcffea310a
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
This introduces qbs.configurationName, which takes the place of
qbs.buildVariant in the command line and acts as a unique identifier
for each build configuration, rather than relying on the combination of
qbs.buildVariant and the profile name to do so.
No longer special casing qbs.buildVariant allows the variant to be
decoupled from the build configuration, and allow scenarios where a
project may contain products hardcoded for particular build variants,
and in future, special debug-and-release builds which create a single
framework product containing multiple build variants.
Incidentally, this change allows building multiple configurations of the
same build variant and profile name combination, since the build
configuration is no longer keyed on the aggregate of those values.
Building for different profiles with the same configuration name in
parallel is now no longer possible, but this is easily worked around by
simply specifying different configuration names for such combinations.
For example, the following is now possible:
qbs \
static profile:a qbs.buildVariant:release project.useStaticLibraries:true \
dynamic profile:a qbs.buildVariant:release project.useStaticLibraries:false
[ChangeLog] Each build configuration now requires a unique name, which
is specified on the command line in the same place that qbs.buildVariant
used to be specified. This allows building for multiple configurations
with the same variant.
Change-Id: I96ab9fc96861ab7e6a04a7d291a093115c22010e
Reviewed-by: Christian Kandeler <christian.kandeler@theqtcompany.com>
Reviewed-by: Leena Miettinen <riitta-leena.miettinen@qt.io>
Reviewed-by: Jake Petroules <jake.petroules@qt.io>
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
|
|\|
| |
| |
| | |
Change-Id: I93e4943cf8112ce1088c34a43928d2133bc7dca7
|
| |
| |
| |
| |
| |
| | |
Task-number: QBS-984
Change-Id: I4324e387ec4124f3f5f638ab8d627fc33f6f21a9
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
|
| |
| |
| |
| |
| |
| | |
Change-Id: I3a2361865036573237f1f87e2967f149bbf218f2
Reviewed-by: Leena Miettinen <riitta-leena.miettinen@qt.io>
Reviewed-by: Jake Petroules <jake.petroules@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Probes are often used to call external processes, which can be
expensive. We do not want them to be executed every time a project is
re-resolved. So cache the results and provide the means to force re-
execution if something changes externally.
Task-number: QBS-25
Change-Id: I5c48a6f657f5829b72df7677b566177502655c5e
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
|
|\|
| |
| |
| |
| |
| |
| |
| | |
Conflicts:
doc/reference/items/transformer.qdoc
share/qbs/modules/cpp/GenericGCC.qbs
Change-Id: I45560834560019b18274c373c45651eb8aadd206
|
| |
| |
| |
| |
| |
| | |
Change-Id: I885d94bb14b325dc36767a840ebdb0be1fb59dd2
Reviewed-by: Leena Miettinen <riitta-leena.miettinen@qt.io>
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
This term is not used by anyone (it's always written as "Qbs" and
pronounced "cubes") and it is ultimately confusing to users and
detracts from the identity of the product, especially its pronunciation.
Change-Id: Ifb76d059cafc33ce3fa686ddb3d7d67f47084faf
Reviewed-by: Leena Miettinen <riitta-leena.miettinen@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| | |
This fixes an issue where moc may fail to find some headers when
building Qt or projects that use Qt.
Change-Id: I52981139a3127539a4d5d9ba6e8d61575f7a0082
Reviewed-by: Christian Kandeler <christian.kandeler@theqtcompany.com>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Required for using new functions of QTimer.
Get rid of workarounds and helper functions that support previous
versions.
Change-Id: I13bec075ce3014083120834a402bdc213df10be9
Reviewed-by: Leena Miettinen <riitta-leena.miettinen@qt.io>
Reviewed-by: Christian Kandeler <christian.kandeler@theqtcompany.com>
|
|\|
| |
| |
| | |
Change-Id: I85f81532d88798d71cb88552dd150189d72829bd
|
| |
| |
| |
| |
| | |
Change-Id: Icc4d9f5239ce1dc8fb8dd72bad4bdcfae1f51737
Reviewed-by: Christian Kandeler <christian.kandeler@theqtcompany.com>
|
|\|
| |
| |
| |
| |
| |
| |
| | |
Conflicts:
qbs-resources/imports/QbsFunctions/functions.js
qbs_version.pri
Change-Id: I24c4c941d825e61ddd2e704c8cea29eaa9943997
|
| |
| |
| |
| |
| |
| | |
Change-Id: Id543798e8c00840504116d9077288327ab0f6543
Reviewed-by: Leena Miettinen <riitta-leena.miettinen@qt.io>
Reviewed-by: Jake Petroules <jake.petroules@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
When dynamic rules were introduced, transformers became second-class
citizens. They do not play well with rules, they introduce annoying
additional code paths in the implementation and they are plain broken in
several aspects. Now that rules with no inputs are supported, we don't
need transformers anymore.
Task-number: QBS-885
Change-Id: I316d8cffc91bb529f82350edc0b08358a80ae3fd
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
|
|\|
| |
| |
| | |
Change-Id: Id80f889136961e0353982503c54d88ce6e929e0f
|
| |
| |
| |
| |
| |
| |
| | |
It was an oversight that we did not have this before.
Change-Id: I6347be273273da301ca1ee3e23ff2ddda0a1553a
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
|