| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
| |
This was not implemented correctly (Xcode substitutes environment
variables using this syntax, not compiler defines) and not documented
anyways. Further, qbs has better functions for dealing with this.
Change-Id: I26c51457c059feddea42de2b13969a842be89696
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
|
|
|
|
|
|
|
|
| |
Usage of libc++ implies a deployment target >= 10.7 and 5.0,
respectively.
Change-Id: I8c839ad055b2f07cae1523acbca390c824b2a90e
Reviewed-by: Jake Petroules <jake.petroules@qt.io>
|
|
|
|
|
| |
Change-Id: If13357888685c630d1d9a7423c8f086ab03a6566
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Although the compiler has not yet been publicly released, we can find
references for the names of things in order to future-proof qbs for when
it is.
The name of the 64-bit ARM assembler can be found in two locations:
- https://github.com/Microsoft/ChakraCore/blob/master/Build/armasm.props
- https://msdn.microsoft.com/en-us/magazine/mt795185.aspx
The name of the 64-bit linker option:
- https://github.com/dotnet/coreclr/blob/master/CMakeLists.txt
The name of the ARM64 compiler macro:
- https://msdn.microsoft.com/en-us/library/b0084kay.aspx
Change-Id: I7ec9c112f149845e2a84a5907bb5b2eb87235a11
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
|
|\
| |
| |
| | |
Change-Id: Ie4ec88083aa4c85bbe872d8dc175960292f75d5c
|
| |
| |
| |
| |
| |
| |
| | |
We will make use of that in a follow-up patch.
Change-Id: I1fb6ca0938bbcc6f53bd0046761023a1b8563949
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
|
| |
| |
| |
| |
| |
| |
| | |
This is apparently used by the GHS INTEGRITY toolchain.
Change-Id: I1b93f71d318ec641aa68fee1eb6796f15aa445ed
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
|
|\|
| |
| |
| | |
Change-Id: I0009732184b3c54965c974f6f9d15185c5d505a8
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Consider the following:
There are external static libraries libA and libB, with libB having a
dependency on libA. Some module pulls in libA, another one pulls in libB
and libA.
The raw contents of cpp.staticLibraries for the product might
end up as ["libA","libB","libA"]. Before this patch, our library
collection code "simplified" this list to ["libA","libB"], which leads
to a linker error. Since we generally do not know about the dependencies
of external libraries, we should not touch these lists.
Change-Id: I4a94dfc8505ee9ece2562dc3aa3d66244ec7fdac
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
|
| |
| |
| |
| |
| |
| | |
Change-Id: I78f0619fad050672e296d192f0a3fa2f25dcafd4
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
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>
|
| |
| |
| |
| |
| |
| |
| |
| | |
This prepares it for use in a followup patch.
Change-Id: I8d51efc7c2d90918689c2aa3381a68648519e710
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
|
| |
| |
| |
| |
| |
| |
| | |
Handle the case of products without native.pe.manifest artifacts.
Change-Id: Ic6ae8684fd9298f3089b36339138bce6d0390738
Reviewed-by: Jake Petroules <jake.petroules@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
There's no reason to limit manifest embedding solely to the manifest
generated by link.exe. Additionally, this makes it easier to add content
to the manifest by adding files with manifest fragments rather than
having to manually compose them and create Windows Resource files to
apply them.
On MSVC, this allows the manifest tool to merge multiple manifests into
the final assembly without having to manually create a .rc file or
perform the merging.
On MinGW, this allows a manifest to be merged into the final assembly
without having to manually create a .rc file. Unlike MSVC, manifest
merging is not yet supported because the toolchain does not provide this
capability. Qbs may begin to emulate this capability at some point, but
for now specifying multiple manifest files in a product with MinGW will
result in an error.
Change-Id: I12e2db809c8b638168567f4342288eac568a57ca
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
|
|\|
| |
| |
| | |
Change-Id: Ifb2f2be3b37344b6ec17dc25f8436f3fedf71d12
|
| |
| |
| |
| |
| |
| |
| |
| | |
... for mingw. There are DLLs there which are needed by helper tools
located in a different path.
Change-Id: I20f4937f5e88a75d7261d86885182317965eee91
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
We declared the existence of the symbols file unconditionally, but did
not actually create it in the mingw case, leading to assertions in the
executor.
Change-Id: Icf135182f79c55fc4f636fd3d7642f08dcfe16d9
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| | |
The output format is not ELF for Windows targets.
Change-Id: I04d98379763924229393d82da4057dbe0e99beb5
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
Reviewed-by: Jake Petroules <jake.petroules@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| | |
People are settings this property to prevent producing libraries with
version numbers in their name while still setting product.version.
Change-Id: I0a0e9643a0177541dc4492a9034421d2e6b8174c
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
|
|/
|
|
|
|
|
|
|
|
|
|
|
| |
Since VS 2012 the /MANIFEST:embed linker option is supported that
automatically embeds the linker-generated manifest. A separate call to
mt.exe is not needed.
This speeds up linking with VS >= 2012 a bit.
Change-Id: I4b573b6ce36df025e98ab7cd6982d5f0f5f8a9e6
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
Reviewed-by: Jake Petroules <jake.petroules@qt.io>
|
|
|
|
|
| |
Change-Id: I978772eff14a1120921b34b861ff853e8d50c971
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
|
|
|
|
|
|
|
|
| |
Facilitates cross compiling between x86 and x86_64 on non-Darwin
Unix when using the system linker.
Change-Id: I4cb8fc7f7eb4ee13527fabcf91e8cf1d0fe1fcef
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
|
|
|
|
|
|
|
|
|
|
| |
Xcode prior to 7 uses GNU as, not the Apple clang-based driver which
supports the -target option.
Now: Clang as uses -target, GNU as uses -arch, no other options.
Change-Id: I389a43cf7118f3b6330a2aea16d47d7f21dbb2e6
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
|
|
|
|
|
|
|
| |
[ChangeLog] Added support for QNX and the QCC toolchain
Change-Id: Id5b1c451d3ca7c3a1445f2481af3bc4caf90798f
Reviewed-by: Joerg Bornemann <joerg.bornemann@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>
|
|
|
|
|
|
|
| |
This will be needed for the QCC (GCC-like) toolchain used for QNX.
Change-Id: I1a241a8a6ff5c3620100ee384e4c0a07e1e53037
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
|
|
|
|
|
|
|
|
| |
The code inside a configure property is supposed to be "pure" in that it
can only access other properties of the Probe.
Change-Id: I904875b90b23715c429efbca82b23ca576fe182d
Reviewed-by: Jake Petroules <jake.petroules@qt.io>
|
|
|
|
|
|
|
|
|
|
|
| |
Keep moduleProperty calls for
cpp.{flags|platformFlags|usePrecompiledHeader}, because
ModUtils.moduleProperty maps those to their language-specific properties
(e.g. cxxflags).
Change-Id: Id2280a42b26318b3a320d9df22801626336c72e6
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
Reviewed-by: Jake Petroules <jake.petroules@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>
|
|
|
|
|
|
|
|
| |
This will allow us to build without a profile.
Change-Id: Ie1bfed8590c876342668fc359b0bd49e35a3a0d2
Reviewed-by: Jake Petroules <jake.petroules@qt.io>
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
|
|
|
|
|
|
|
|
| |
Preparation for allowing to build without a profile.
Change-Id: I959148d1f8b19c2e35e649aac55c5a1165cb4a21
Reviewed-by: Jake Petroules <jake.petroules@qt.io>
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Now that we correctly add -rpath-link to the linker command line we want
errors regarding missing symbols to be reported. This patch removes the
--undefined-symbols=ignore-in-shared-libs argument that was added in
commit d9127c78.
Since ld's man page claims that report-error is the default, do not pass
an --undefined-symbols=XXX argument. On Darwin the behavior is not
changed.
Interestingly, passing --undefined-symbols=report-all on FreeBSD will
result in the weird linker errors mentioned in commit d9127c78.
The libc on FreeBSD refers to symbols that only occur in applications,
such as "__progname" and "environ". Thus, no dynamic library can be
linked with "report-all". The ld documentation is not correct in claiming
that this option is the default; the linker clearly does some additional
magic, like blacklisting some symbols or whatever.
Change-Id: I330b8ab7dd9fbf777946992914239cce5a43fd8d
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Traverse the dependency graph and collect library dependencies top-down.
Do not "push" library information "upwards" when building a library.
For gcc, differentiate between "public" and "private" library
dependencies. Public library dependencies are added to the command line
with -l. Private library dependencies are transitive shared object
dependencies of shared objects. Those are added with -rpath-link.
Change-Id: I4c0015910b746fb2d996fc9cf3074050512f02d5
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
|
|
|
|
|
|
|
|
| |
Clang requires the system component of the target triple to have a
specific version number suffix for this platform.
Change-Id: I9e02060aec0ea3f7002cc0a86fe75ed0bc265572
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
| |
This reduces unnecessary implicit dependencies on the output of linker
rules being root artifacts.
It also makes anything that depends on the Bundle module a bundle by
default, now including static libraries. This is a slight behavior
change.
Change-Id: I1ee8d17e29c36ef54f9ff7eb2ad27e3923cbd8b2
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
|
|
|
|
|
|
|
|
| |
The code this comment was for is gone.
Change-Id: Id32f65ebed025e0586e31fe2fe61d7ac74ffb13e
Reviewed-by: Jake Petroules <jake.petroules@qt.io>
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
|
|
|
|
|
|
|
|
| |
This function can be used on objects where the property moduleName is
not set, e.g. artifacts. It will be used in a subsequent commit.
Change-Id: I4c3fdba2f329d010306a1577f7c6e42155b3ddd5
Reviewed-by: Jake Petroules <jake.petroules@qt.io>
|
|
|
|
|
|
|
|
| |
This fixes a regression introduced in e9fb1cc which broke all bundle
products on Apple platforms.
Change-Id: Ice17bb1d6d6b535d8c654ae6c717f32d9b2ea41e
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
|
|
|
|
|
|
|
| |
Reduces the overhead when querying for related packages.
Change-Id: I217942447740987e6890b25fe48ddf7336debacd
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
|
|
|
|
|
|
|
| |
In addition to include paths, libraries etc.
Change-Id: I24bc5c7db5ba2016b6c1d323ba7687e083ff8ea6
Reviewed-by: Jake Petroules <jake.petroules@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
These tools are known to produce sources that trigger compiler warnings,
so switch warnings off by default.
[ChangeLog] lex_yacc module: Introduced property
enableCompilerWarnings.
Task-number: QBS-1104
Change-Id: If13535dde5a580cd0cec215da22b8b8d22d7105b
Reviewed-by: Leena Miettinen <riitta-leena.miettinen@qt.io>
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
|
|
|
|
|
|
|
| |
Turning off MSVC compiler optimization never worked.
Change-Id: If4e339e28ed66863797f97f741054e520a3af460
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
|
|
|
|
|
| |
Change-Id: I12170fe79d560b4312a29efde0e5a140dfb95aad
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
|
|\
| |
| |
| | |
Change-Id: Iad9c533e769700b3ec2b6caed898301e14345607
|
| |
| |
| |
| |
| | |
Change-Id: Ib25d942da9ba019ceb5b7a64e1fd703d6f4b9baa
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>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
This is more in line with mainstream JavaScript (especially node.js)
which uses the CommonJS/RequireJS scheme for loading external modules.
[ChangeLog] The loadFile and loadExtension functions are deprecated in
favor of the new require function, which accepts arguments of either
form accepted by the deprecated functions.
Change-Id: Icc00aa3eb7c136a5be787f28ef38435e4ce261bb
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
This allows building for a specific Android architecture profile to work
correctly, as otherwise Qbs will try to find an architecture specific
profile that will likely not exist on macOS unless building for x86_64.
Change-Id: Ib26278356caf0c644e47ab91a2cd1a9513035080
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
We only set a default list of architectures to compile for, if the
current profile does not have a qbs.architecture property set (as should
be the case for a top-level Android profile). Otherwise, the
architectures list is set to undefined, which allows the Product to use
the default architecture set in the profile.
This allows products which do not touch the architectures property to
work in Qt Creator out of the box by default, until such time as
Qt Creator adds support for multi-arch Android building.
Change-Id: Iaaab5e10b025aa1504e9ce9dbe28d41f7148bfb0
Reviewed-by: Christian Kandeler <christian.kandeler@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>
|