| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This properties enables or disables generation of a compiler or
assembler listing files.
Reason why we need in this property is in that some compilers
(e.g. KEIL C51) generates a listing files by default, that spams
a project sources directory. So, we need to have a possibility
e.g. to disable it or to generate to an output directory.
This patch implements this feature for KEIL, IAR, SDCC compilers
with the following restrictions:
* IAR (8051, AVR, STM8, MSP430, ARM) - full support.
* KEIL (8051) - full support.
* KEIL (ARM) - has only one restriction in that a compiler does
not support specifying of an output listing file name. It is
possible to specify only an output listing directory. So, a
listing file names will be a bit different than for other
compilers (e.g. if a source file name is 'foo.c', then the
listing file name will be 'foo.lst', instead of 'foo.c.lst').
* SDCC (8051, STM8) - seems, has not possibility to disable an
auto-generated listing files. But it generates an output listing
files to a right output directory with the object files. Besides,
a listing files has a correct names (e.g. for the 'foo.c' file,
the listing file will be 'foo.c.lst').
Change-Id: Ic3516101e69eed156cf71606a7144efc72d40204
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
1. It is makes sense to define this property once inside of
CppModule, instead of duplicate it in each other module.
2. A new property name 'generateLinkerMapFile' will be better
than a previous, so, we can rename this property.
3. The map file generation is not necessary to be always
enabled, so, we can disable this property by default.
Change-Id: I0439e8b3e0273593c8456d32b1c099ff09498fad
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This fixes (at least) two compile errors:
- clang: error: invalid deployment target for -stdlib=libc++ (requires
iOS 5.0 or later)
- ld: library not found for -ldylib1.o
The dylib1 is only present on macOS and not present in recent tvOS/iOS
SDKs, clang tries to link to it if deployment target is less or equal to
"5.0".
Change-Id: Ie77a514bb2661312823df054f0dfca07d69e3059
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
|
|
|
|
|
|
|
|
|
| |
This is required because earlier iOS versions are broken in recent XCode
installations (at least, for XCode >= 7.0.0)
Change-Id: Ib55e2eafcf26357695ab057da8109921518b7fea
Reviewed-by: Qbs CI Bot <travis-bot@weickelt.de>
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
|
|
|
|
|
|
| |
Task-number: QBS-1316
Change-Id: Ibf9da364610c260ead088a8990a70c7739d53c39
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The formerly required AndroidApk item is no longer needed: We just tag
the APK file as an application and let the Application item pull in the
Android.sdk module for Android targets.
It is also possible to have native code directly in the Application
product; in that case, the multiplexed variants become dynamic libraries
and the APK file is built for the aggregate.
[ChangeLog] The AndroidApk item was deprecated, a normal Application
item can be used instead.
Change-Id: I04f5f3892f354ca9eb4f2da8055abcd8d072aba0
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
|
|\
| |
| |
| | |
Change-Id: I056a96c062881c2a07ec15b1803efa9c9aa1a02a
|
| |
| |
| |
| |
| | |
Change-Id: Ibb98b4a9166e3cd61fe9aacd0e6a5a2eb9eb7624
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
|
|/
|
|
|
|
|
| |
This is the platform standard, and it gives us smart relinking for free.
Change-Id: Iee9e14fe66c9418adaa14893fe2b4f573408f77d
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>
|
|
|
|
|
|
|
|
|
|
|
| |
... 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>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Instead of always using the fallback value, we instead always use the
standard value unless we know we're running an older toolchain
which does not support it. This alleviates the potential for differing
behavior in newer versions of compilers which may attempt to remain
compatible with earlier drafts of corresponding standards.
[ChangeLog] Always use standard values for -std= when possible
Change-Id: I61ff3ecd863caa24cb8fb54500e62dc310a2af02
Reviewed-by: Jake Petroules <jake.petroules@qt.io>
Reviewed-by: Leena Miettinen <riitta-leena.miettinen@qt.io>
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
|
|
|
|
|
|
|
|
| |
The standard is out now.
Task-number: QBS-1020
Change-Id: Ie8249e1c860d5ebc2f9dadf02551544ddaaf2868
Reviewed-by: Jake Petroules <jake.petroules@qt.io>
|
|\
| |
| |
| | |
Change-Id: Iecddc2722d22d7c15d4b32efd676fa8e7c00e99f
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
...rather than leaving them undefined. This way, the string "undefined"
will not end up in file names.
It's safer to do it this way compared to checking for "undefined" in all
the places that could make use of the properties. Due to the semantics
of these properties, there is also no value in treating "undefined" in a
special way.
Task-number: QBS-1265
Change-Id: I6ce7626485baa284a6c782b513740f9d150e18c3
Reviewed-by: Jake Petroules <jake.petroules@qt.io>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>
|
| |
| |
| |
| |
| |
| |
| | |
This helps to block inappropriate host compilers when cross compiling.
Change-Id: Ied22fce094fdb726babea4e94a7ef1d78afc9a98
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
|
|\|
| |
| |
| | |
Change-Id: Iab942ed25d06038cf8c172eb70dcd8e9a720e1c8
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
This was fixed before in 8176a4d419 and broken again in 72eedbb0a4. Fix
it for good this time using module priorities.
Task-number: QBS-1263
Change-Id: Ib1702299ef6c51b19a9082da96485ef5387dc1bb
Reviewed-by: Jake Petroules <jake.petroules@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| | |
[ChangeLog] Added property cpp.rpathOrigin which evaluates to
@loader_path on Darwin and $ORIGIN on other Unix-like platforms.
Change-Id: If5770a83ae32f29ee520fd00b07ed8f0caf6bd48
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
There is no need to hardcode a heuristic in qbs.commonRunEnvironment
when we can find out the actual paths.
Task-number: QTCREATORBUG-19274
Change-Id: I7a07eb9ff658e38a15c954972370242651114b11
Reviewed-by: Jake Petroules <jake.petroules@qt.io>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
They did not have the project and product variables available, and they
accessed module properties in a way that made it look as if they were
normal properties rather than scripts, which was misleading.
Now everything works the same as in Rule scripts and JS commands.
Task-number: QBS-744
Change-Id: I11d70876185d528282a56747747dd8310a77fbc4
Reviewed-by: Jake Petroules <jake.petroules@qt.io>
|
|/
|
|
|
|
|
|
|
|
|
|
| |
For instance, GCC has various flags that are only used for linking, but
that are not ld flags and thus must not be escaped via "-Wl,".
[ChangeLog] Added cpp.driverLinkerFlags for flags to be passed to the
compiler driver only when linking.
Task-number: QBS-1236
Change-Id: Idc1498a74e0219306fda99de9adad2730f3a6f73
Reviewed-by: Jake Petroules <jake.petroules@qt.io>
|
|
|
|
|
|
|
|
|
| |
Provides an abstraction for the respective compiler flags. The initial
set of properties is the superset of what Qt can configure and what MSVC
supports.
Change-Id: I1be90361f2f104a55d2a784a69625396680b0713
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
|
|
|
|
|
|
|
|
|
| |
Maps to linker options that strip unneeded symbols or sections.
[ChangeLog] Added new property cpp.discardUnusedData.
Change-Id: I2f2c7f449e9ac426af859fac4d1e3b941be2a2ab
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
|
|
|
|
|
|
|
|
| |
This provides users with access to the full list of macros defined by
the MSVC, GCC, Clang, or MinGW compiler in use.
Change-Id: I6e7f6841bbc18aed13958724b268283d97b17320
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
| |
This is important if the user wants to use a different value than the
ones supported here. Also, change the default of
cpp.allowUnresolvedSymbols to undefined in accordance with the design
philosophy that 'undefined' typically results in no flags passed. This
will make no difference for user projects since the only platform
affected is Darwin and on that platform '-undefined error' is default.
Change-Id: I5557da37f4ed8c609e98a6f74ad4b553cae0b817
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
|
|
|
|
|
|
|
|
|
|
|
| |
[ChangeLog] Added initial support for the Universal Windows Platform
(properties for which API families/partitions are available to code
being compiled, and whether compiled binaries require an app container
context to load/execute).
Change-Id: Idd3e117bbb40bd547ae06c16318b2d2e38f07bb4
Reviewed-by: Maurice Kalinowski <maurice.kalinowski@qt.io>
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This is of course the right default: If a precompiled header is present,
then you will tpyically want to use it. We just couldn't do that so far,
because we did not have access to the "explicitlyDependsOn" artifacts in
the compiler rule. Now we do.
[ChangeLog] The property cpp.useCxxPrecompiledHeader, as well as the
variants for the other languages, now default to true.
Change-Id: Ie04172790ad21b0ebdfbf3366b6f549f705e774c
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Now it can actually be useful, in order to select a specific endianness
when building for architectures that are bi-endian. For example, MIPS
and PowerPC.
This patch makes it possible to build for ppc64le, which is the only
variant of the PowerPC architecture that seems to be relevant today.
ppc32 and all big-endian variants seem to have fallen out of use.
Change-Id: Id1b9f9b397990136ab9aa899829345d426465824
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
|
|
|
|
|
|
|
| |
Will be used in a following patch.
Change-Id: I43c0c093fd0c0278e4bfd72e6ed457b57bc6ba32
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Maps to -lazy_library, -reexport_library, -upward_library,
or -weak_library on Apple platforms.
[ChangeLog][Parameters] When pulling in library products, the new
Depends parameter cpp.symbolLinkMode can now be specified to control how
the library is linked into the target binary on Apple platforms:
specifically, whether the library is linked as weak, lazy, reexported,
and/or upward (see the ld64 man page for more information).
Task-number: QBS-200
Task-number: QBS-874
Change-Id: Ia68cfdf6d99f300c5a28f5638980711022d32d2f
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
|
|
|
|
|
|
|
|
| |
Task-number: QBS-13
Task-number: QBS-292
Change-Id: I63c2e0a4de5949c73ca33af7381c32606190a43a
Reviewed-by: Jake Petroules <jake.petroules@qt.io>
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Maps to --whole-archive, -force_load and /WHOLEARCHIVE on the toolchain
level.
[ChangeLog][Parameters] When pulling in static library products, the new
Depends parameter cpp.linkWholeArchive can now be specified to force all
the library's objects into the target binary.
Task-number: QBS-701
Change-Id: Ic6482092f39f9ecb1ffb8e37d3031a94dc830be8
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Modules can declare dependency parameters, e.g.
Module {
name: "cpp"
Parameter { property bool link }
}
Those parameters can be set in Depends items:
CppApplication {
Depends {
name: "otherProduct"
cpp.link: false
}
}
Export items can provide default values for dependency parameters:
DynamicLibrary {
...
Export {
Parameters {
cpp.link: false
}
}
}
Rules can react on dependency parameters by accessing dep.parameters
where dep is an object from the product.dependencies hierarchy.
Showcase and test the feature by adding the cpp.link parameter, which
can be set to false for library dependencies that should not be linked.
[ChangeLog] Added a way to parametrize dependencies.
[ChangeLog][Parameters] Added the cpp.link parameter to enable library
dependencies to be excluded from linking.
Task-number: QBS-585
Change-Id: I3b445ed65d5949a94426879e07a533a1c2af24d8
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
|
|
|
|
|
|
|
|
|
|
|
| |
The old warning was incredibly noisy and almost always unnecessary.
Users should have had enough time to migrate their projects by now, so
specifying pre-escaped linker flags will now properly result in a linker
error, but a helpful warning remains by default, which is only emitted
if the linker flags look suspicious to begin with.
Change-Id: I1ad1e9647fd490619eeb65eeb88f5bbbf58aa18f
Reviewed-by: Jake Petroules <jake.petroules@qt.io>
|
|
|
|
|
|
|
|
|
|
| |
These are internal properties that deduplicates architecture/vendor/system/abi
related flags between the compiler invocation and compiler probe, and reduces
tight coupling between gcc.js, GccProbe, and the individual cpp toolchain
modules.
Change-Id: I7ea57ea1dd4c5eb42fc8983e4c9c45aa01284521
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
|
|
|
|
|
|
|
|
|
| |
[ChangeLog] Added the cpp.useRPathLink property to control whether
to use the -rpath-link linker option.
Change-Id: I4f7ca342285fe51975fed5ff8cbf8d3f0d50fae9
Reviewed-by: Jake Petroules <jake.petroules@qt.io>
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
|
|
|
|
|
|
|
|
|
|
|
| |
We introduce file tags and properties to support the concept of
"amalgamation builds" for C, C++, Objective-C and Objective-C++.
[ChangeLog] Provided the means to easily combine source files for the C
language family in order to support "amalgamation builds".
Change-Id: Ia3d248203c29418907178b47dba84ca3a18a0857
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
| |
Object.prototype.hasOwnProperty returns a boolean, not a number, and so
the first expression where hasOwnProperty was always used.
This change simply removes all special app vs lib handling for
position independent code and leaves it entirely to the value of
the cpp.positionIndependentCode property.
Change-Id: Id2cbc7778399883adab8c553659ca7f623818737
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
We spent an inordinate amount of resources on scanning and collecting
system headers, of which there are a lot and which typically do not
change in a relevant way. Make this behavior opt-in.
========== Performance data for Rule Execution ==========
Old instruction count: 4331820265
New instruction count: 2557300533
Relative change: -41 %
Old peak memory usage: 18892592 Bytes
New peak memory usage: 16887880 Bytes
Relative change: -11 %
========== Performance data for Null Build ==========
Old instruction count: 521956733
New instruction count: 443021349
Relative change: -16 %
Old peak memory usage: 12498888 Bytes
New peak memory usage: 11186984 Bytes
Relative change: -11 %
[ChangeLog] Introduced cpp.treatSystemHeadersAsDependencies
Change-Id: Iae9d9ca63852fb38a68e8dd2cc10b512eafe15e1
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
|
|
|
|
|
|
|
|
|
|
| |
This allows to ensure that custom (user) locations come before
canonical shared locations of a particular distribution like
MacPorts (/opt/local/include) or FreeBSD (/usr/local/include).
Change-Id: Ia37b28408312300a42ccc31c7532ffdaf49c1c51
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
|
|
|
|
|
|
|
|
| |
- Remove redefinitions of the property.
- Set the property, where applicable.
Change-Id: Ie3f4bd3c4cc9b809667287045c10b22ff6b71e21
Reviewed-by: Jake Petroules <jake.petroules@qt.io>
|
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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: 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>
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
This moves one step further to making the setup-toolchains tool
unnecessary and also makes the toolchainInstallPath of MSVC
profiles consistent with what Qt Creator sets.
Change-Id: I3eb11b456bf02bde8993ec0dac7e0f9950174a08
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
|
| |
| |
| |
| |
| | |
Change-Id: If95ab5693a105ed5d442d5d0250cdc8204238a53
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>
|
|\|
| |
| |
| |
| |
| |
| |
| | |
Conflicts:
doc/reference/items/transformer.qdoc
share/qbs/modules/cpp/GenericGCC.qbs
Change-Id: I45560834560019b18274c373c45651eb8aadd206
|