While previous SDKs used the form "CE_SDK (CE_ARCH)" in their
configuration/platform names, this is not true fo the Toradex SDK.
Inside Visual Studio the platform is only called "Toradex_CE800"
instead of "Toradex_CE800 (ARMV7)".
In order not to break other SDKs CE_PLATFORMNAME is introduced and
used in the wince80colibri-armv7-msvc2012 mkspec. If the variable
is set qmake uses it as the platform name in its vcproj generator.
Change-Id: Icb501bf6446a9f617745a0d2c7a80b240680b043
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
Reviewed-by: Andreas Holzammer <andreas.holzammer@kdab.com>
so far, each module had to do it in its .qmake.conf. by now, all modules
have been adjusted to the expected structure, so we can enable it
centrally.
Change-Id: I16b4e7581e51bfc54e71d2f7f852858ae0b47281
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
Other popular specs have this as well.
Change-Id: I44245f37857d476b9ee53ecad021261b94214b2f
Reviewed-by: Johan Helsing <johan.helsing@qt.io>
Reviewed-by: Louai Al-Khanji <louai.al-khanji@qt.io>
Pass -xplatform macx-tvos-clang to configure to build.
Builds device and simulator by default.
Added ‘uikit’ platform with the common setup.
Also added QT_PLATFORM_UIKIT define (undocumented).
qmake config defines tvos (but not ios).
tvOS is 64bits only (QT_ARCH is arm64) and requires bitcode to be
embedded in the binary. A new ‘bitcode’ configuration was added.
For ReleaseDevice builds (which get archived and push to the store),
bitcode is actually embedded (-fembed-bitcode passed to clang). For all
other configurations, only using bitcode markers to keep file size
down (-fembed-bitcode-marker).
Build disables Widgets in qtbase, and qtscript (unsupported,
would require fixes to JavaScriptCore source code).
Qpa same as on iOS but disables device orientation, status bar, clipboard,
menus, dialogs which are not supported on tvOS.
Change-Id: I645804fd933be0befddeeb43095a74d2c178b2ba
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@theqtcompany.com>
don't pretend that these two flags can be set separately - the
configures set them in tandem.
Change-Id: Ib0beae0152de09026d4627fd3ae0feabd9ce1b81
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
When compiling on Windows to for example Android, we may be using the unix
generator, but the make command may be mingw32-make.
Task-number: QTBUG-53038
Change-Id: If8d1e1bea733cf1b4ed837c423a34ecfb3cafd1f
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
We don't know why it works, but we've been told that it fixes
some builds and we have no reason to think it will break others.
Task-number: QTBUG-52998
Change-Id: Iacaa1fb3c49e4d7aafd4167e591ff3724489872e
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
our zlib header includes qglobal.h, so we need the qtcore include dirs,
and qtcore is also where the actual code is compiled into.
Change-Id: I09f530a1b4e6160438215a6d7223c0771ce94f05
Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
Right now there are no iMX7 SOCs available with OpenGL capable GPUs
so the mkspec is very basic.
Change-Id: Ia5c83eea72c4d436c774b2955ccd71f2256bfd6b
Reviewed-by: Laszlo Agocs <laszlo.agocs@theqtcompany.com>
- moved prf files to shared location (uikit, added to QMAKE_PLATFORM)
- prepare some formatting (unconditional blocks mostly) to add conditions later
- make device detection script more generic, passing filter strings
as a parameter and returning non-os specific variables
Change-Id: I61f2b77093304ff985bec9da04fda57ff296b16b
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@theqtcompany.com>
this makes it fully consistent with INSTALLS.
note that this also removes the file name from the target path when
copying files, also for consistency.
Change-Id: I69042c9aa1e2cc81f8ff982343ba25688a04abfd
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
- QMAKE_FILE_IN_EXT as an alias for QMAKE_FILE_EXT, for consistency with
QMAKE_FILE_IN_BASE
- QMAKE_FILE_IN_NAME to make pairing _EXT/_BASE to get a full name
unnecessary (finally ...), and make use of it
- QMAKE_FILE_OUT_PATH, because i'll need it
Change-Id: I3d91ddb84f9cce52a665d562da11d165c92550c8
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
newer versions of qt creator understand QMAKE_EXTRA_COMPILERS and
INSTALLS, so there is no need to list the files twice.
Change-Id: Iccf3cc3248daf3422b8c366c2eb2d2f46c5f08d1
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
the host compiler's version is not determined, so we cannot make any
assumptions about its capabilities.
Task-number: QTBUG-53017
Change-Id: I939fd7402b5daac73f2195b9d8763b9008bc7ea4
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Rolf Eike Beer <eb@emlix.com>
Under Windows, the default paths are not correctly set, hence it's
necessary to explicitly set this.
Change-Id: I9779485115a93bdaf6eb6be87293ca921746bae7
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
Reviewed-by: Volker Krause <volker.krause@kdab.com>
Reviewed-by: Laszlo Agocs <laszlo.agocs@theqtcompany.com>
this adds file_copies.prf, which understands the variable COPIES, which
works analogously to INSTALLS.
i've been holding this off for a long time, as it is not without
caveats. however, similar hacks are proliferating all over the code
base, so it's time we formalized it.
in fact, it's the easiest way to fix some nasty shadow build problems,
which is why i'm adding this on the stable branch.
Task-number: QTBUG-52256
Change-Id: Icbe3b9fbb79c952546aad2d467a438d3a69d749f
Reviewed-by: Liang Qi <liang.qi@qt.io>
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
Use non-os specific target names in Makefiles (device as opposed to
iphoneos, simulator as opposed to iphonesimulator)
Change-Id: Ic8441c09a0e9a254e43f31b678025f16e9a1c440
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@theqtcompany.com>
Qt Creator uses e.g. CONFIG+=iphoneos to make the default build target
be device. Now that the exclusive build is named simulator_and_device
to support e.g. tvOS, we need to handle the old CONFIG names for
backwards compatibility.
Task-number: QTBUG-52970
Change-Id: I0f864bebf11e657eb4225a182753037205f450b8
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
To allow reusing the logic which detects the appropriate
Android SDK version to use for building the Java code,
this is now separated into its own .prf file. This is
required by Qt Purchasing to avoid duplicating the logic
there.
Change-Id: Ief5f5e70dab79751ef9e5a9c4a019bfda686cd09
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
This makes the -separate-debug-info configure optional functional, which
generates dSYM debug info bundles for Qt libraries on Apple platforms.
Task-number: QTBUG-37952
Done-with: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
Change-Id: Ia247674740bf450130a15db926df07fa9007e2ca
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
it doesn't appear to be referenced in any way, either.
Change-Id: Ifd30b435e3e628cd5e48ae24e9aef01c662d6d61
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
Incidentally, this introduces QMAKE_RESOLVED_BUNDLE, which can be used
to determine the path of the bundle wrapper itself as well as the
executable target.
This is necessary for a subsequent patch adding support for
-separate-debug-info on Apple platforms.
Change-Id: Ia11430026b8e3f171e5db6677b190b8356832805
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
To make custom builds of Qt possible, we no longer require
the minimum SDK platform to be present on the system.
Instead we will look for any version higher than the
minimum requirement if the minimum is not available.
If the minimum required platform is available, then it
will still be preferred.
Change-Id: I3e804af89aba36e27a7da1e46a25c0c5798aeaf2
Reviewed-by: BogDan Vatra <bogdan@kdab.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
We should really start using -L=/foo and -I=/foo inside of sysroots,
this test was preventing us from doing so (while arguably buying us
nothing).
Change-Id: If6e67631c585493871231e5d8a9354fa72e07343
Reviewed-by: Laszlo Agocs <laszlo.agocs@theqtcompany.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
this flag specifies that the plugin does not track a qt module. this is
entirely unrelated to whether the plugin should be versioned.
amends f54a3d783.
Change-Id: Ibd3e9bedf488dc58e6354ccf7dd33d974e5f52c2
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
According to the Qt 5.6.0 change log, OS X 10.7 is to be REMOVED as a
supported platform in Qt 5.7.
Change-Id: I53313fd34d42757dd35a28cd227fc0dda3389932
Reviewed-by: Morten Johan Sørvig <morten.sorvig@theqtcompany.com>
So far no capabilities (but internetClient for Windows 10) were added by
default, which forced developers to always manually edit the
WINRT_MANIFEST.capabilities(_device) property.
This allowed to leave out non-required capabilities and keep the created
manifest clean, examples being microphone for multimedia.
However, this also breaks first user experience as deeper knowledge
about this topic is required. Furthermore this is inconsistent with
other platforms like Android, where all capabilities are set by default
and developers need to edit the manifest manually in any case.
With this change, modules can define the capability set to enable all
features in the module. If developers want to disable some again, they
need to adapt the generated manifest. From our experience this needs to
be done in any case, latest at publishing stage when the store
manipulates the manifest.
Task-number: QTBUG-38802
Change-Id: I6d522268ee0afbfa00a30dbdd5e6ec9f415bebf3
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
Cleaning out the workarounds for the discontinued "Embedded Android"
platform of Boot2Qt.
Change-Id: I0ff9d770e82a43457fb7e5da0428f4597ead4038
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@theqtcompany.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
Describe the platforms better because right now the only difference
is the "pro" tag which is easy to miss.
Change-Id: Ia3e31ed97799bf7f8b76ee3d0bb95c7ded7692db
Reviewed-by: Andreas Holzammer <andreas.holzammer@kdab.com>
The platform header defines geteuid(), which is necessary for the SQLite
library. The common platform header is also modified to handle being
included from C, and resolves a typo on the way.
Change-Id: I8ace8a11ceac0f541b9c9b0d8112609579224884
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Using Visual Studio a user very seldom wants to disable the automatic
invocation of windeployqt. Hence switch from opt-in behavior to opt-out.
This also fixes first user experience to invoke qmake –tp vc and then
hit run on examples.
[ChangeLog][Platform Specific Changes][qmake] qmake-generated Visual
Studio projects now automatically invoke windeployqt by default.
Task-number: QTBUG-52008
Change-Id: Iee1607269c38c7f6c726f554978ac05477bebe5e
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
The plugin builds as a static plugin.
It is based on the Linuxfb plugin.
It uses the INTEGRITY FB API for framebuffer for display, and HID API
for input (mouse, keyboard, touch).
Because this is the only supported plugin and requires to be included
as a static plugin, automatically add the platform to any application
through qmake.conf.
Change-Id: Ic228afb59cb39dd02c2d538de46caf6e6ea7d153
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
Reviewed-by: Andy Nichols <andy.nichols@theqtcompany.com>
Adapt the mkspec which was forgotten in change
b0ec05f27b.
Task-number: QTBUG-48431
Task-number: QTBUG-51686
Change-Id: Ie95e650de8b7a7027979ec637fb77c7f0357a598
Reviewed-by: Oliver Wolff <oliver.wolff@theqtcompany.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
Targets (xplatform) include integrity-armv7 and integrity-x86.
[ChangeLog][Platform Specific Changes] Added support for INTEGRITY RTOS.
Change-Id: If7827791e0a977ff198cb99e9dcc684a010bbb81
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
it's likely that these will be wrong, and the bootstrapped tools usually
don't need them anyway. should they turn out necessary after all, we
need to add -H* variants of the flags.
Change-Id: I15c54c5e25d20ebd474073a530f00254842f515d
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
it is important that the flags coming from the current qt build appear
first, as otherwise a pre-existing qt installation may interfere with
the build.
the windows configure does not have any of this magic to start with.
Task-number: QTBUG-6351
Change-Id: Iacc1d9b5aa9eed9a5f0513baef9f6c6ffcef0735
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
unlike speculated in 2fe363514, this is not a workaround at all: it
causes that libraries' public link interfaces (LIBS) are exported in the
first place. unlike with staticlib, this does not export LIBS_PRIVATE,
so it wouldn't even be a particularly effective workaround for rpath
brokenness anyway.
the problem was pretty well hidden by the qt module system, which at the
level of libraries is pretty redundant with the .prl file handling,
which shows just how stupid the whole "design" is.
unlike before, we now enable explicitlib for all libraries, not just qt
modules - we enable create_prl for all of them as well, after all.
an immediate effect of this change is that it fixes linking on RaspPI:
the qtcore headers make the user code require linking libatomic, so we
must add it to our public link interface.
Task-number: QTBUG-51621
Change-Id: I5742c88694db8e8a9b79d17222dc6df2b38e5ab2
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@theqtcompany.com>
This test was the old way of checking whether to enable
c++11 functionality. That is now anyway required, so there
is no need for this test anymore.
Change-Id: I083e85a4698cac6bd9b573525c7b977f63e14113
Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
This change partially reverts 1bfc7f68 about QT_HAS_BUILTIN define
and undef in src/corelib/tools/qsimd_p.h.
This change is also squashed with "Fall back to c++11 standard
compiler flag for host builds" which is done by Peter Seiderer.
Conflicts:
mkspecs/features/default_post.prf
src/3rdparty/sqlite/0001-Fixing-the-SQLite3-build-for-WEC2013-again.patch
src/3rdparty/sqlite/sqlite3.c
src/corelib/tools/qsimd_p.h
src/gui/kernel/qevent.cpp
src/gui/kernel/qwindowsysteminterface.cpp
src/gui/kernel/qwindowsysteminterface_p.h
src/plugins/bearer/blackberry/blackberry.pro
src/plugins/platforms/cocoa/qcocoasystemsettings.mm
src/plugins/platformthemes/gtk2/gtk2.pro
src/plugins/styles/bb10style/bb10style.pro
src/sql/drivers/sqlite2/qsql_sqlite2.cpp
tools/configure/configureapp.cpp
Task-number: QTBUG-51644
Done-with: Peter Seiderer <ps.report@gmx.net>
Change-Id: I6100d6ace31b2e8d41a95f0b5d5ebf8f1fd88b44
The platform has been removed in Qt 5.7.
Change-Id: Ie768b5ffbe60270c27b4a670dcf580ea361cb361
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
Despite the very similar name and hardware, the software stack is
completely different compared to the Jetson TK1 Pro we already have
a mkspec for.
Change-Id: I45353ece195035e961ff47df55d6361569aabb04
Reviewed-by: Laszlo Agocs <laszlo.agocs@theqtcompany.com>
There is no test for c++ standard support for the host build
(only for the target compiler/build) which leads to trouble
in some cross compiling environments (old host compiler, new
cross compiler):
g++: error: unrecognized command line option ‘-std=c++1z’
So disable c++ standard compiler flags unconditionally for host builds.
Task-number: QTBUG-51644
Change-Id: Ifb3042e125fe199a7e081740d1171d26ccacf0c5
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
this is necessary for:
- generating -rpath-link arguments when link_prl is not used. link_prl
is enabled by default, so this has no effect on most projects.
- deployment purposes, which is hypothetical as of now.
Change-Id: I9e629f3eef93c4edf12efc016ecc27dbe2186d61
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
This header defines "interface" which will break compilation of dbus.
Change-Id: I16fa35f822adca14304aa827b047358409d4a150
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
Reviewed-by: Oliver Wolff <oliver.wolff@theqtcompany.com>
Testcases and benchmarks are rather different entities. You won't usually want
to run benchmarks in the same environment you are wanting to run tests in,
so this feature allows to differentiate between the two.
We also add a "benchmark" make target (similar to check), which runs all
configured benchmarks.
Change-Id: I33759ce44c34e42a6a3a88f34e7b9c4372380721
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
turns out we need forwarding .pris in this case: without them,
QT_MODULE_INCLUDE_BASE points into the build dir, so we fail to find the
pre-generated headers.
an alternative would be writing primary module .pris which already take
that into account, but that would just add even more arcane code paths.
Task-number: QTBUG-51521
Change-Id: I59f2a0d3f2095c9dfa0a8d1cabfc007a30bd2d23
Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
`ar' tool from latest binutils shows warning:
ar error: `u' modifier ignored since `D' is the default (see `U')
Warning message includes word "error" so QtCreator processes it as
error in UI.
`ar' command-line option `u' might be dropped safely because it is
unnecessary. Option `c' is added to suppress extra `ar' warnings.
Other build systems are also affected. For example, automake:
https://bugzilla.redhat.com/1155273
Change-Id: Ia378b720503d93b0c0c12ae7a5f38f4d7c32eee5
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
This solves an issue where header only modules in a simulator build with
frameworks on Apple platforms would result in a module like
"QtZlib_iphonesimulator.framework" being created. This patch removes
the "_iphonesimulator" infix from the name.
Change-Id: I60e818042d776cc6ac430413ccea1be1a1a1e48b
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
The win32-g++ mkspec is not based on gcc-base, so
QMAKE_CFLAGS_RELEASE_WITH_DEBUGINFO is not inherited. Therefore,
-release -force-debug-info would build with neither -O2 nor -g.
Change-Id: I4e97cb08f577062dd342fb3e91c02adfd636a310
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
instead of unsetting the flag later on, don't set it in the first place.
Change-Id: Id448500b02b5c3e1dc7c332cc178a84c7fd2cfdc
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
this has multiple consequences:
- we do sane DESTDIR replacement for debug_and_release builds, fixing
QTBUG-47313
- we don't create debug/release subdirectories, fixing QTBUG-47639. this
only makes sense given the complementary call of $$qt5LibraryTarget()
- we patch up the .prl files upon installation
Task-number: QTBUG-47313
Task-number: QTBUG-47639
Change-Id: Id409bbd26781a773409b94835ab6b97e71569322
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
This also reverts commit 018e670a26.
The change was introduced in 5.6. After the refactoring, 14960f52,
in 5.7 branch and a merge, it is not needed any more.
Conflicts:
.qmake.conf
src/corelib/io/qstandardpaths_mac.mm
src/corelib/tools/qsharedpointer_impl.h
tests/auto/widgets/itemviews/qlistview/tst_qlistview.cpp
Change-Id: If4fdff0ebf2b9b5df9f9db93ea0022d5ee3da2a4
This fixes a regression introduced in
9daeb6fe9d.
Change-Id: I3100b307bb65c90bdc023be4993afaea666e409d
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
This amends ade8e0fc9b, which missed this
file.
Task-number: QTBUG-32896
Change-Id: I39ef0969c0224349eda4ed82cae3e3b7753fe29f
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@theqtcompany.com>
This reverts commit c4ecb81d6d.
Hard-coding the library suffix into the linker flags was wrong. The
library suffix is handled at runtime with DYLD_IMAGE_SUFFIX, set
as part of the Xcode scheme or during debugging in .lldbinit.
Change-Id: I11907b2755f7f187fb6fa18202813fde9ada4354
Reviewed-by: Jake Petroules <jake.petroules@theqtcompany.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@theqtcompany.com>
Preparation for Apple tvOS support, which shares a lot with the iOS
platform.
Change-Id: I543d936b9973a60139889da2a3d4948914e9c2b2
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
This adds the functionality to build Qt with clang under Windows against
the Microsoft Visual Studio 2015 runtime.
In order to replicate this, a Clang 3.8 build with Visual Studio 2015
Update 1 is needed.
Adds compiler detection to Qt to distinguish correctly the clang compiler
and Windows with Visual Studio.
Clang has some built-in numeric functions, there is no need to use the
Microsoft versions, which also conflict here.
Task-number: QTBUG-50804
Change-Id: Ia4b267a298310ac7d73edf473b12792991249d8a
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
This is necessary for combined device and simulator builds on Apple
platforms (iOS, tvOS, watchOS) to link properly.
Change-Id: I21e70806643b10f429945d3020995dc94fa5c612
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@theqtcompany.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
Modern FreeBSD doesn't come with GCC by default anymore and doesn't even
provide the "gcc" or "g++" falback that OS X does. So there's no point
in keeping the freebsd-clang mkspec in unsupported/ since it's the only
one that works, or keeping the freebsd-g++* ones outside, as they won't
compile.
I'm not removing the GCC mkspecs because you can still install GCC from
the ports tree.
[ChangeLog][FreeBSD] The "freebsd-clang" mkspec is no longer in the
unsupported/ subdir. If you have scripts you use to build Qt, you'll need to
update them to say -platform freebsd-clang or remove the -platform argument.
Change-Id: I7a9e11d7b64a4cc78e24ffff142dfc11d3aabb1e
Reviewed-by: Raphael Kubo da Costa <rakuco@FreeBSD.org>
Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
The feature is enabled by CONFIG += unsupported/objc_namespace,
but can be easily integrated into other build systems such as
CMake or native Xcode by modifying the LD and LDFLAGS equivalent
for each build system.
This is a less resource-intensive alternative to using multiple
Qt builds with different -qtnamespace settings.
Note: The feature is not supported in any way, and should be
used with care.
Change-Id: Ibb8ba1159db36efd7106c117cc2210c7e2e24784
Reviewed-by: Martin Smith <martin.smith@theqtcompany.com>
Reviewed-by: Morten Johan Sørvig <morten.sorvig@theqtcompany.com>
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@theqtcompany.com>
Which is basically same as the Jetson K1 Pro, with SDK and compiler
options adjusted.
Change-Id: Ic0aa8144aad12e832ae440212f6a06f52668415d
Reviewed-by: Louai Al-Khanji <louai.al-khanji@theqtcompany.com>
10240 describes the first official non-preview Windows 10 SDK. 10586 was
the SDK for the first November update.
Change-Id: Ieb61b944295946eab594b3c7bf234155a67b752e
Reviewed-by: Oliver Wolff <oliver.wolff@theqtcompany.com>
This allows users to add mobile specific features. Also it implicitly
enables support for continuum on Windows 10 Mobile.
Change-Id: I965123722f46df6e84fd279c3bfce478c1172632
Reviewed-by: Oliver Wolff <oliver.wolff@theqtcompany.com>
Not that we require it, but since The Qt Company did it for all files
they have copyright, even if they haven't touched the file in years
(especially not in 2016), I'm doing the same.
Change-Id: I7a9e11d7b64a4cc78e24ffff142b4c9d53039846
Reviewed-by: Lars Knoll <lars.knoll@theqtcompany.com>
Commit 6e6f27b6 made it possible to set the PKG_CONFIG variable using
CROSS_COMPILE as a prefix. The problem with that solution is that it makes
pkgConfigExecutable() skip the environment setup for pkg-config as well,
as it expects the pre-set command to be self-contained - which it isn't.
To avoid this problem we need to store the pkg-config define in the
device spec in a separate variable.
Change-Id: Id8ae7fb03d9253be55840e23fe73b30815ee86c3
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
From Qt 5.7 -> LGPL v2.1 isn't an option anymore, see
http://blog.qt.io/blog/2016/01/13/new-agreement-with-the-kde-free-qt-foundation/
Updated license headers to use new LGPL header instead of LGPL21 one
(in those files which will be under LGPL v3)
Change-Id: I046ec3e47b1876cd7b4b0353a576b352e3a946d9
Reviewed-by: Lars Knoll <lars.knoll@theqtcompany.com>
most module project files define two logical modules: a public one and
the corresponding private one. these are really separate modules as far
as qmake is concerned (even though the private one contains just
headers), and consequently have separate dependencies - QT and
QT_FOR_PRIVATE.
as public modules cannot depend on private ones, all private
dependencies would have to go to QT_FOR_PRIVATE, and a dependency on the
respective public module would have to be added to QT. this would be a
bit tedious, so we have a convenience feature which allows putting
private dependencies into QT, but automatically "downgrades" them to
their public counterpart when creating the public module's .pri file.
however, we failed to put verbatim versions of these private
dependencies into the private modules, which meant that these
dependencies were not pulled in transitively by the private modules'
users.
note that this entirely unrelated to QT_PRIVATE - this one defines the
private (non-propagated) dependencies of the module's implementation,
i.e., the libraries (and headers) that are not part of the link
interface. there is no QT_PRIVATE_FOR_PRIVATE, because there is
obviously no point in assigning the dependencies to a particular
logical submodule when neither one inherits them as far as the qt
module system is concerned.
Change-Id: Ib056b47dde3341ef9a52ffff13efaf8ef8e6817b
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
save the actual library/framework name and framework paths in the .pri
file instead of computing them again at use time in qt.prf.
qt_no_framework_direct_includes inherently requires a use-time decision,
so this ugliness remains.
Change-Id: I09b2775e7d8e1d52e3af0d663e1babde10ae4814
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
Without this, any test executable requiring a plugin path from
the environment's QT_PLUGIN_PATH will fail to run since the path is
overwritten when generating the 'make check' command, for example:
QT_PLUGIN_PATH=/path/to/qt/plugins \
LD_LIBRARY_PATH=/path/to/qt/lib${LD_LIBRARY_PATH:+:$LD_LIBRARY_PATH} \
./test_foo
A prepend config option is used for *PATH to preserve the envvar
value, so use the same option for QT_PLUGIN_PATH. The command above
then becomes:
QT_PLUGIN_PATH=/path/to/qt/plugins${QT_PLUGIN_PATH:+:$QT_PLUGIN_PATH} \
LD_LIBRARY_PATH=/path/to/qt/lib${LD_LIBRARY_PATH:+:$LD_LIBRARY_PATH} \
./test_foo
Change-Id: I69b43327974915eae52f299fc4001effe93a491a
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
one reason to do that is some users' persistence in destroying their
non-prefix builds by trying an installation.
another reason is the fact that qt.pro's relative_qt_rpath is triggered
by the presence of an install rule for the target, which is of course
not helpful when the install dir is bogus.
Task-number: QTBUG-48406
Change-Id: I75f3940be79fcb5b86e34b975b789692423c92cb
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
the main objective was to fix the bootstrap modules in framework builds.
bootstrapped modules which "borrow" headers from "proper" modules can
specify this in a clean way now.
a side effect of this is that the bootstrap-dbus module now has its own
syncqt call.
most includepath-related setup from qt_module_pris.prf was moved to
qt_module_headers.prf.
Change-Id: Ie0d8192cfac1a8cdae0ddd0bc0cd8c3092b1e85b
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
It only needs stdin now, instead of stdin plus a separate file containing
a list of file names.
Change-Id: I9f3db030001e47e4a4e5ffff1425b76884cc7ca0
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
qtAddToolEnv() (via qtPrepareTool()) does not write the tool wrapper
scripts during build passes, while qt_docs.prf (which calls it for qdoc
and qhelpgenerator) was loaded only during build passes. the consequence
was that the makefiles tried calling non-existent scripts.
amends 5418d77a1, sort of.
Change-Id: I64ab573495ca339be4c7b5e8c6848b298b6cb605
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
now that we don't create .pc files for private modules any more, the
conditionals cannot be nested.
amends 6c5d227da, partially reverting aa20e7f9d.
Task-number: QTBUG-49763
Change-Id: I2578c83e0c767b6533abdb26bf4e8bcc8c416ef1
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
judging by the history, this was only ever a workaround for poor rpath
handling. we're supposed to be over that.
Change-Id: I85601493a05a76ead999e707a2d2e9a430610981
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
proper prefix builds don't have the redundant .dlls in bin (the copy
step is simply omitted), so this is broken. the change would have to be
done atomically with making DLLDESTDIR sane.
This reverts commit 9b2e98245a.
Task-number: QTBUG-50065
Change-Id: I9ce0a2d1147a1a2d4bd2f22e619d5c737864a637
Reviewed-by: Romain Pokrzywka <romain.pokrzywka@gmail.com>
Reviewed-by: Tim Blechmann <tim@klingt.org>
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@theqtcompany.com>
Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
this is just an optimization/clarification: variables which are known to
be never empty (like PATH) can be extended with less convoluted code.
Change-Id: Ib365bbec8301673ed1c874979b4de19bc983dab1
Reviewed-by: Romain Pokrzywka <romain.pokrzywka@gmail.com>
Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
the primary purpose is making env var prepend mode work for unset
variables on windows. this is achieved by using a conditional and delayed
variable expansion. however, the latter is disabled by default and can
be locally enabled only in batch files. therefore, write wrapper scripts
and substitute them for the actual commands. we do this also on unix,
both for consistency and simply because the commands look much less
confusing.
this change is slightly backwards-incompatible, as invoking
qtAddToolEnv() multiple times on the same command will now make a total
mess. also, invoking it on a command that contains 'make' macro
expansions isn't a good idea, so testcase.prf needed an adjustment. the
function is an undocumented internal, so Nobody Should Care (TM).
this also reverts 80ebedecf9, as it's obsolete now.
Change-Id: I8394b77868b495abcf27b688996ca74c40b80994
Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
That API has been available for WinRT and Windows
Phone for some time now. By using it to get the
machine name and for hostname resolution we can get
rid of some winrt-only code and use qhostinfo_win.cpp
on WinRT and Windows phone as well.
Additionally the required capability was added to
tst_qhostinfo so that this auto test can be run without
any manual editing.
Change-Id: I63fa5521bf8cdb0c919bd5a0100ea977c865622a
Reviewed-by: Maurice Kalinowski <maurice.kalinowski@theqtcompany.com>
CMP0054 changes CMake behavior wrt. interpreting quoted arguments in
if() statements. This change ensures that CMP0054 dev warnings are
never emitted no matter how polluted the environment, e.g. even
if the variable ${5.5.1} is defined and no matter whether CMP0054
is set to OLD, NEW or undefined.
Change-Id: Iee008497b333e2db23fb1adbf8b02252314ffa8a
Reviewed-by: Kevin Funk <kfunk@kde.org>
Reviewed-by: Stephen Kelly <steveire@gmail.com>
Recent versions of Qt have apparently added sufficient numbers of
headers that the command lines used to spawn a custom header-
parsing tool, started overflowing Windows' maximum command-line
length.
This change restructures the mechanism to use a GCC-style command-
line arguments file rather than passing filenames all directly
in the argv[] vector.
Although QNX is the usual ELF target whose cross-build is supported
on Windows, the mechanics introduced in this patch happen to affect
all other ELF Unix systems' builds too.
Change-Id: I5a7383cf9f2ebf9dffde8dbfdcdeca888265e085
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
the variable is later re-used by qtPrepareTool(), so the tools used to
build the tool would get excess variables passed.
Change-Id: Ib1bdd2211b4a8615e2be9ba0310822f373f5efb0
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
qtPrepareTool() does it anyway, so this saves repeated manipulations.
for now, this is just nicer, but soon it will be a requirement.
Change-Id: I5184e0e4597c6d5a4d7dd4cc4d81e7f742a79fc8
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
QFINDTESTDATA is already prepared to find it there.
Change-Id: I467392786ce6bcfbf1bd0b6079f60c9df06834b1
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@theqtcompany.com>
Reviewed-by: Oliver Wolff <oliver.wolff@theqtcompany.com>
Reviewed-by: Maurice Kalinowski <maurice.kalinowski@theqtcompany.com>
A minimal device spec that can be used to build for arm devices.
Change-Id: I4c9949d8cc59ad534fc7617034f6beb40d6a987e
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
If CROSS_COMPILE is set on a Debian multiarch platform, then PKG_CONFIG
should be set the same way as the other cross compilation tools.
Change-Id: Id359a6bbdcbf8a136a0268a82301fc086a2adcfe
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
The qt_poll function calls recv to query whether fds marked by select
as readable should be marked POLLIN or POLLHUP in the pollfd structure.
On many platforms such as QNX this requires extra link-time libraries
which were not previously required by QtCore.
While the qt_poll function is intended as a fallback mechanism only for
those platforms which do not implement poll natively, the function was
compiled unconditionally whenever QT_BUILD_INTERNAL was defined, e.g.
in developer builds.
Additionally the function was included on those systems that define poll
in system headers so that configure determines build-time availability,
but do not define _POSIX_POLL > 0 or indicate POSIX:2008 compliance via
either the _POSIX_VERSION or _XOPEN_VERSION macros. On those systems a
sysconf query for _SC_POLL was performed to determine at runtime whether
to call the system poll or qt_poll.
Both of these cases are in fact counterproductive. In the first case the
sole consumer of the function is a single manual unit test. In the
second, to my knowledge no platform requires the runtime fallback.
Despite that, we were forcing an extra dylib in both cases.
Both cases are fixed by 1) moving the implementation into its own file
for the unit test to include and 2) dropping the dynamic fallback if
configure determines availability of poll at compile-time.
This also reverts commit 1377709711, which
added -lsocket for QtCore on QNX.
Change-Id: I2dd10695c5d4cac81b68d2c2558797f3cdabc153
Reviewed-by: James McDonnell <jmcdonnell@qnx.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
That implies we need to differentiate between a variable set but empty
and an empty variable. GCC, Clang and the Intel compiler accept -msse2
on 64-bit builds without warning (they also accept -mno-sse2), but the
Microsoft compiler does not have that option.
Change-Id: I54233388ba10994996ae3e749fd829085e8fd7b7
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
This should help improve the cleanliness of our source code, including
compliance with the C++ standards. They apply to all of our code except
examples (they don't load qt_common.prf).
Change-Id: Ia0aac2f09e9245339951ffff13c94663c1901766
Reviewed-by: David Faure <david.faure@kdab.com>
no idea why it was limited to linux. the variable is already empty on
platforms which don't support it anyway. also, for plugins, it's
consistently enforced as well.
Change-Id: I117f4988a2e301ca98cdc088188d6f8c44ea0ba5
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
qt5 qmake is perfectly capable of complex expressions on the LHS.
Change-Id: Ibf8c82a4aa1a419895c6012610269e1cc9ca93ab
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
Whenever a qml plugin is made static, the qmldir and other related
files need to be compiled into the resources, so they can be found
in the import path. By using qrc:/qt-project.org/imports, we can
have this taken care of automatically for us via the build system,
leaving us to just ensure that it is initialized in the code.
Task-number: QTBUG-35754
Change-Id: Ifa7e2a66fd78dc6713dd7a8661ea2c155b174d35
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
This is needed to be able to use Qt (with dynamic ANGLE) in a plugin
while the host runs a different version of Qt (and ANGLE).
In addition to changing the LIBEGL_NAME and LIBGLESV2_NAME variables
you also need to update the value of the LIBRARY definition in the
.def files for ANGLE:
qtbase/src/3rdparty/angle/src/libGLESv2/libGLESv2[d?].def
qtbase/src/3rdparty/angle/src/libGLESv2/libEGL[d?].def
Task-number: QTBUG-48431
Change-Id: Idd00d039ba3e20cc0ec7496bee36ed1c90383b0d
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
[ChangeLog][Platform Specific Changes][OS X] Configure with -no-rpath
will now yield Qt dynamic libraries and frameworks with an absolute
install name (based in -libdir).
OS X package managers like Homebrew install Qt in a fixed location. This
change simplifies deployment for such package managers and is consistent
with the default expectation on Apple platforms for libraries with a
fixed location to also have absolute install names.
While a relocatable installation (the default) also works in this
scenario, it requires all software that depends on Qt to be aware of
this and to embed a suitable RPATH into application binaries (which is
not automatic for non-qmake builds). This might not be true for some
select fallback search locations, but as package managers on OS X tend
not to use those, embedding an RPATH becomes practically mandatory. In a
default Homebrew installation, Qt is configured such that the frameworks
end up in /usr/local/Cellar/qt5/<version>/lib and that will be later
symlinked to /usr/local/opt/qt5/lib, both of which are not searched by
the dynamic linker by default.
Task-number: QTBUG-48958
Change-Id: I4395df98771e06a2ce8a293d11dc755bdc50757f
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
Visual Studio version specific changes have been added to msvc-
desktop.conf which is not used in WinRT or Windows Phone related builds.
Hence take a similar approach to gcc and introduce msvc-base to be used
by all configurations for common settings.
For WinRT this will only be applied to msvc2015 and later on to not
introduce any regressions or behavior changes for previous versions.
Change-Id: Ib1a4d539d46d788470c00cb5969fee74a803bd67
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
Reviewed-by: Oliver Wolff <oliver.wolff@theqtcompany.com>
don't install the module .pri file into qtbase even when doing a
non-prefix build.
this has no effect on modules built as part of a top-level build, as
they announce themselves via .qmake.super anyway.
however, modules built separately become unavailable unless QMAKEPATH
or QMAKEMODULES is set. this is deemed not relevant by the original
audience of this feature (the qtwebkit team).
Change-Id: I14c170b2c5dbb99608939aef1a541563d5b755d9
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@theqtcompany.com>
Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
longer term, the redundant .dlls from the libdir will hopefully
disappear. short term, this is a workaround for CI brokenness.
Change-Id: Ia30173355f3aca222d4ca40e7a38c2cf535bbc03
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
The xcodebuild tool only supports the install action for devices, not
for the iOS simulator platform.
Change-Id: I47e8bb7d44962bd4a433a314fa9d315ed3683ca6
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@theqtcompany.com>
The files are automatically generated, so that's where they
belong. This makes a small cosmetic difference when generating
Xcode projects, since then the files will be grouped under
a different folder in the project explorer, separate from user
sources.
Change-Id: Ic2599ccb3008635e76ae467eec80f2b9e5ca838e
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@theqtcompany.com>
The platform is no longer supported or actively maintained, and is
in the way for improvements to the Unix event dispatcher and QProcess
implementations.
Change-Id: I3935488ca12e2139ea5f46068d7665a453e20526
Reviewed-by: Lars Knoll <lars.knoll@theqtcompany.com>
qt_framework and {app,lib}_bundle imply darwin, so there is no point in
testing for it.
Change-Id: I9fe48c26c8e271a5575b17e92df8674d3c3a3204
Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
CONFIG+=qt_framework is actually put into qconfig.pri, so it's always
set in framework builds. things (sometimes) worked only by virtue of the
qt_framework checks being in "else" branches of "static" checks. use
lib_bundle instead, which triggers the actual framework build anyway.
amends b72d1db44.
Change-Id: Ib725c43476d9fb38bad940ce09905d29ff3edfa3
Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
While all apps need to have internetClient as a capability, the option
to provide further capabilities via qmake has been removed in the
template.
Instead we add the required items inside the prf and keep the manifest
template as generic as possible.
Task-number: QTBUG-49504
Change-Id: If26b9da277a5269a57b34e74c146b40b1b64d091
Reviewed-by: Oliver Wolff <oliver.wolff@theqtcompany.com>
Reviewed-by: Andrew Knight <andrew.knight@intopalo.com>
frameworks are currently broken anyway, and we don't create .pc files
for the private part of public modules, so creating them for entirely
private modules is just inconsistent.
Change-Id: I98da8def73d72ac69b9b246687dce6b1fd150f61
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
Reviewed-by: Andy Nichols <andy.nichols@theqtcompany.com>
the projects which use full mode with the named modules have them.
Change-Id: I3b9383d1cc2b43411c25690a5e35e7e84a55aa23
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
Reviewed-by: Andy Nichols <andy.nichols@theqtcompany.com>
the check whether a module depends on itself should be done by the code
which *builds* modules, not which *uses* them.
the check whether a plugin tries to use itself seems kinda pointless in
the first place, so just remove it.
Change-Id: I89b357dae7d7979d131b6824f197e7088047272f
Reviewed-by: Andy Nichols <andy.nichols@theqtcompany.com>
that way other modules can use the headers without hacks.
this required making the base directory for paths in headers.pri
configurable in syncqt.
Change-Id: Id35cfe05bcf4c576d3f2d0d8d09590a5e23d21d3
Reviewed-by: Andy Nichols <andy.nichols@theqtcompany.com>
there is nothing to link with it anyway.
Change-Id: I2e942d24bb39855b3682f3e8d85cb6abca75cb61
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
instead of building host tools always in debug mode, follow the overall
build type, and provide an option to override it.
this supersedes the pre-existing -optimized-qmake option.
however, that option never existed in the windows configure, and this
legacy continues as far as qmake is concerned (msvc builds of qmake are
always somewhat optimized, but not mingw builds).
Change-Id: I42e7ef1a481840699a8dffff13fec2626af19cc6
Reviewed-by: Lars Knoll <lars.knoll@theqtcompany.com>
Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
Between the very latest images linking against kernel32.lib has been
forbidden. This is completely undocumented and only throws a "dependent
dll not found" error.
Instead we should link against OneCore for msvc2015, which can be used
for Windows 10 Desktop and Mobile.
Task-number: QTBUG-49349
Change-Id: I21d32a92dfd41548ca563d3e56c623a0cb297588
Reviewed-by: Oliver Wolff <oliver.wolff@theqtcompany.com>
the statement order was wrong since c23a086e - we can't use
MODULE_DEPENDS before we define it.
but actually use a bigger cannon and partially revert the patch, to
include .depends unconditionally again. the idea is that this should
override a possibly included other .pri file from a previous
build/install. (the same argument would sort of apply to .envvars as
well, but we assume that its presence won't vary between builds.)
Change-Id: I95e9743e367a3d1f45d603d1bb5b31c4875f39a2
Reviewed-by: Giulio Camuffo <giulio.camuffo@jollamobile.com>
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
Reviewed-by: David Schulz <david.schulz@theqtcompany.com>
Raspbian/Debian require a toolchain with the multiarch patches so we
need to add deb-multi-arch to the DISTRO_OPTS variable for pkgconfig to
work correctly. The Raspberry Pi 1 mkspec has this already and can be
used to build Qt for both versions of the Pi, but the Raspberry Pi 2
mkspec is missing this, and would not be usable in its current state for
building for Raspbian/Debian which is the most popular distro for the
Raspberry Pi.
Change-Id: I6a7a08059f9f91da524b5f51e0697115ef684f30
Reviewed-by: Laszlo Agocs <laszlo.agocs@theqtcompany.com>
This separation makes it possible to make a
canadian cross build of Qt on a linux build machine.
The canadian cross build requires an external Qt that
runs on the build system.
Change-Id: Ifd83a4c6376d3299647e74bb349a3452a6f433fc
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
Somehow qmake doesn't add the correct rules for the Android makefiles,
so the build fails when cross-compiling from Windows. The reason for
that is unknown (could be related to that "qt_android_deps" config, but
that isn't used anywhere in qmake or the buildsystem).
This isn't likely to be a problem, since there are no global installs of
Qt on Android.
Change-Id: I1d0f78915b5942aab07cffff140f95ce32324030
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
qgltf is a tool provided by the Qt3D module that enables 3D assets to
be defined in qmake project files, and have them converted to an
efficient binary format at build time. The qmake feature will convert
all 3D assets specified by the QT3D_MODELS variable to the qgltf
format and add the new model asset to the project as a Qt resource
file.
Change-Id: If7250d6f23a06254b1ed0e408057723763aad8c8
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
This way, it's possible to tell which applications and libraries depend
on the Qt private API and of which Qt library. Linux distributions can
use this information to decide which applications need to be recompiled
every time Qt itself is rebuilt.
This is done by scanning all class and struct definitions in the private
headers (we've already got the list from syncqt). I opted to add a new
script instead of modifying syncqt because then this can run in parallel
with the rest of the compilation, as opposed to during qmake
time. Another advantage is that it catches modifications to the headers
in between qmake executions.
Since this is already Unix specific, it should be no problem to use Perl.
This solution is limited to use of non-inline symbols of classes
declared in private headers. It will not catch free variables (such as
qsimd_p.h's qt_cpu_features), use of inlined functions or just plain use
of a class/struct for accessing its data members. However, this is
already better than nothing and should help Linux distributions quite a
lot. And there's no way to catch the latter issue anyway.
Change-Id: I049a653beeb5454c9539ffff13e3fff36400ebbd
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
... and make use of it in qt.prf.
[ChangeLog][qmake][Unix] Added support for relative paths in
QMAKE_RPATHDIR.
Note that this technically breaks backwards compatibility, as relative
paths were previously silently resolved against $$_PRO_FILE_PWD_. This
was not documented and seems rather useless, so i'm not worried.
Change-Id: I855042a8962ab34ad4617899a5b9825af0087f8a
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
Reviewed-by: Jake Petroules <jake.petroules@theqtcompany.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
The only reason I had used them in the first place was because C
preprocessor macros cannot call themselves recursively. But the magic
was too magic and caused issues with some builds, so let's choose the
safer option.
Anyway, this solution now works for all ELF architectures, independent
of the processor, whereas previously it was restricted to x86 and Linux/
FreeBSD. However, this does not apply to the assembly in
qversiontagging.h.
Change-Id: I42e7ef1a481840699a8dffff1404f032fc5cacb8
Reviewed-by: Lars Knoll <lars.knoll@theqtcompany.com>
If that section is there but empty, the manifest cannot be loaded using
the App Manifest Designer in Visual Studio.
Task-number: QTBUG-48648
Change-Id: I529eb2f2a690bececcf5c385b8f96e84ece363d6
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
Reviewed-by: Maurice Kalinowski <maurice.kalinowski@theqtcompany.com>
WINAPI_FAMILY_APP is deprecated, so use WINAPI_FAMILY_PC_APP instead. Also,
open up the phone partition for use on MSVC2015.
Change-Id: I7476d71c31395b2914f5a1439e8088341976bf2f
Reviewed-by: Maurice Kalinowski <maurice.kalinowski@theqtcompany.com>
The former is meaningless nowadays.
Change-Id: I27c7eb0e924f3f2e9b73185f1b198909aeb6b031
Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
We no longer support any compilers that don't know the actual version
number of the standard.
Change-Id: Ib056b47dde3341ef9a52ffff13ef154791dd0d22
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
[ChangeLog][Important Behavior Changes] qmake now enables C++11 support
by default if the compiler is known to support it (unless the compiler
defaults to C++14 or a later edition). To disable this, add to your .pro
file: CONFIG -= c++11. Note that Qt 5.7 will require C++11 support, so
it is a good idea to ensure your code works with that compiler
setting. (Note: it is not possible to disable C++11 support with
Microsoft Visual Studio)
Change-Id: Ib056b47dde3341ef9a52ffff13ef13ee2cf888eb
Reviewed-by: Kai Koehne <kai.koehne@theqtcompany.com>
Reviewed-by: Lars Knoll <lars.knoll@theqtcompany.com>
src/tools/bootstrap was already compiled with QT_USE_STRINGBUILDER,
by way of load(qt_module), but the actual apps weren't.
Some apps become smaller, some larger; all (presumably) faster.
Change-Id: Idc8662e62ec14b27e730de9842bec295a1b5566e
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
For now we pick one crtc and find the corresponding layer. If this is
not desired, set QT_QPA_EGLFS_LAYER_INDEX to override the layer to be
used. Enable qt.qpa.eglfs.kms to get logs about the available layers.
Change-Id: I762783f960739e32966c8cde17d8f55fbe40091f
Done-with: Louai Al-Khanji <louai.al-khanji@theqtcompany.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
Reviewed-by: Louai Al-Khanji <louai.al-khanji@theqtcompany.com>
Instead of lumping both Objective-C (.m) and Objective-C++ (.mm) sources
into the same pile, passing them on to the same compiler as for C++ (CXX),
with the C++ flags (CXXFLAGS), we follow Apple's lead and treat them as
variants of the C and C++ languages separately, so that Objective-C
sources are built with CC and with CFLAGS, and Objective-C++ sources
with CXX, and CXXFLAGS.
This lets us remove a lot of duplicated flags and definitions from the
QMAKE_OBJECTIVE_CFLAGS variable, which in 99% of the cases just matched
the C++ equivalent. The remaining Objective-C/C++ flags are added to
CFLAGS/CXXFLAGS, as the compiler will just ignore them when running in
C/C++ mode. This matches Xcode, which also doesn't have a separate build
setting for Objective-C/C++ flags.
The Makefile qmake generator has been rewritten to support Objective-C/C++
fully, by not assuming that we're just iterating over the C and C++
extensions when dealing with compilation rules, precompiled headers, etc.
There's some duplicated logic in this code, as inherent by qmake's already
duplicated code paths, but this can be cleaned up when C++11 support is
mandatory and we can use lambda functions.
Task-number: QTBUG-36575
Change-Id: I4f06576d5f49e939333a2e03d965da54119e5e31
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@theqtcompany.com>
these were necessary to suppress the appending of the qt major version
to the library name when reading .prl files. this has outlived its
usefulness, as the .prl files now contain the full library name.
additionally, the overrides would break the use of qt if the .prl files
were not shipped, as zero lost its special meaning as "none".
Change-Id: I9f028c17fc0428cb546a4a26ee209febff32da5e
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
as a side effect, this makes the extensions used for searching libraries
configurable under windows (QMAKE_LIB_EXTENSIONS).
Change-Id: I3e64304fcadbfe74d601b50a70a73180c894503e
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
This ensures that we pick up the debug version of the Qt libraries in
a debug and release build.
Change-Id: I7fc1ed72a6f01b138608413954d4b9e45b7782a0
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@theqtcompany.com>
make sure that all specs define QMAKE_{PREFIX,EXTENSION}_{SH,STATIC}LIB,
and adjust the code to make halfways consistent use of these variables,
in particular on windows; Win32MakefileGenerator::getLibTarget() is gone
as a result, as is QMAKE_CYGWIN_SHLIB. still, tons of hardcoded "lib"
references remain in the unix generator, because no-one cares.
Change-Id: I6ccf37cc562f6584221c94fa27b2834412e4e4ca
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
that way we can override the values defined there.
Change-Id: Ib9bce596d9fd43875b26a97c5489ee9d0d46b77c
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
it would cause the unix generator to set TARGET_EXT, but that wasn't
used anywhere. so remove the dead code. if it ever gets re-introduced,
it will be as QMAKE_EXTENSION_EXE.
Change-Id: I44ce3e612651fd229177e37ab6c8879cd8c474b7
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
it was experimentally added in 2011. there is no evidence that anyone
actually uses it.
Change-Id: Ie3b131f3783cafe942d180b2623fcc64740d7a73
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
it must come first, as it is most specific.
an alternative fix would be re-organizing the includes, but that
requires a lot more effort to get right.
Change-Id: I1526a3c966f3dc3f3df1efc00ec271d333ed7ebf
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
There's no need for it and there's harm in doing so, as it #defines
"interface".
Task-number: QTBUG-48351
Change-Id: I4ca855441b899f3f723a12f673645f3ce7541d9b
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
Rather than treating >=glibc-2 specially, we treat <glibc-2 specially
and all other libc implementations as POSIX.
This was found here http://patchwork.openembedded.org/patch/94947/ and
tested with armv6j-hardfloat-linux-uclibceabi and
armv6j-hardfloat-linux-musleabi.
Change-Id: I3850b1561a2e240f6564afedd80ce39407cc50b6
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
This is a leftover from the unsupported Windows Phone 8.0 mkspec.
Change-Id: Ibcf11e131a3cb098960410dbd683eb5950b0c5ad
Reviewed-by: Maurice Kalinowski <maurice.kalinowski@theqtcompany.com>
Reviewed-by: Oliver Wolff <oliver.wolff@theqtcompany.com>
When cleaning in Visual Studio then it will remove all instances of tmp
files which meant it would remove the mocinclude.tmp as well incorrectly.
Therefore the extension of the mocinclude file needs to be changed to .opt
so that it is left untouched by Visual Studio.
Change-Id: Iebc055f33f9dc87a4fa42ae87b253f6739903e8f
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
These variables were defined but never used in the respective qmake
features. Utilizing them allows more control over the output file name.
Change-Id: I5ba96c5cd330b18dc060f563186992fe3bd27b49
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
I've tested with Clang 3.7 and ICC 16 on Linux, XCode 6.4 on OS X for OS
X (not iOS).
Change-Id: Ib306f8f647014b399b87ffff13f1f4291d801a20
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
I added this sometime in the past to work around some ICC bug in
position-independent code. Modern versions don't have the bug.
Change-Id: I42e7ef1a481840699a8dffff140049ce927cdff2
Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
See https://software.intel.com/node/522852. There are options to turn
off LTCG and, on Linux, to enable/disable fat objects.
Change-Id: I42e7ef1a481840699a8dffff14003db5a9c95b83
Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
This is probably emitted in error in ICC 16.
warning #809: exception specification for virtual function
"QQmlEnginePrivate::~QQmlEnginePrivate" is incompatible with that of
overridden function "QObjectData::~QObjectData"
Change-Id: I7a21ba10770ba008bdc18f535502376e1d92520f
Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
there is no particular reason to have them in qt_functions.prf any more,
while the separation made the code harder to follow.
Change-Id: Ie44c9784358f382f7bc863b421ff5b440211d66f
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
there is no particular reason to have it in qt_functions.prf.
Change-Id: I88ed1ea937a9a88a4625a6de7bcd3a29957560da
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
the addition of qt's rpath belongs into qt.prf - even on mac.
so consolidate the two implementations.
as a nice "side effect", we get relative rpaths also on linux.
another "side effect" is that we don't unnecessarily add the qt rpath to
qt modules also on linux.
the qt rpath addition mechanism should not be responsible for setting
the policy who gets a relative rpath, so move the logic to higher-level
callers.
Change-Id: I52e8fe2e8279e7b1ac25fae758867a5cb1cafcf8
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
the rpath applies only to the installed on-device location and is
consequently always the same for all modules, so there is no point in
indirections.
Change-Id: Ia0590552aa317d799a2d3879fd0c0768344b9645
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
this variable is not referenced anywhere else.
Change-Id: Ib4d0a47a08d029f65542e752fa2a47c992e061fa
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
the old plugin loader which test-loaded plugins (without their
dependencies) is gone, so the hack is obsolete.
Change-Id: I68077cb58174dfbcb0b5372e2574de41f48d35c9
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
ppc/ppc64 and 32-bit x86 have been dead for a while.
consequently, the legacy macx-g++-64 spec was most probably not used.
which in turn meant that NATIVE_64_ARCH was never set (in particular on
windows hosts ...), which means that the android ndk host auto-detection
was effectively broken.
the arch code in mac/default_post.prf was also never triggered, so nuke
it as well.
Change-Id: Ic0775e40b273a22e0a15808cac328e0df33c2155
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
The use of ccache leads to QMAKE_CXX definitions of the form:
QMAKE_CXX = $${CCACHE} $${CROSS_COMPILE}g++
The previous test required QMAKE_CXX to be a single valid (absolute or
QMAKE_PATH_ENV-relative) path to an existing file, which was not
compatible with definitions of QMAKE_CXX like the one above.
Fix this by using only the first value in QMAKE_CXX, which usually
points to the compiler executable, or to the ccache executable in the
above case.
Task-number: QTBUG-47951
Change-Id: Iade3136f03493593b067fb7742fb997f92377425
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
If no_generated_target_info is not set, VERSION is set, and
there is no .rc file that belongs to the project, qmake creates a
.rc file that contains information about the target's version
and copyright, for example. This resource handling is also
supported by WinRT and we can add this information to the target.
On Windows Phone, winresrc.h (which is needed for resource
handling) is not available though. When trying to add a .rc file
to a project in Visual Studio, it also complains about winres.h
not being available. Instead of hacking around the issue, we
just should not support this behavior on Windows Phone.
Change-Id: Ie962bfa790916fed23294110062e3572a0e317f9
Reviewed-by: Andrew Knight <andrew.knight@intopalo.com>
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
Inside Visual Studio these files (INSTALLS) will end up in deployment.
They do not make sense there and might even cause clashes, which prevent
the project file from being loaded (for example when a qrc file is added
to "Resource files" and "Deployment files")
Change-Id: Ifa68c52a83b2bf3948738c7aa1cf9c56b331dc80
Reviewed-by: Andrew Knight <andrew.knight@intopalo.com>
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
This linker script is only enabled for systems with GCC or GCC-like
compilers, though technically it should work on the BSDs too (will
enable after testing). For regular modules, this declares one ELF
version "Qt_5" and places all QtCore symbols inside, then it declares
unused ELF versions "Qt_5.x" for each older minor release. For modules
declared "internal_module", all symbols are placed in version
Qt_5_PRIVATE_API.
The big advantage of an ELF version is that, when we do Qt 6, both
versions of QtCore could be loaded in memory without conflicts and all
symbols would be resolved to the correct library. No module can talk to
both at the same time, but this avoids mistakes of loading them
indirectly by plugins.
The extra Qt_5.x versions will be used in the next commit.
Change-Id: I049a653beeb5454c9539ffff13e3fe6f050fdf31
Reviewed-by: Lisandro Damián Nicanor Pérez Meyer <perezmeyer@gmail.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
When using Xcode7 (beta 6) "xcrun simctl list devices" will also list iWatch
devices. So we need to filter them out so we don't end up picking one
when building and running auto tests.
This will fix a build failure when building Qt with latest Xcode7.
Change-Id: Ie40489d670298ec75332a6c2b54565d55e9dbbba
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@theqtcompany.com>
[ChangeLog][General Improvements] Qt's buildsystem now detects whether
the compiler supports C++14 and experimental support for C++1z. If the
compiler supports it, then Qt is automatically compiled using that
support.
\
This does not apply to user applications built using qmake: those are
still built with C++11 support only. To enable support for C++14 in your
application, add to your .pro file: CONFIG += c++14 (similarly for
C++1z).
Change-Id: Ib056b47dde3341ef9a52ffff13ef1f5d01c42596
Reviewed-by: Lars Knoll <lars.knoll@theqtcompany.com>
This will allow us to drop gtk2 support from qtbase in future,
while still providing the gtk2 style for those who want to use it.
Also with moving to qtstyleplugins, the code can be simplified
because we can directly link to libraries we need, instead of using
QLibrary.
[ChangeLog][QtWidgets] Remove QGtkStyle, it is now provided in
qtstyleplugins repository.
Change-Id: I6221b1a513d7fda32e080f3ca159b0b2f8a8f246
Reviewed-by: Timo Jyrinki <timo.jyrinki@canonical.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
Reviewed-by: Jens Bache-Wiig <jensbw@gmail.com>
Reviewed-by: Lars Knoll <lars.knoll@theqtcompany.com>
Reviewed-by: J-P Nurmi <jpnurmi@theqtcompany.com>
Reviewed-by: Lisandro Damián Nicanor Pérez Meyer <perezmeyer@gmail.com>
Add configure time option to enable boot2qt platform using DISTRO_OPTS.
On embedded, the QtWebEngine is supported only on boot2qt platforms.
To have QtWebEngine CI tested on embedded, we need a way to to enable
boot2qt platform for existing mkspecs.
Change-Id: I218da5b8071041ca1c95eb218b2d552fcc9980d2
Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
Reviewed-by: Andras Becsi <andras.becsi@theqtcompany.com>
Change-Id: Iee8cbc07c4434ce9b560ffff13ca466263abcb1b
Reviewed-by: Richard J. Moore <rich@kde.org>
Reviewed-by: Rafael Roquetto <rafael.roquetto@kdab.com>
Reviewed-by: Andrew Knight <andrew.knight@intopalo.com>
We need to move adding ucrt(d).lib out of the various qmake.conf as
qmake.conf is only parsed once by qmake and does not differentiate
between debug and release.
Hence use default_pre.prf which is the earliest prf to use. This one
also is being parsed multiple times and does what it is supposed to do.
This allows API certification tests for Win10 to suceed, another
sideeffect is that it is much cleaner at a single location now.
Change-Id: Id899f4bbd063a3191c8f139857abf90efa827ffc
Reviewed-by: Andrew Knight <andrew.knight@intopalo.com>
The architecture needs to be specified to be properly used inside Visual
Studio and for winrtrunner to parse dependencies.
Change-Id: I218100f33efcba9f78199cbd1e48089269648e61
Reviewed-by: Andrew Knight <andrew.knight@intopalo.com>
bf24838c33 introduced a hard dependency on
kernel32.lib, which needs to be added for the msvc2015 mkspecs.
As the library differs for Windows Phone / Windows 10 Mobile, this most
likely has the side-effect that we will need to introduce winphone-xxx-
msvc2015 at a later stage.
Change-Id: I8fa2a68d421345c14ba90efc6faa5eea1ad457e1
Reviewed-by: Andrew Knight <andrew.knight@intopalo.com>
So far the dependency keyword has been ignored for the new Windows 10
mkspecs. The difference to older manifest files is that there is already
a <Dependency> section and hence we embed dependencies inside this one,
as the format standard does not allow to have multiple of those.
Change-Id: I1bf25979cc28d5c153215de5bb9cd6f37e9c50aa
Reviewed-by: Andrew Knight <andrew.knight@intopalo.com>
This enables to create fully functional packages from the output of
'nmake install'.
Change-Id: Ief83532cdfc4575f7c42f5bb6a3cee4c9f0ecbd3
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
Reviewed-by: Oliver Wolff <oliver.wolff@theqtcompany.com>
Since libstdc++ builds on OS X and QNX 6.5 are no longer supported,
simply require <initializer_list> and std::move in order to claim C++11
support works.
The minimum OS X versions need to be fixed elsewhere.
Change-Id: Ib056b47dde3341ef9a52ffff13ef1d2ac3923f5c
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
Reviewed-by: Jake Petroules <jake.petroules@petroules.com>
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@theqtcompany.com>
Reviewed-by: Rafael Roquetto <rafael.roquetto@kdab.com>
Instead of going to qmake to generate the makefile that we want, we write
the makefile directly and include it from the generated makefile. This
leaves us with a single top level makefile for handling exclusive builds
through xcodebuild, and covers all the various build configurations in
a unified manner. It also allows for improved test device handling.
Change-Id: I66851f181ac4da2c8938645e0aa95ffa0fee33c7
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@theqtcompany.com>
The logic was lumped together in one big file. Now that things are more
stable and the logic has proven to work over time we can split it out
into the more appropriate sub-prfs.
Change-Id: I9a40ad72ad9d7550b609e7f50fade1049dfa3ac1
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@theqtcompany.com>
Fix the flood of warnings:
src/corelib/global/qflags.h(52): warning C4577: 'noexcept' used with no exception handling mode specified; termination on exception is not guaranteed. Specify /EHsc
now occurring since we don't have exception handling enabled.
Change-Id: I05d12ee6303b4f9fceb48507fadfd7d1a5604ea4
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
lex.prf was trying to be halfway between the standard POSIX lex
requirements and those of GNU flex. So fix it to work with both, more or
less, by noticing when lex is actually flex and using the extended GNU
options. Note that POSIX lex is untested and may still not work.
Change-Id: Ib306f8f647014b399b87ffff13f1e8e43fb68b3c
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
Consider a project that does the following:
launch_images.files = $$PWD/LaunchImage.xib
QMAKE_BUNDLE_DATA += launch_images
In that case we end up overwriting launch_images.files in default_post, and
at the same time, add launch_images a second time to QMAKE_BUNDLE_DATA.
The result will be that we copy our own launch image twize into the bundle.
To prevent this, prepend our internal variables with qmake_
Change-Id: I24f870874017b5388248e3bfadecd461422ffe35
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@theqtcompany.com>
These macros are not defined unless a desktop or standalone SDK is
installed.
Change-Id: I4c600ddca5944cc5fde310e4fbe0866a7250d36b
Reviewed-by: Oliver Wolff <oliver.wolff@theqtcompany.com>
yacc.prf was mostly working, so this commit simply makes it slightly
better by using the -p and -b options that POSIX requires and avoid
having a common intermediate file.
Change-Id: Ib306f8f647014b399b87ffff13f1e8e74ad4db1d
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
Most people's yacc are actually a symlink to bison. On Windows, where
symlinks don't usually exist, we can use bison -y.
This was tested with MSYS Bison.
Change-Id: I913745d48af30f9ef7b846b6438500261dd6022d
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
Prefer -std=gnu++11 unless strict_c++11 is defined. You can enable
strict C++11/C++14 mode by using
CONFIG += strict_c++
That is enabled for Qt's own code, so we we don't accidentally use GNU
extensions in portable code.
There's no support for strict C++98 mode (that is, the -ansi option).
[ChangeLog][qmake] By default, GNU extensions are now enabled with
Clang, GCC and ICC even in C++11 and C++14 modes. To disable the GNU
extensions, add to your .pro file: CONFIG += strict_c++.
Change-Id: Ib056b47dde3341ef9a52ffff13ef14de2169bef5
Reviewed-by: Kai Koehne <kai.koehne@theqtcompany.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
Clang does not recognize the compiler flag 'no-arc-abi' anymore.
This causes a warning, which will fail the build. Not sure
what the flag does, as I cannot find any documentation for it, even
after grep-ing through the sources (both clang-600.0.57 and
clang-503.0.38)
Change-Id: I39fae3fd108a8edb978f4264935a069cce4c302a
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@theqtcompany.com>
With iOS 6.0 and above the LC_MAIN load command is available, which allows
dyld to call the application entrypoint directly instead of going through
_start in crt.o. By passing -e to the linker we can change this entrypoint
to our wrapper that sets up the separate stack before entering the native
iOS runloop through UIApplicationMain. As before, we call the user's main()
from applicationDidFinishLaunching.
By using LC_MAIN instead of messing with the object files we open up the
possibility of generating Bitcode instead of object code, which can be
useful for link-time optimizations, either locally or by Apple.
Change-Id: If2153bc919581cd93dfa10fb6ff1c305b3e39a52
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@theqtcompany.com>
Use hard float. This has already been the case for the commercial Beaglebone
reference images, it's time to fix the old specs too.
Change-Id: Ic9007285f64a3055fb637e7eacead17cbad1cad4
Reviewed-by: Andrew Knight <andrew.knight@intopalo.com>
Reviewed-by: Louai Al-Khanji <louai.al-khanji@theqtcompany.com>
Conflicts:
src/plugins/platforms/cocoa/qcocoafiledialoghelper.h
Manually fixed src/testlib/qtestcase.cpp to return the right type.
Change-Id: Id1634dbe3d73fefe9431b9f5378846cb187624e4
Commit 3ce99adf replaced DEPLOYMENT with INSTALLS and introduced
the "install target not created" warning when running qmake on
WinRt projects.
The code path in qt.prf that was responsible for filling the
DEPLOYMENT variable was never functional in Qt5. We're turning
the code path off until this is properly fixed.
Change-Id: If836ef648f9fb601b7597d39e3d00665d4cf01b0
Reviewed-by: Oliver Wolff <oliver.wolff@theqtcompany.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
There is no test for gold linker and new dtags support for the host build
(only for the target compiler/build) which leads to trouble in some cross
compiling environments (see [1] for details).
So disable gold linker/new dtags support unconditionally for host builds.
[1] http://lists.busybox.net/pipermail/buildroot/2015-May/128303.html
Task-number: QTBUG-46125
Change-Id: Ic62828704dcce461487d63860705158cce3e4af8
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
On Windows, we set VERSION for QML plugins, because this embeds a
VERSIONINFO resource into the DLL that can be inspected by the user.
Change-Id: Ifb42efed6ceee05d05f61a271e028776cac6a3a2
Task-number: QTBUG-46473
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
Deprecate the qmake variable DEPLOYMENT that was used for installing
files on remote devices for Windows RT and Windows CE Visual Studio
projects. Use INSTALLS for both nmake and Visual Studio projects.
[ChangeLog][core][qmake] Deprecated the qmake variable DEPLOYMENT in
favor of INSTALLS.
Task-number: QTBUG-21854
Change-Id: Ia9d2c69feb7d87b0b9dc69ff7c0a68be35a57acd
Reviewed-by: Oliver Wolff <oliver.wolff@theqtcompany.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
... by implementing a fake ln in qmake.
symlinks are supported only since vista (we officially still support
xp), and even there are permission-restricted (MS being (rightfully)
afraid of symlink attacks). so we fake the links by copying the files
instead.
the previous hack was a bit naive, simply using cp/copy instead of ln.
this didn't work with relative paths, as real symlinks are resolved
against their parent directory, not the working directory of the "ln"
command. the new fake does this correctly.
Change-Id: Ia2f5d68a39d6ffcc8a4383f9d0fc63a9da0a05c3
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
Check for a valid license not only in configure, but also in qmake.
To limit the runtime overhead we cache the day of the last run in
a .stash file. This allows us to run licheck only for the top-level
qmake call, and only once per day.
This requires an updated licheck executable that supports the new
check mode.
[ChangeLog][Tools][qmake] For commercial builds, qmake now checks for
a valid Qt license. This requires setting up a Qt Account (or
.qt-license file) on the development machine.
Change-Id: I2c2a05a4602cc661560568b76ddf520cb8134769
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
This allows creation of applications for
- x86
- x64
- arm
While the arm build theoretically also allows to launch on
a mobile, it currently asserts on runtime. Either we will
create a new mkspec for Windows 10 Mobile in the future,
or do runtime checks for the environment. That also depends
on whether there will be a separate SDK by Microsoft.
Change-Id: I510bfc88410a5b5a1eb7c37f7f43888d1e5dda0d
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
Reviewed-by: Oliver Wolff <oliver.wolff@theqtcompany.com>
Reviewed-by: Andrew Knight <andrew.knight@intopalo.com>
The makespec inits QMAKE_LFLAGS_PLUGIN to the same as QMAKE_LFLAGS_SHLIB,
which will create a dynamic library by passing -dynamiclib. The advantage of
creating a proper bundle (MH_BUNDLE) instead of a dynamic library (MH_DYLIB)
is that bundles can be unloaded completely by the host application.
Change-Id: I03b39b704c09213f40a4cb84f5794bf6b3669fc0
Reviewed-by: Jake Petroules <jake.petroules@petroules.com>
As the defines looked like -DQT_TESTCASE_BUILDDIR=""C:\..."" compilation
from Visual Studio (vcxproj) failed due to the two quotation marks at
the beginning/end of the actual path. So for the vc(x)proj we do not use
shell_quote but add the quotes manually.
Change-Id: I186258d82a56928cd0316bff1ec9f60147044165
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
On desktop windows we define _HAS_EXCEPTIONS=0 to also forward this
option. Hence harmonize this with WinRT builds as well.
As a side-effect qtdeclarative now compiles without warnings on WinRT.
Change-Id: I8e343f172160991ffb2ede01303802f321de82b5
Reviewed-by: Kai Koehne <kai.koehne@theqtcompany.com>
Reviewed-by: Oliver Wolff <oliver.wolff@theqtcompany.com>
Standalone files are added by using RESOURCES += file.txt, while
collections of files are defined as collection.files = f1.txt f2.txt
and then added using RESOURCES += collection. For collections a prefix
can also be set using collection.prefix = /foo. The standalone files
are not prefixed.
Change-Id: I8236808238414da05e744f799a1bb15a72f4a46f
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@theqtcompany.com>
Including /usr/include and lib can cause cryptic failures if there is
already a Qt installed to /usr.
Having standard locations listed should not be necessary at all.
Change-Id: I08a15a064cc1aec126733f7e1962a2fa2ec38fcb
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
Reviewed-by: Andy Nichols <andy.nichols@theqtcompany.com>
Defaulting to absolute_library_soname on configure -rpath is no longer
necessary as now we support @rpath install name ids on OS X and iOS.
This also sets QMAKE_SONAME_PREFIX to @rpath for Qt modules when built
with rpath configuration.
This makes Qt libraries relocatable on OS X. Qt SDK is not yet
relocatable though, because plugin locations (including cocoa plugin)
are still resolved using absolute path (see QTBUG-14150). Also, there
are several absolute paths hardcoded in qmake mkspecs pri files.
Task-number: QTBUG-31814
Change-Id: I36b9384cd69ac609608acbe2b3d5e0512317e0d6
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@theqtcompany.com>
there is no need to make exceptions for install targets now, so instead
of abusing qt_no_install_library, introduce a new header_module flag.
Change-Id: I4ad7e301d1b60938b17e1dea732b1dbe3ff88a1a
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
GCC 5 combined with a recent binutils have a new optimization that
allows them to generate copy relocations even in -fPIE code. Clang has
the same functionality when compiling an executable with -flto. We need
to let the compilers know that they cannot use copy relocations, so they
need to use really position-independent code.
Position independent code throughout is not really required. We just
need the compilers to use position-independent access to symbols coming
from the Qt libraries, but there's currently no other way of doing that.
Task-number: QTBUG-45755
Change-Id: I0d4913955e3745b69672ffff13db5df7377398c5
Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
this allows LD_LIBRARY_PATH to take precedence over the hard-coded
rpath, which is the only sane thing to do (which is also why i'm not
adding an option to disable it).
this behavior is consistent with non-linux systems.
the windows version has no auto-detection, just like for gold linker
usage.
Task-number: QTBUG-3069
Change-Id: Ief9ba032291c898d75d76ecc740390954382a804
Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
The flags are the same across all GCC flavors so put the definition
in the common gcc-base.conf instead of duplicating it in g++-base.conf
and clang.conf
Change-Id: I1ba2c3c314d3a02b559c384aecef74240f69f659
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@theqtcompany.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
CMake INTERFACE targets may only have whitelisted properties, and
FRAMEWORK is not in the whitelist in released CMake versions.
Change-Id: I27cd0cfbe1b52f25c91bf1b3c0d55879bed91bdf
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
Reviewed-by: Stephen Kelly <steveire@gmail.com>
this makes the distclean targets work throughout qt.
the dreaded confclean target is aliased to distclean.
Task-number: QTBUG-8202
Task-number: QTBUG-20566
Change-Id: I7ac8e3b5b0110825dc93e4fa885281db91c6cf83
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
automatically set TEMPLATE=aux if qt_no_install_library is set.
Change-Id: Iccceda468da762b181fdd5c8e511bf6ed19af599
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
just like in qt_plugin.prf, the DESTDIR setting is actually fixed per
module type.
Change-Id: I5837b5884699f0d50e4067733af8aacbab93bc42
Reviewed-by: Stephen Kelly <ske@ableton.com>
As these are a new type, there is no legacy code to support.
Change-Id: Ie5abd353563d68d0449a07e06065f34db805f710
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
there is neither a point in building a PCH that will never be used, nor
does it even work with the aux TEMPLATE.
Change-Id: I2fe11f951f81adf5e15066ed60f983003c76b451
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
automatically append the .exe extension. this is done unconditionally,
which means that providing it in the spec is wrong by definition.
don't use system("which") (which won't do what we want in a windows
shell), but scan PATH ourselves. as a bonus, this is also faster.
to avoid fetching and splitting the path multiple times, factor out a
function in spec_pre.prf.
Change-Id: I95f0fa285c158b347d45422111f91540e3a595fd
Reviewed-by: Jochen Seemann <seemann.jochen@gmail.com>
Reviewed-by: David Schulz <david.schulz@theqtcompany.com>
Test each include file directly, instead of doing a large #include. This
verifies that each header is compilable on its own. One big advantage of
doing it via a special compiler in qmake is that we skip pre-compiled
headers, which has hidden build errors in the past.
This solution is implemented by making syncqt produce a second list of
headers. This list is the same as the list of headers in the source
code to be installed, minus the headers that declare themselves to be
unclean, via the pragma:
#pragma qt_sync_skip_header_check
This mechanism is applied only for public libraries (skipping
QtPlatformSupport, an internal_module).
This test is enabled only for -developer-builds of Qt because it
increases the compilation time.
On QtTest: the library only links to QtCore, but it has two headers that
provide inline-only functionality by including QtGui and QtWidgets
headers (namely, qtest_gui.h and qtest_widget.h). If those two modules
aren't getting compiled due to -no-gui or -no-widgets to configure, we
need to remove the respective headers from the list of headers to be
checked. If they are being built, then we need to make QtTest's build
wait for the headers to be generated and that happens when qmake is
first run inside the src/gui and src/widgets directories.
Change-Id: I57d64bd697a92367c8464c073a42e4d142a9a15f
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
Require CMake 3.0 if an attempt is made to use a cmake file containing
an INTERFACE library.
If the user is using a CMake version older than 3.0, then exclude INTERFACE
libraries from dependencies of Qt modules. The Qt CI system is running
CMake versions as old as 2.8.11, which makes that the current minimum version.
The only header-only module existing so far is the QtUiPlugin module, which
has been split out from the QtDesigner module. If using CMake 2.8, the
forwarding headers in the QtDesigner module will be used, and the effect
of the split out library will not be seen. If using CMake 3.0, the
split out library is listed as a dependency and its transitive usage
requirements such as the QT_UIPLUGIN_LIB definition are made available.
Change-Id: Iecee3bbc440842dca27dc067f2a31e3526efa01b
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
We have configure -headersclean now
Change-Id: Iaf576b16d7c756a08ec5c3dfa32deaa343e5e029
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
This aligns with Chromium branch 2356.
This version brings more complete OpenGL ES 3 support as well as various
bug fixes and performance improvements.
The following changes were made to earlier patches:
-0000-General-fixes-for-ANGLE-2.1
Removed. All changes are now handled elsewhere.
+0001-ANGLE-Improve-Windows-Phone-support
Consolidated remaining parts from 0009/0010.
+0002-ANGLE-Fix-compilation-with-MinGW
Remaining issues from patch 0016.
+0003-ANGLE-Fix-compilation-with-MSVC2010
Remaining issues from patch 0015.
+0004-ANGLE-Dynamically-load-D3D-compiler-from-list
Renamed from patch 0008.
+0005-ANGLE-Add-support-for-querying-platform-device
Renamed from patch 0013.
-0004-Make-it-possible-to-link-ANGLE-statically-for-single
Removed. Fixed by adding defines to project files.
-0008-ANGLE-Dynamically-load-D3D-compiler-from-a-list-or-t
Renamed to patch 0005.
-0009-ANGLE-Support-WinRT
Removed. Mostly fixed upstream; remaining parts in patch 0001.
-0010-ANGLE-Enable-D3D11-for-feature-level-9-cards
Removed. Mostly fixed upstream; remaining parts in patch 0001.
-0012-ANGLE-fix-semantic-index-lookup
Removed. Fixed upstream.
-0013-ANGLE-Add-support-for-querying-platform-device
Renamed to patch 0005.
-0014-Let-ANGLE-use-multithreaded-devices-if-necessary
Removed. No longer needed.
-0015-ANGLE-Fix-angle-d3d11-on-MSVC2010
Moved remaining parts to patch 0003.
-0016-ANGLE-Fix-compilation-with-MinGW-D3D11
Moved remaining parts to patch 0002.
-0017-ANGLE-Fix-compilation-with-D3D9
Removed. Fixed upstream.
-0018-ANGLE-Fix-releasing-textures-after-we-kill-D3D11
Removed. Fixed upstream.
-0019-ANGLE-Fix-handling-of-shader-source-with-fixed-lengt
Removed. Fixed upstream.
-0020-ANGLE-Do-not-use-std-strlen
Removed. Fixed upstream.
-0020-ANGLE-Fix-compilation-with-MSVC2013-Update4
Removed. Fixed upstream.
[ChangeLog][Third-party libraries] ANGLE was updated to Chromium branch
2356 (2.1~99f075dade7c).
Change-Id: I32ccbfe95e10986bd94be7191dfd53445ea09158
Task-number: QTBUG-44815
Task-number: QTBUG-37660
Task-number: QTBUG-44694
Task-number: QTBUG-42443
Reviewed-by: Andrew Knight <qt@panimo.net>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
QT_INSTALL_LIBS is not the right place to check for Qt dlls, as they
cannot be found there in a non-developer build. In order to be able
to find the dlls and make adding dll locations easier for the user,
QMAKE_DLLS_PATHS was added. On Windows, the variable points to Qt's
bin directory by default.
Task-number: QTBUG-44960
Change-Id: Ie4e5beeaadee798a055599387e842d7c0502c27a
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
Dependencies to all header files generated by dumpcpp are now added to
every object file. This fixes parallel builds of projects that use
TYPELIBS.
Change-Id: I3c0456c7b182a42296ec6999aa86d1293ffd2e42
Task-number: QTBUG-45118
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
The variables used for release with debuginfo was set in g++-base.conf
which is not included by clang builds.
Change-Id: Iec3b23c371c113ff934d2c7f5134ef78b1cf939e
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
Applications built using the regular makefile generator also need to
link to XCTest, as the library is referenced from qxctestlogger.mm
Change-Id: Iedbb5c6a2811fd904d75abc20f4e39440e44e748
Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
This issue had been fixed by SHA: a12a2fdf68
but re-introduced by SHA: c23d1c7695 again.
Task-number: QTBUG-45085
Change-Id: If98ee108335d80035179a83b1b28f384395d8373
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
Will be active when running test apps through Xcode's 'test' action,
and reports QtTestLib test objects and functions to Xcode as XCTest
cases.
This allows running tests on both iOS Simulator and iOS devices from
the command line, through xcodebuild, without relying on any 3rd party
tools. It also integrates Qt test failures and passes into the Xcode
IDE, which may be useful for closer investigation of test failures.
The feature is limited to Xcode 6.x.
Change-Id: I33d39edbabdbaebef48d2d0eb7e08a1ffb72c397
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@theqtcompany.com>
while every "real" module has private headers, a very small headers-only
module could reasonably have none. entirely hypothetically, of course. ;)
Change-Id: Ib51a66858fb7d62f45fe2928625c25aa1ffc2827
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
they have no library to link against, obviously.
Change-Id: I721670382c1ec56e19130f0a0ecef616e101b885
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
Likely culprit for issues in the CI when building iOS tests.
This reverts commit 9a7564edee.
Change-Id: I02ac77a305b5863c9533c97ba06aaafe8f176a22
Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
Thumb instructions trigger a compiler bug in e.g. Qt Script
when used with armv5 in the recent versions of the toolchain.
We already disabled this for the 4.8 toolchain, but the bug
is also present in 4.9, so we need to disable it there as
well.
Change-Id: I6cadc7efd2b59b9a2ffec038559edd0e7782a4b9
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
Change-Id: Iaf65acfee523e401ed973869b364301b08dc1520
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@theqtcompany.com>
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@theqtcompany.com>
Don't clear QMAKE_EXTRA_TARGETS when creating makefiles.
Clearing it seems unnecessary, since it doesn't cause any
harm to make the functionality available to projects.
Change-Id: I470106b28124baf9df7000a7a70ee7159236c77a
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@theqtcompany.com>
To make echo hide all the commands of making the debug file it needs
to use && to separate commands instead of newline.
Change-Id: I6c9b408b897a285b769a402fa4d923c110334504
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
Since quoting was fixed, separate debug info has no longer installed
correctly because it relied on executing shell commands in the target
name.
This cleans up the generation and installation of separate debug info
by using resolve_target.prf.
Change-Id: I3ee47c0e4dc3de600c42f56b17315a69925c4724
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
When building a module for the first time the paths won't exist as they
are only created when you run "make". However, if you run qmake with
'-r' you need the compiler flags to be available already before that.
Task-number: QTBUG-43175
Change-Id: Ib784c432f29bb8c62b9ef23e59ccb515e1d96f28
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
We now have support for more complex exclusive builds configurations,
e.g., on iOS with simulator and device configurations, so we can't hard
code the logic for choosing the right exclusive build to test.
Change-Id: I358687b297b7bf1eb28eef0ef0aaf44b89860404
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@theqtcompany.com>
It's pretty easy to forget to run qmake from a vcvars prompt. Doing so
causes the UUID to get persistently written as empty, breaking the
vc project.
Change-Id: I5badb31ad4f606abbe8c71979019e097c748e07a
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
Reviewed-by: Peng Wu <peng.wu@intopalo.com>
Reviewed-by: Maurice Kalinowski <maurice.kalinowski@theqtcompany.com>
Support statically linking the MSVC/mingw runtime libraries without
manually tweaking mkspecs. This is helpful for projects like the
installer framework.
MSVC does not support mixing MT[d]/MD[d] flags in different
compilation units. The static_runtime option is therefore added
to both QT_CONFIG and CONFIG.
Change-Id: Ifd6dc9c362090457de8e2c62477d0445f9479722
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
Neon detection in configure does not work unless correct
flags are passed to compiler.
Task-number: QTBUG-44690
Change-Id: If119cc9ed80275aaa8796c1be8853559a7670d6a
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
Reviewed-by: Rafael Roquetto <rafael.roquetto@kdab.com>
Xcode has a setting for script phases to filter out the environment
variables, so we don't need to use grep.
Change-Id: Ica1c64321385ab3e3b47cf6f8f4d4191bd963540
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@theqtcompany.com>
Change-Id: I1692cf3eb34726c15eaa969a369bb97a89773bfd
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@theqtcompany.com>
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@theqtcompany.com>
The Xcode project generator doesn't support exclusive builds, and always
runs as the default debug/release config, and with iPhoneOS as the target
platform. This means we need to parameterize the QMAKE_MAC_SDK_* build
settings to depend on the currently active SDK in Xcode, so that the
paths, when used in eg. linker flags, are up to date.
Change-Id: I9ca10f794e14ab440d98820657758b3fd8a7cdb0
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@theqtcompany.com>
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@theqtcompany.com>
The logic failed for cases like QT += core widgets.
Change-Id: Ic49c1a2314a4698b03956acbd6778b658326f3e2
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@theqtcompany.com>
it makes no sense to let every spec do that separately, as it's fixed
by the generator+shell.
putting it into a file which is loaded regardless of the spec also
allows us to remove the hardcoded fallbacks from qmake.
if somebody overrode the values in their spec for some weird reasons,
they'll need to override spec_post.prf.
shell-{unix,win32}.conf are now dummies and print warnings.
Task-number: QTBUG-37269
Change-Id: I66c24fb4072ce4d63fdbfc57618daa2a48fa1d80
Reviewed-by: Jochen Seemann <seemann.jochen@gmail.com>
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
A scheme is required to be able to run tests through Xcode, even from the
command line, but Xcode doesn't auto-generate the schemes until launched
as an application. Xcode also auto-generates schemes for all our targets,
but we only need one for the primary application target.
Change-Id: Ia42f3825aba3ffde3be93be55e165d6284434853
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@theqtcompany.com>
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@theqtcompany.com>
Change-Id: I2e58c22301a433208718c26b362b4dda2b891f0e
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@theqtcompany.com>
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@theqtcompany.com>
The latter location resulted in the wrong SDK paths being resolved if
sdk.prf was loaded before default_post.prf through an explicit load(sdk)
call.
Change-Id: Ia443260572fbdf5f9ed1daf558c2962703274e32
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@theqtcompany.com>
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@theqtcompany.com>
If the user adds CONFIG+=bundle and doesn't set QMAKE_BUNDLE_EXTENSION,
we interpret that as a request to generate a test bundle.
Change-Id: Id4fbb64d39cddd6f95ac641a910a9d5543c30daa
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@theqtcompany.com>
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@theqtcompany.com>
the function is used in our examples and code generated by qt-creator,
so the qt5-specific magic behavior is inappropriate. create a separate
function instead.
Task-number: QTBUG-44595
Change-Id: I4d72cc1e5cbfc274b3210520baa213f4c5479ca9
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
eglfs does not depend on the device makespecs anymore when it comes to these device
integration backends (hooks). Instead, backends are autodetected by configure.
The name of the preferred plugin is still set in the device makespecs. This
is optional. When not set and there is more than one plugin present in the system,
the environment variable QT_QPA_EGLFS_INTEGRATION will have to be set at runtime.
In the absence of that, the order is undefined.
Change-Id: Ie1ced2c9aa1beff2adb13b4fdea7c499cb5a6aab
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
Reviewed-by: Andy Nichols <andy.nichols@theqtcompany.com>
Change-Id: Ifc99af49398e5d6e057035d2de55fe218c8418d6
Reviewed-by: Andy Nichols <andy.nichols@theqtcompany.com>
Reviewed-by: Robin Burchell <robin.burchell@viroteck.net>
Moc doesn't have the built in defines that clang has, so we need to
hard-code some of these so that moc resolves the Q_OS_IOS define
in the end, based on qsystemdetection.h and TargetConditionals.h
Change-Id: Id9a7f870b940f99f27c55a2a887d0ce93217b821
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
Due to common subexpression elimination instruction set extensions may
leak from the objects where they were enabled when doing link-time
optimizations.
To avoid that this patch disables LTCG/LTO on files built with extra
instruction set extensions.
Change-Id: Ie34ad900be7fb04a0dc4d3562187ee170c183333
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Cross compilers from latest yocto (dizzy) are no longer built with
default value for mfloat-abi, which means it needs to be given for
both compiler and linker to produce correct binaries. Otherwise
linker will selected dynamic linker as /lib/ld-linux.so.3, instead
of /lib/ld-linux-armhf.so.3 when compiling for hard-float.
Change-Id: I2fe116b1a90a0fbd078a4e8757abd4bc64a7b56e
Reviewed-by: Laszlo Agocs <laszlo.agocs@theqtcompany.com>
VS expects references to $(TargetPath) to be quoted by the user.
Task-number: QTBUG-25030
Change-Id: Ib5a07730836a42533d5488882e877074ccceea4c
Reviewed-by: Prasanth Ullattil <prasanth.u@gmail.com>
Reasons:
- the PlayBook NDK is old and its compiler does not keep up with newest
C++11 improvements inside Qt code.
- the PlayBook NDK diverges considerably from the standard BB10 NDK,
making it non-trivial to keep a common codebase.
- It's a defunct platform.
- Maintenance time is limited.
[ChangeLog][Platform Specific Changes] Removed BlackBerry PlayBook support.
Change-Id: Ia338aff55f4e4b747ebdecb0e1463a369a656c03
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Bernd Weimer <bernd.weimer@pelagicore.com>
Reviewed-by: Rafael Roquetto <rafael.roquetto@kdab.com>
spaces in the source dir are not supported for now, as that requires
some more profound refactoring of the bootstrap makefiles.
Change-Id: Ie0c07a1558b8326f642f2ea144bc1cd85ee761af
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
We've been setting the -Zm argument since the dawn of times (even before
the first git commit). Anyhow, MSDN from VS2008 onwards indicates
that this is not needed:
"In earlier versions of Visual C++, the compiler used several discrete
heaps, and each had a finite limit. Currently, the compiler dynamically
grows the heaps as necessary up to a total heap size limit, and requires a
fixed-size buffer only to construct precompiled headers. Consequently, the
/Zm compiler option is rarely necessary."
[ChangeLog][Compiler Specific Changes] Visual Studio: -Zm200 (an option to
specify the precompiled header memory allocation limit) is not added anymore
by qmake to the compiler calls. If you encounter an C1076 compiler error you
might need to re-add it in your .pro file.
Change-Id: Ia4bec7eba09d893a7d81886a1814602b9ce7563c
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
QtWebEngine and QtWebKit uses the Qt config to detect if C++11
is enabled. Since it is always enabled on MSVC, we can safely
set the flag indicating it is a C++11 build when using a newer
MSVC version.
Change-Id: I2efb8d1a9b1cf1496481569403c00358d0cae365
Reviewed-by: Michael Brüning <michael.bruning@theqtcompany.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
The comments at the top are simply out of date. With modern toolchains
-no-gcc-sysroot causes only trouble.
Similarly, enable hardfloat by default.
Change-Id: I80a1319ae26a6e0a8af71e07fbc43478a2b905ef
Reviewed-by: Andy Nichols <andy.nichols@theqtcompany.com>
clearly, it's not very useful if nobody noticed it yet. anyway ...
Change-Id: Ieef1593e42031f8c17a3d7e9e67e3194ded9c066
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
Qt copyrights are now in The Qt Company, so we could update the source
code headers accordingly. In the same go we should also fix the links to
point to qt.io.
Outdated header.LGPL removed (use header.LGPL21 instead)
Old header.LGPL3 renamed to header.LGPL3-COMM to match actual licensing
combination. New header.LGPL-COMM taken in the use file which were
using old header.LGPL3 (src/plugins/platforms/android/extract.cpp)
Added new header.LGPL3 containing Commercial + LGPLv3 + GPLv2 license
combination
Change-Id: I6f49b819a8a20cc4f88b794a8f6726d975e8ffbe
Reviewed-by: Matti Paaso <matti.paaso@theqtcompany.com>
This is a leftover from the old experimental mouse cursor support
which got removed. Avoid compiler warnings by removing this function too.
Change-Id: Id269ff987883708d1061a315fef70b8fc6f13706
Reviewed-by: Andy Nichols <andy.nichols@theqtcompany.com>
these reflect the on-target paths (unlike /raw, which are host paths, just
without the -sysroot). this is necessary for anything deployment-related,
starting with RPATH.
Change-Id: I13d598995d0e4d6cb0dc1fc7938b8631cf3e3a95
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
pkg-config .pc files use the raw target paths (and pkg-config patches up
-I and -L flags on the fly), so these files were actually already fine.
libtool .la files use the magic prefix = to denote the sysroot.
this works only with libtool 2.4+ (sept 2010).
qmake .prl files have no built-in sysrootification magic, but as they are
read by qmake, it's possible to put property references into them. this
makes them relocatable, both inside and outside sysroots.
Change-Id: I97236ac81e7aba4e4771d14a44cbf59144cc2d3e
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
for sh, this is usual quoting.
for cmd, this means escaping closing parens - everything else is permitted
anyway.
Change-Id: I1179849d95f1f1f9e4b0d62ecd88917a1327f60f
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
prepend the 'cd' command only after prepending the variables, as
otherwise they'd apply to the cd command only.
Task-number: QTBUG-44183
Change-Id: Ibf96a16ce2c9cd9c0e80ca3cd5433e64ec19b136
Reviewed-by: Jake Petroules <jake.petroules@petroules.com>
If we set ANDROID_NDK_PLATFORM env variable, QMAKE_DEFAULT_XXXDIRS still contains
old ANDROID_PLATFORM, so we need to overwrite it.
Change-Id: I917e24caa11bd589966b3fb11be3a9f3c4370b3e
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@theqtcompany.com>
We need PIE, doesn't matter if reduce_relocations is used or not
Change-Id: I9a359b9d4443a6059980cd4c48058132ec4267fe
Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
it never left the rudimentary stage. should it ever be re-added, it
needs to be done basically from scratch anyway.
Change-Id: I76858c8a2c90235f228f7a6e5a178a10a2669d37
Reviewed-by: Rolland Dudemaine <rolland@ghs.com>
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
Move compiler warning 4996 from level 3 to 4, like we did already for
desktop builds: 0a76b6bc7f .
Change-Id: Ic4bbaeb3104352a915b15eec7a9c9dda9a5cceec
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
Reviewed-by: Maurice Kalinowski <maurice.kalinowski@theqtcompany.com>
Use the armle-v7 ones instead.
Change-Id: I981cb4bed7e14cae8f89112df2d1d014db314cd9
Reviewed-by: Wolfgang Bremer <wolfgang@w-bremer.de>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
The current work-flow for adding app icons to an
iOS app during deployment is not good. You basically
need to specify that you want to use asset catalogs
from within Xcode and add your icons there. The
problem is that qmake will regenerate the Xcode project
the next time it runs, and your changes will then be lost.
This patch will check if the project has a valid asset
catalog assigned to QMAKE_BUNDLE_DATA, and configure
the Xcode project to use it for app icons.
Change-Id: I06621ca46aad91de96cb23ba8ca3b1a3f1226670
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@theqtcompany.com>
Naming for different logo sizes on WinRT has been varying in the
past and evolved from using small/medium/large to some being
explicit (71x71).
Add new values introduced by 8.1 (310x150, 310x310,...) and clean up
mixed usage. Detailed pixel versions overrule general specification
and latter ones stay mostly for compatibility reasons. Still the
preferred way is to use explicit pixel values.
Task-number: QTBUG-43644
Change-Id: I9173ec2951a82e5eac9d8c9956bfb0bb4d1a2459
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
Reviewed-by: Oliver Wolff <oliver.wolff@theqtcompany.com>
By using the special "ar" and "ranlib" tools, the symbol table is made
visible, so we don't need fat LTO binaries. Since we need to store the
new tool names, we may as well clean up ltcg.prf with variable names for
the fat mode too.
Change-Id: I7e53af0c74a3d069313f38500b72538af1d61128
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
Instead of trying to load in ltcg.prf and cache the value.
Change-Id: If485ff68fc6ff9d9cf7009cd72d5e702d0199c7f
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
Move compiler warning 4996 from level 3 to 4. This is needed to avoid
warnings about the use of C++ standard library functions like std::copy,
which is used e.g. in qvector.h (since c6752c5aa1):
'std::copy': Function call with parameters that may be unsafe -
this call relies on the caller to check that the passed values are
correct. To disable this warning, use -D_SCL_SECURE_NO_WARNINGS. See
documentation on how to use Visual C++ 'Checked Iterators'
Because the warning has to be disabled before any standard C++ header
is included one cannot just fix this locally in qvector.h.
Change-Id: I929f1535656bca9f5beb7fd0d557178370c232c6
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
AppStore validation requires deployment target to be
at least 5.1.1 for 64-bit applications.
Change-Id: I4d857ad983e6d4059f541bff523dd63479aca849
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@theqtcompany.com>
With the -load_all option turned on then it will cause a problem with
the network bearer plugins as they share the same files and on OS X
two plugins will be built and potentially linked against when building
statically.
This only effects gcc builds because clang does not turn this option on
when linking by default either.
Task-number: QTBUG-39238
Change-Id: Ib259304c3da74b6b4f6fcc6e3766427303af3bbe
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@theqtcompany.com>
Currently you could only invoke windeployqt for debug and release
builds, but not windeployqt_clean resulting in artifacts after
the clean step.
Change-Id: I3a93e4909a017f3594cc5b0c2249ed25b777c008
Reviewed-by: Oliver Wolff <oliver.wolff@theqtcompany.com>
Reviewed-by: Andrew Knight <qt@panimo.net>
Add a new mkspec variable, QMAKE_LIBS_EXECINFO, for platforms where
backtrace(3), backtrace_symbols(3) and others are not in libc, but
rather in a separate library -- on the BSDs, this is libexecinfo.
Use it in corelib/global/global.pri so that libqt5core links against it
and has the proper dependency when necessary.
Change-Id: I62ac36c9b3ba7ab0719420cb795087d43ec138a4
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
- remove the X11R6 paths, since they were gone for years, and their
lack may cause build issues with CMake config files
- add empty QMAKE_*_XCB variables, as done in the common linux.conf
- add to QMAKE_PLATFORM, not just reset it (just done in other mkspecs)
- borrow QMAKE_LFLAGS_GCSECTIONS from the common linux.conf
Change-Id: I94e05032f8195bbda73dffe1da02eec7ac679045
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Glibc will use the intrinsics for 32- and 64-bit, but didn't for 16-bit
(probably because GCC didn't document it until version 4.8), so this
commit will make us access the intrinsics directly the intrisincs for
all type sizes.
Additionally, this will get us access to the compiler intrisics even
without Glibc, such as when building against uclibc or Bionic.
Another benefit is that both Clang and ICC will use the MOVBE
instruction on Atom and Haswell architectures.
Change-Id: I39d1891f479887d719d69ebe4ac92ac9bfeda8af
Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@theqtcompany.com>
These mkspecs are not supported and no longer compile. Related support in
qmake has also been removed.
Change-Id: I7706dcfa5471e55e2ae3d580d65e9371e2c652d5
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
Reviewed-by: Oliver Wolff <oliver.wolff@theqtcompany.com>
Tested with the Preview release of November 2014.
Differences to the 2013 detection and support:
- Option -Zc:strictStrings is present in both debug and release mode
and is passed to qmake's own build
- New warnings 4456, 4457 and 4458 (shadowing) are disabled
- Compiler supports -arch:AVX2
Change-Id: I9572ff4d4aded4004c1fa5d6f13ffee5462043d6
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
Most files are exactly the same, so it's silly to duplicate this all
over. The differences could have been kept in each of the qmake.conf
files, but I preferred to centralize because they apply to each newer
version and, soon enough, version-specific configuration would grow
again.
Change-Id: I5c5ed58055c954acf4851d87c70cc5af49c98738
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
This compiler is no longer supported, as the mkspec was moved to
unsupported/ on commit 55c3799bd3, but the
MSVC support in qmake and in configure depend on an exact string
match. So remove the remaining bits.
No changelog because the actual removal happened in an earlier Qt release.
Change-Id: I538345f4184a6af2ea7449052c161afe4eac625c
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
Reviewed-by: Kai Koehne <kai.koehne@theqtcompany.com>
Following the principle of device integrations in QtWayland and soon
xcb, a plugin interface is being introduced to gradually replace the
statically compiled-in hooks.
The interface is same as before for the time being, for compatibility
with the existing device-specific hooks.
QEglFSHooks is now just a dummy subclass for QEGLDeviceIntegration to
support the legacy, compiled-in, device-specific hooks. When -device
is not used with configure and so there is no hook active, the new
plugin-based approach kicks in.
The environment variable QT_QPA_EGLFS_INTEGRATION can be set to
indicate the preferred integration name (e.g. eglfs_x11, eglfs_kms).
It can also be set to "none", indicating that no plugins should be
considered and the default, non-specialized integration is to be used.
(this is for devices, like Beagleboard|bone, that do not need any special
code to set up EGL)
Device makespecs can set EGLFS_DEVICE_INTEGRATION. The value is then used
as the default, preferred plugin name when QT_QPA_EGLFS_INTEGRATION is not
set. In the future device makespecs are expected to set a plugin name instead
of relying on the traditional EGLFS_PLATFORM_HOOKS_*.
When neither the QT_QPA_EGLFS_INTEGRATION nor EGLFS_DEVICE_INTEGRATION are
set, all plugins will be tried in an unspecified order. The first one that
succeeds to load is used. If all fails or there are no plugins, the built-in,
non-specialized integration is used.
To debug what integration is being used, enable the logging category
qt.qpa.egldeviceintegration.
There is some built-in logic for desktop/Mesa based systems: Under X,
eglfs_x11 is preferred, otherwise eglfs_kms is prioritized. This, assuming
sufficient permissions to video and input devices, allows simply launching
apps with -platform eglfs. No more editing of eglfs.pri.
[ChangeLog][QtGui] Added support for device-specific backend plugins in eglfs.
Change-Id: Ia2ddcddac014c25817171dc140cd8cf913784ac6
Reviewed-by: Louai Al-Khanji <louai.al-khanji@theqtcompany.com>
Since QtWebKit started using stabs on some platforms to reducing
memory pressure during linking, the tricks to strip out debug-info
in the internals no longer worked because no-debug-info doesn't strip
the -gstabs compiler and linker flags.
Change-Id: I151088f29058b8fe50cba9aa3ec8ecd84b85d7d8
Reviewed-by: Jocelyn Turcotte <jocelyn.turcotte@digia.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
On some devices, a miscompilation of libc.so has caused it to
return the wrong value. Instead of returning the dest pointer,
it returns dest + n. When compiling with optimizations turned
on, gcc may use this return value for subsequent accesses to
dest after the memmove() call, causing memory corruption.
This caused problems e.g. in QVector::prepend() which would
overwrite the whole vector with the new value.
Setting -fno-builtin-memmove disables the optimization and
works around this bug with very little risk or impact.
More information in:
http://code.google.com/p/android/issues/detail?id=81692
[ChangeLog][Android] Fixed device-specific crash on Samsung
Galaxy Tab 3 Lite 7" and some other devices.
Task-number: QTBUG-34984
Change-Id: I0c1347149eb5fe1c298758fe7de81aca4137f652
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
Whenever a binary is created and linked against a static lib that was
compiled with LTCG, the final linking step requires the compiler flags
so that the pre-compiled data in the shared library can get properly
compiled.
This could happen for a static build of Qt with LTCG, but also happens
frequently for Qt's own build when linking regular libraries and
applications against QtBootstrap or QtPlatformSupport. The linking fails
when the target is a shared library (example: QtWaylandClient linking
against QtPlatformSupport).
The .prl file actually contains the "ltcg" flag, so the best solution
would actually be to process that flag there and add link_ltcg if any
dependent .prl has "ltcg", but I couldn't find out how to do that.
Change-Id: I4a75a14d1dcb8c2089a427285e25d5555df7d7d3
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
Combining them could lead to intermediate builds having cached the
path, but not the version, resulting in later version checks failing.
Change-Id: Ia10f4268ce7b9e82c81627970236d68c00b80391
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@theqtcompany.com>
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
If using an older version of Xcode, Xcode will sometimes complain
that LaunchScreen.xib uses auto layout while the project at
the same time has deployment target set to 5.0 (where auto layout
is not supported).
This is a bug in Xcode really, since LaunchScreen.xib will only be
used when running on iOS 7 (otherwise a LaunchImage will be used).
This has been fixed in Xcode 6.
This patch adds a check for this early on.
Change-Id: Ie612c25b413add23e15fc3cb4f9e30bb5292369d
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
Apple uses __OSX_AVAILABLE_STARTING in enum values too, which ICC
doesn't like. We need to force at least OS X 10.9 so we don't run into
build errors.
FSEvents.h(279): error: expected a "}"
kFSEventStreamCreateFlagMarkSelf __OSX_AVAILABLE_STARTING(__MAC_10_9, __IPHONE_7_0) = 0x00000020
^
Intel issue ID: 6000071924
Change-Id: Iae1abb8e8e92f228571c5064d96e9d33d3e35173
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
The new default compler is gcc 4.9, it is needed to compile
64 architectures.
Change-Id: I7ccbac7615b6dc20f5b0441908590de7d4a2e8cb
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Paul Olav Tvete <paul.tvete@theqtcompany.com>
You're likely to only target/develop on one device at a time, so
we only need to build for one architecture at a time. Switching
device in Xcode will switch the active architecture as well, so
the only case where you'll need a universal debug build is if
you are creating a debug package for testers.
Change-Id: I4f37f5c982082c42836749d1e9fbe5ef91138912
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@theqtcompany.com>
This sets the prefix for frameworks to "org.qt-project".
Applications keep using the default Xcode preferences
prefix.
Task-number: QTBUG-32896
Change-Id: I67384f643888f2de3dd8e36b9bce0f04ca4e16dd
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
The change was made too late in the 5.4.0 release
cycle, and broke the Qt build and deployment in
several areas:
- macdeployqt
- OS X 10.7 builds
- shadow builds
This reverts commit c0a54efc40.
Change-Id: I1c1ad4901228f5516352ccdfa963e8ea2b5013b6
Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@theqtcompany.com>
This makes the 'big-data' feature introduced and made mandatory with
commit 5395180 opt-in trough CONFIG += resources_big.
Since the feature has been introduced several setups have been
found where the feature cannot be used, or not be used out-of-the-box.
Using the traditional default behavior lowers the risk of further
breakages.
Change-Id: Ifd04204adadeec539e962d6a9a6955f63781bd36
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
Reviewed-by: Fawzi Mohamed <fawzi.mohamed@theqtcompany.com>
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@theqtcompany.com>
Apple will from February 1, 2015, require all applications uploaded to
the App Store to be built for both 32-bit (armv7/s) and 64-bit (arm64).
https://developer.apple.com/news/?id=10202014a
We enable fat Qt binaries by passing both -arch armv7 and -arch arm64
to clang, which takes care of lipoing together the two slices for each
object file. This unfortunately means twice the build time and twice
the binary size for our libraries.
Since precompiled headers are architecture specific, and the -Xarch
option can't be used with -include-pch, we need to disable precompiled
headers globally. This can be improved in the future by switching to
pretokenized headers (http://clang.llvm.org/docs/PTHInternals.html).
Since we're enabling 64-bit ARM builds, we're also switching the
simulator builds from i386 to fat i386 and x86_64 builds, so that
we are able to test 64-bit builds using the simulator, but we're
keeping i386 as the architecture Qt is aware of when it's building
for simulator, as we need the CPU features to match the lowest
common denominator.
Change-Id: I277e60bddae549d24ca3c6301d842405180aded6
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
Building all architectures of a multi-arch build during Qt development
is in most cases not needed, so we expose a way to limit the archs we
build by passing ARCHS="subset of archs" to make, similar to how you
can pass ARCHS to xcodebuild. If the subset doesn't match any of the
valid architectures for the target, it will fall back to the default
architectures, so it's safe to pass eg. ARCHS="armv7 i386" to make,
even if building for both simulator and device. The variable may also
be exported to the environment for more persistent limits on which
architectures to build.
Change-Id: I47b10bc9d743f0301efff4181d6881ae140d557f
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@digia.com>
We need to tell Xcode which architectures it should set up pre-link
dependencies for, as well as run the rename script in the root object
file directory. We pass it the current architectures so that we only
rename main() for simulator or device, not both.
Change-Id: I095d7c8a22ff0cb2ce872c9a86c93a070c1fcc65
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@digia.com>
iOS8 will check if the app has a LaunchScreen.xib to determine
if it supports iPhone6/6+ (scale factor and resolution). So
we follow the same pattern as we do with the launch image for
iPhone5, and generate a default LaunchScreen.xib.
The xib file in this patch is a copy of a default file
generated by a native Xcode project (with quotes escaped), but
with the text label set to be $$TARGET.
Change-Id: I163ab48b6f4edea4cc1f6840a1f3d8b3cc0326db
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
Ensure the sdk is of recent enough version since:
1. we build Qt with the latest sdk version, so the app needs
to do the same to avoid compatibility problems e.g when linking.
2. using a launch screen to support iphone6 depends on sdk 8
3. Apple requires apps that are pushed to appstore to use the
latest version of the sdk.
Ideally we should store the sdk version used to build Qt, and
require that apps use the same version or newer. But this patch
will do until that is in place.
Change-Id: I18b06d09c1eda15122975b7169ca7a3372df6054
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
Refactor the current app CFBundleIdentifier support:
handle frameworks as well. Add @BUNDLEIDENTIFIER@
placeholder to the OS X info.plist.lib templates.
This means the Qt frameworks will now get a valid
CFBundleIdentifier entry the same way as app bundles:
by extracting the identifier prefix from Xcode settings
and appending framework name.
Task-number: QTBUG-32896
Change-Id: Ica8f28332a88e37a823c46fca7a2c373157af020
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
Due to the way that the QCC mkspecs are structured, the recent
change to add full optimization support causes the -O2 flag to
be completely dropped from QCC builds in release-with-debuginfo
mode, since the QMAKE_CFLAGS_OPTIMIZE variable is not declared
in any configuration file included by QCC toolchains. This patch
adds the necessary flags to make the QCC toolchain operate correctly.
Change-Id: I4cd93442d59fae7c92fc5219cddb16f367447203
Reviewed-by: Rafael Roquetto <rafael.roquetto@kdab.com>
Add WINRT_MANIFEST.rotation_preference as description which orientation
is allowed or preferred by the app. Valid values for Windows Phone are
portrait, landscape, landscapeFlipped. WinRT also allows portraitFlipped
Task-number: QTBUG-40830
Change-Id: I6b11afcdb72c2c158dadddafc5d90c1d18ab9d8b
Reviewed-by: Andrew Knight <andrew.knight@theqtcompany.com>
Most of the settings there end up overwritten by the clang.conf include
that comes afterwards, except for a few things such as QMAKE_LINK_C,
which remains set to "gcc" and breaks things when one uses
CONFIG=use_c_linker.
QMAKE_LFLAGS_NOUNDEF was coming from g++-unix.conf, though, so we now
manually set it in freebsd-clang's qmake.conf.
Change-Id: Ibd16f59d43eb19e72adf4919da9ce3007100b60f
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@theqtcompany.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
While it does not look like the clang-based mkspecs had any problems so
far with not having QMAKE_LINK_C and QMAKE_LINK_C_SHLIB defined, it
makes sense to set them to $$QMAKE_CC just like the GCC-based ones so
CONFIG=use_c_linker works as expected.
Change-Id: Ib660d12b001dd7a877b6f03e79715db08a272968
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@theqtcompany.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
Defaulting to absolute_library_soname on configure -rpath is no longer
necessary as now we support @rpath install name ids on OS X and iOS.
This also sets QMAKE_SONAME_PREFIX to @rpath for Qt modules when built with
rpath configuration.
This makes Qt libraries relocatable on OS X. Qt SDK is not yet relocatable
though, because plugin location (including cocoa plugin) is still resolved
using absolute path (see QTBUG-14150), also there are several absolute paths
hardcoded in qmake mkspecs pri files.
Task-number: QTBUG-31814
Change-Id: Ie9dffefcd2a946c1580293d433621c1adb7e06c4
Reviewed-by: Jake Petroules <jake.petroules@petroules.com>
This is triggered only when app is using Qt and Qt was built with "rpath"
configuration and project does not specify QMAKE_RPATHDIR explicitly.
Added rpath is made relative to app binary location if target path lies inside
Qt SDK, so all SDK bundled tools and examples will work automatically without
any changes. Tests are an exception here, since they are being run from their
build location by CI, we may not use relative rpath that work only in install
location.
Task-number: QTBUG-31814
Change-Id: I3690f29d2b5396a19c1dbc92ad05e6c028f8515b
Reviewed-by: Jake Petroules <jake.petroules@petroules.com>
Tested with GCC 4.9, Clang from XCode 5.1 and ICC 15 beta.
Clang 3.5 (pre-release) cannot compile qtdeclarative yet with -Werror
due to invalid C++ code there that calls member functions on null
pointers.
Change-Id: Ic2845371a1899716985bc0813dfb820fa418e207
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Not wayland. Use the default of eglfs coming from linux_device_pre.conf.
Qt 5.4 includes QtWayland and the platform plugin from there may get built
unexpectedly. The result is that the Pi setup that worked with 5.3 and eglfs
stops functioning.
Task-number: QTBUG-40538
Change-Id: If894c7ddd7b40a22272797d94ce1a545b7ab43f2
Reviewed-by: Louai Al-Khanji <louai.al-khanji@theqtcompany.com>
Reviewed-by: Andy Nichols <andy.nichols@digia.com>
when a module delegates to another module (as the activeqt ones do), it
doesn't have a master header to be included. we could derive the real
master header by doing a transitive dependency resolution and some
filtering, but that seems unnecessarily complex.
Task-number: QTBUG-41892
Change-Id: Ie7ce51a837ac06e929b204ec734206c11b3ae241
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
Change-Id: Ib410584ba2c1fe342efb18eb955273090d36db8f
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
... to avoid that inherited MAKEFLAGS turn out to be incompatible with
the make we choose.
Task-number: QTBUG-39527
Change-Id: I47d4cec58b0643cc5d97868e70b24f7f37e964bb
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
This reverts f0ee55c00. VERSION actually makes sense on Windows,
because it embeds a VERSIONINFO resource into the DLL that can
be inspected by the user.
Task-number: QTBUG-37961
Change-Id: I6b81b5aa999eba16cb8d9a4d61bd596310af46b9
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
10.6 is no longer supported.
Change-Id: I4c799ba2a9622aa1dd8a79ff70608b50b2bbd26a
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@theqtcompany.com>
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
The same funcionality is already supported, so we avoid confusion.
The corresponding mkspec is name "linux-clang-libc++"
Change-Id: Ib087595298b48c73ad5da8d92cca2d1bac89f2be
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
Since commit cd1dff75, we use QMAKE_LFLAGS_CONSOLE when linking DLLs that
are built with CONFIG+=console. Thus, we must not pass options that are
specific to linking executables.
[ChangeLog][qmake] WinCE makespecs must not add /ENTRY: to
QMAKE_LFLAGS_CONSOLE and more. The flag is hard-coded in console.prf now.
This is a side effect of making it possible to specify a subsystem for
DLLs.
Change-Id: Ib481fd45b12140f9f05bf123db7152a3ddf0fa04
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
Pass QMAKE_LFLAGS_WINDOWS and QMAKE_LFLAGS_CONSOLE to QMAKE_FLAGS
regardless of the project template.
The /SUBSYSTEM linker switch is not exclusively meant for executables
but can also be applied when linking dynamic libraries.
This is needed when building DLLs for Windows XP with VS >= 2012.
Task-number: QTBUG-41504
Change-Id: I5966cba1b6756e15275fa5d7fdbc42b99c95c07b
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>