[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>
As planned for 5.6, QtMultimedia now uses GStreamer 1.0 over
0.10 when available.
This means the binary packages will be based on GStreamer 1.0.
Task-number: QTBUG-47920
Change-Id: I9a18569ff96902116f0f6a759c185a5896f520d5
Reviewed-by: Lars Knoll <lars.knoll@theqtcompany.com>
SecureTransport is now the default SSL backend on OS X.
Users can still choose the OpenSSL backend by passing the -openssl,
-openssl-linked or -no-securetransport option to configure script.
[ChangeLog][Important Behavior Change] Make SecureTransport the default SSL backend on OS X
Change-Id: I7a4edfdb72e63975d6b31435969702f8e86a10f2
Reviewed-by: Richard J. Moore <rich@kde.org>
Reviewed-by: Morten Johan Sørvig <morten.sorvig@theqtcompany.com>
[ChangeLog][QtCore][Logging] Systems with syslog may now pass -syslog to
configure to send logging output to syslog.
Change-Id: I80d58ee6e70d8deb2409fc666e7e7f2d7f52b8e1
Reviewed-by: Kai Koehne <kai.koehne@theqtcompany.com>
Also solves a warning printed:
configure: 4200: shift: can't shift that many
Change-Id: Ib306f8f647014b399b87ffff13f295e2cdb7f8d7
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
The pipe2/dup3/accept4 functions and SOCK_CLOEXEC are quite old nowadays
on Linux. They were introduced on Linux 2.6.28 and glibc 2.10, all from
2008. They were also picked up by uClibc in 2011 and FreeBSD as of
version 10.0. So we no longer need the runtime detection of whether the
feature is available.
Instead, if the libc has support for it, use it unconditionally and fail
at runtime if the syscall isn't implemented.
Change-Id: Ib056b47dde3341ef9a52ffff13efcc39ef8dff7d
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
There's really no difference between them, other than -force-pkg-config
skipping the check if the tool is even available and printing a warning.
Change-Id: I04cb83c6649ef73866a84032ea46093c4a00ce00
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
Otherwise the information is missing from configure's output summary:
EGLFS ................ no
EGLFS i.MX6....... .
EGLFS KMS .......... no
EGLFS Mali .........
EGLFS Raspberry Pi .
EGLFS X11 .......... no
Change-Id: Iee8cbc07c4434ce9b560ffff13cb331778c70261
Reviewed-by: Laszlo Agocs <laszlo.agocs@theqtcompany.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
The option is named securetransport, not secure-transport.
Change-Id: I5efdde6d751cbc7e9717c6bfe0add93c5dbd2ec9
Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
This way we can exclude the connection plugins from being compiled
if it's off.
Change-Id: Ic5ea1d35ea9f5929420268a1aefebf0464d8520b
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
We build our 32 bit Linux packages nowadays on Red Hat 64 bit with
-platform linux-g++-32. Honor this when selecting the right licheck
binary to use.
Change-Id: I08527295bc461c8cdd07e81a10c93a8f010b787d
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
Switch to using the pointer events from XI2 when touch is available (i.e.
version is >= 2.2). This allows us to select and grab the button and motion
events together with the touch ones. This prevents the issue of not getting
touch events when grabbing via the plain xcb functions.
To prevent touch sequences from being replayed after ungrabbing (for example after
dismissing a popup that caused a grab), we try to accept touches via XIAllowTouchEvents.
Unfortunately this leads to a deadlock and therefore we can only do it when we know
we have a new enough libXi. This is a configure time check which is not ideal since
the system on which apps run can have a newer libXi than the machine that did the Qt
build, but seems like the best we can do.
The environment variable QT_XCB_NO_XI2_MOUSE can be set to 1 in order to prevent
processing mouse events through XInput. This restores the old behavior with broken
grabbing.
[ChangeLog][QtGui] Pointer event delivery on X11 is now done via XInput 2.2+ when available.
Done-with: Michal Klocek <michal.klocek@theqtcompany.com>
Done-with: Alexander Volkov <a.volkov@rusbitech.ru>
Task-number: QTBUG-43525
Task-number: QTBUG-45054
Task-number: QTBUG-30417
Change-Id: I7cb2002b31bef4cd527aa427549dcf2d5467968e
Reviewed-by: Laszlo Agocs <laszlo.agocs@theqtcompany.com>
Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.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>
In the unix commercial packages, licheck so far has been a shell
script that redirected to the 'right' licheck. To simplify things
we now resolve the right executable path in configure itself.
Change-Id: I1183d000a11bf42729f3e0405a0bc1d4b618933c
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
Starting with Qt 5.5 qtconnectivity on iOS is supported
Change-Id: I30430ce351b7e2fc8031c5719bed5354ed234cc7
Task-number: QTBUG-45988
Reviewed-by: Timur Pocheptsov <Timur.Pocheptsov@digia.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>
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>
subsequent tests should depend on the detected linker, obviously.
Change-Id: I09aa9f1f2ef789f0ae0829f9122211fc4e1ad518
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
this function does not just compile, but it also links, so the output
file should have no object file extension.
Change-Id: I65dd9bd334478545ceeabe9d1aacb44d9583cdd7
Reviewed-by: Joerg Bornemann <joerg.bornemann@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>
Unlike all the QMAKE_* command variables it requires the arguments "cqs"
to be part of the variable. This means we need to append the arguments
for compatibility with autoconf.
Change-Id: I961e89d506612873ba1f9cbecff97c448e83a5a2
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
that also covers linkerSupportsFlag(), which did it explicitly so far.
Task-number: QTBUG-45010
Change-Id: I2eb0bd5282fd2f24c9ab8041c3536a6115caa765
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
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>
When using default configure value (auto) for libudev + libinput and
libudev is not available, disabling libinput failed and it is enabled
even it requires libudev to work.
Change-Id: Ia2ead66c5cebc8658f2c29445f5c81c9f8b30dc8
Reviewed-by: Laszlo Agocs <laszlo.agocs@theqtcompany.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
Allow setting of pg_config path for cross compilation where pg_config is
not in the command search path (do the same as for mysql_config).
This is e.g. used for buildroot (see [1] for details).
[1] http://lists.busybox.net/pipermail/buildroot/2015-February/119714.html
Change-Id: I11d084496ffbb6f8bc350dbcf2971a5be8e3b346
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
Recently, a dependency on Qt D-Bus was added to
Qt Platform Support if Qt was configured to support it. Since
Qt defaults to checking for Qt D-Bus at run-time, the platform
plugin and thus all applications would depend on libQt5DBus.so.
Qt D-Bus really doesn't make much sense on Android, so we default
to disabling it instead on this particular platform. People
with use cases where this might be used can still configure Qt
to include support by passing -dbus to configure.
Note that this makes OS X and Linux builds consistent with
Windows builds, where Qt D-Bus was already disabled because
the dbus.h header was missing.
Change-Id: Id733ff00918c706bf1aa5a667299e7d578b4b0c1
Task-number: QTBUG-44581
Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
While the -fuse-ld=gold flag is related to linking, it is an argument to the
compiler driver to tell it what linker to execute, NOT an option to tell the
linker to behave differently.
So it shouldn't get prefixed with -Wl when passed though the compiler driver.
Change-Id: I2b50cb6d2bd8911aa9b305cd8e755d4dfe923041
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.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>
apart from being more readable, it has the side effect of being resistant
to spaces in the build path.
Change-Id: Id12603c3a96765913e747fba4070d49de0705315
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
Including math.h can pollute the default namespace, and break
some compilers if cmath versions of the method are declared as using.
Switching to C++ math functions also greatly simplifies handling of
float qreal as C++ automatically chooses the right method.
[ChangeLog][QtCore][QtMath] qmath.h no longer includes math.h, so any
sources depending on that indirect inclusion may fail to build.
Change-Id: I4d0e331dafba354ec05dc5052e61ef4ff8d387fe
Reviewed-by: Rafael Roquetto <rafael.roquetto@kdab.com>
Qt Multimedia can be compiled with either GStreamer 0.10 or 1.0.
0.10 takes precedence over 1.0 if both are available (1.0 will be used
by default in Qt 5.6).
Auto-detection can be overridden with -gstreamer <version>.
Change-Id: I74d58d2c146c842902375b4d1e5e6e96d32addac
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
To ensure QtCore can be rebuilt and get the exact same results,
it is undesirable to hardcode the build date into the library
Also deprecate QLibrayInfo::buildDate since it is relies on the build
date. QLibraryInfo::buildDate was originally meant for evaluation
licenses and such, but isn't used for that any longer.
Change-Id: I98e91ca3e55f877e6ac0e02de289dc29422fc9da
Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
Option -separate-debug-info is not enabled by default, even help
claims it to be enabled.
Change-Id: I4a986acbb2b7f2c7bf7feaaff29bcc6bfadcc559
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@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>
It will be used on Unix systems if the required dev package is
present. (Detected by a configure compile test.)
You can configure with -no-libproxy to avoid the dependency.
It will not be used on OS X or Windows, as we already implement
the native API for getting proxies there.
Currently we use whatever PAC runner is provided by the distro
for running PAC scripts - if we want to run PAC scripts using
Qt, then we would have to implement a pacrunner plugin to libproxy.
Note that their webkit pacrunner is using javascriptcore already.
Tested using the libproxy 0.4.7 that is included in Ubuntu 12.04.
Re-tested using Ubuntu 14.04 which ships libproxy 0.4.11.
It works except when both socks and http proxies are configured in
the manual settings - in that case libproxy returns only the socks
proxy. This seems to be covered by libproxy issue 119.
[ChangeLog][QtNetwork] Introduce libproxy backend for Unix platforms,
enabled automatically if the required dev package is present
Task-number: QTBUG-26295
Change-Id: I521c0a198fcf482386ea8a189114a0077778265c
Reviewed-by: Richard J. Moore <rich@kde.org>
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>
this cuts down the bloat in the binaries and the binary patching
requirements in the installer.
as a side effect, the sysroot and makespecs are not binary patchable any
more as well, which is ok, as the installer does not do it anyway.
we now also warn if -[host]<foo>dir is not a subdir of -[host]prefix, as
putting things outside the prefix is anti-thetical (the obvious
exception being the (unix-only) -sysconfdir).
Change-Id: I878f0e71a4dfcfd55b2f8b1cf3045b98b502569b
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
there is no reason at all for it to be an external script.
Change-Id: I836f38dd06f61350dd9f83015857abb07981c62d
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
We don't yet have API compatibility, apparently, so we need to keep up
with those changes.
Dropping support for older versions is not yet acceptable since some distros
(in particular current version of some embedded ones) may ship these versions.
Change-Id: Ibea780abd76c4b89661012dfea46868b432ded42
Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
Add support for SSL on iOS/OS X by adding a SecureTransport based
backend.
[ChangeLog][QtNetwork][QSslSocket] A new SSL backend for iOS and OS X,
implemented with Apple's Secure Transport (Security Framework).
Change-Id: I7466db471be2a8a2170f9af9d6ad4c7b6425738b
Reviewed-by: Richard J. Moore <rich@kde.org>
With change macro is in line with QT_NO_<feature> style of naming
macros. This way it will also be automatically added to file
mkspecs/qmodule.pri in QT_NO_DEFINES value.
Change-Id: I111d07fd015994290c54e00e8aac2d6dbdb7de9e
Reviewed-by: Ulf Hermann <ulf.hermann@theqtcompany.com>
Commit d44781730c disabled use of pkg-
config on Mac, which in turn automatically disables all of the tests
that depend on pkg-config too, like D-Bus. If you then use the -dbus
flag, configure would error out telling you that it couldn't find D-Bus,
despite it being there.
Now we print some helpful information on error and extra information for
finding out why it may have got disabled.
Change-Id: Ic4e41c58d62d80eb1a0f3ca1c93529e049aaf231
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
It was not possible to determine whether Qt is being built as
a shared or static library in the config tests, as that information
was not added to QMAKE_CONFIG used in the compileTest function.
For linking to ICU on Windows, there is logic which depends on
it in config.tests/unix/icu/icu.pro, but was broken for the static
target, as the expected library name was not found (icuXX -> sicuXX).
Change-Id: I22c2d543ea14feebbad36961c9a29e99f66323ff
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
Adds a configure check for System V and POSIX IPC.
System V takes precedence over POSIX IPC, and if both
are not supported, QT_NO_SHAREDMEMORY and
QT_NO_SYSTEMSEMAPHORE are defined.
This patch is a forward-port from 4.8 branch
(6ef4abaa9cd7d465cbae5cbf8cb4664bef387d10).
Change-Id: I3ec20342f0f0266843479634109b67c6989dd296
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Commit a2da88712f was incomplete. Though
it did enable building of QtDBus without the libdbus-1 headers, but it
still kept looking for it. We don't need to do it anymore if CFG_DBUS is
the default (runtime), so skip the actual check.
This commit does not change behavior. All it does is skip the D-Bus
tests if we're about to use dlopen'ed libdbus-1.
Change-Id: I3947443c9ef6cc409cb6b154564f8af6fb5de84e
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
When CFG_DBUS != "no", we enable the build of linuxaccessibility in
src/platformsupport, which requires QT += dbus to work. When no dbus
headers are found, CFG_DBUS is set to runtime, which means we'll
enable a11y but "dbus" will not end up in qconfig.pri and therefore
src/dbus is not built at all (and not before platformsupport). Therefore
the build in platformsupport breaks.
So even if CFG_DBUS is set to "runtime" we need to make sure that dbus appears
in qconfig.pri.
Task-number: QTBUG-43205
Change-Id: Ibbe5e66552226cdcc1ce16fb83556406f3bb0e09
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Supports relative pointer, axis, keyboard and touch events.
libinput support is only available in combination with libudev.
libxkbcommon is required to perform key mapping. For now the
default keymap is used always (selected when building xkbcommon).
[ChangeLog][QtGui] Added a plugin to get mouse, keyboard and touch events
via libinput.
Change-Id: I469d8992c0cd3e79225cefaeb931697baf86a92b
Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
... and use it with the opengl compile tests.
Change-Id: I402574be332e41c721a758e63a233d193224f16b
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
The compile.test script expects -I... parameters. Passing just the
include path is therefore wrong. Pass cflags instead.
Change-Id: I0f9b155d1e710fe7d77c64a867a89290d4f31db3
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
Most of QtDBus already needs very little from libdus-1, so create an
extra header containing the minimum API we actually need.
One large advantage of this solution is that now QtDBus can always be
enabled, even if the system doesn't have libdbus-1 installed. This is
interesting on OS X, where libdbus-1 is often installed by Homebrew or
MacPorts, which may include extra libraries we don't want in our
packaging.
Change-Id: I1b397121ec12eeca333ef778cf8e1c7b64d6b223
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
Conflicts:
dist/changes-5.4.0
7231e1fbe2 went into 5.4 instead of the
5.4.0 branch, thus the conflict.
Change-Id: I70b8597ab52506490dcaf700427183950d42cbd1
There was an override for Android which would disable the configure
error when doing an OpenSSL build without having the headers
available. This has several times lead to packaging errors where
OpenSSL gets disabled but it's not noticed before the package testing,
which delays the process.
I'm not 100% sure of the reasoning behind the override, but I think
it's a left-over from Necessitas where OpenSSL was statically linked
into Qt.
Change-Id: I2bdc33fb60c59cd493987959d4bbbbb4e9735a92
Task-number: QTBUG-42851
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@theqtcompany.com>
Reviewed-by: BogDan Vatra <bogdan@kde.org>
Reviewed-by: Kai Koehne <kai.koehne@theqtcompany.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.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>
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>
configure script has been silently accepting whatever flags that begin
with "-feature-" even if the feature name does not exist at all.
Since the script validates many other flags, this behavior can make
users believe flags they supply is valid when it isn't.
Besides, this option is currently not protected against typo in any way.
This commit verifies those flags against content of
"qtbase/src/corelib/global/qfeatures.txt" and fails if supplied
flag is not a valid feature name.
Change-Id: Ib19ec66dd5558fb5491e8e080ce07d4807d94c1f
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@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>
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>
We set the variables to empty when we start processing, so ${FOO-foo}
will never print "foo". We need to use ${FOO:-foo}.
Change-Id: I00c28edb10d8eaa09df689905a302b576b246806
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
Fixup after d44781730c, which would override whatever the user passed
on the command line.
Change-Id: If4d260801866ff53de3e6dfd6d37016fd8453d8d
Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
GCC and Clang support compiler intrinsic error detections tools:
address, memory, thread, undefined
Let users conveniently enable it in qmake, for instance with
CONFIG += sanitizer sanitize_address
Also add a -sanitize [...] option to configure to use it by default
for both the Qt libraries, and user applications.
[ChangeLog][configure] Added support for GCC/Clang -fsanitize= options
Change-Id: Ie5418abcdf41842566df510d7707e41739e66f87
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
The code which extracts style assets for the Android style
is licensed under the Apache license, which is not compatible
with LGPLv2.1. It is, however, compatible with LGPLv3. This
means that the Android platform plugin cannot be LGPLv2.1
as long as this code is included.
To minimize licensing confusion, we default to only providing
LGPLv3 for Android. If you want to build a LGPLv2.1-compatible
library, you can add -no-android-style-assets to the
configuration. This will in turn enable the LGPLv2.1 in
the configure output, and it will disable the extraction
code in the platform plugin.
Running the Android style with an LGPLv2.1-compatible platform
plugin will work, but it will look horrible.
[ChangeLog][Android] Default open-source license for
Qt for Android is now LGPLv3. For compatibility with the LGPLv2.1
license, add "-no-android-style-assets" to your configuration.
Change-Id: I6c7b52140f38138520871fa7c69debbb4ee90e6c
Task-number: QTBUG-41365
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
Reviewed-by: Christian Stromme <christian.stromme@digia.com>
This license file has to exist, since much of the code is licensed under
LGPLv3.
Change-Id: I2795a7cc62f6de65a35921e38d2ab5f8f0233f71
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
We don't have an explicit XPLATFORM_OSX, but XPLATFORM_MAC applies
to both OS X and iOS (as now clarified), so we move the default
out of the XPLATFORM_IOS scope and to a XPLATFORM_MAC scope.
Change-Id: I6b9ba9c881c28def08b9ab863d0165fbd9dedc6d
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>