When MSVC supports ref-qualified members, we need to ensure that
qstring_compat.cpp can see the non-qualified definitions in qstring.h,
which means no precompiled header.
Alternatively, for a bootstrapped build we could not compile
qstring_compat.cpp or #ifndef the functions.
Change-Id: I8ece34503060f0b4b0f8f2df2fb9b0fb1311e269
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
Previously the linker options were overquoted which resulted in
a broken Makefile.
Change-Id: I2a77ad07564fc75533d6e8f29b5cbe52389bcce5
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
Commit 773dd01 introduced a general mingw platform scope, which
is cleaner and more flexible than matching the spec name.
Change-Id: Ie3a9cb791a83f7c8a51bc4e23069190c452ab521
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Fixes ARM build, as the NEON drawhelpers and image conversion functions
were ifdef'ed out.
Follow-up to 1b12c0608b.
Change-Id: I0b5e89c8f445741432db2dfe1f8d971b971c8605
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
the diff -w for this commit is empty.
Started-by: Thiago Macieira <thiago.macieira@intel.com>
Change-Id: I77bb84e71c63ce75e0709e5b94bee18e3ce6ab9e
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
This is an alternative plugin for the windows platform. It shares most
code with the current windows plugin, but substitutes a direct2d-based
paint engine for window backing stores and pixmaps.
Change-Id: I78fafd9c5871fa090b49436f5b40ec80f8789f8b
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Those libraries are contained in QMAKE_LIBS_CORE and
GetSpecialFolderPath() is present in all supported versions.
Change-Id: Iae40714e0f234625b063aeb50e29fc79c4aaa6ea
Reviewed-by: Björn Breitmeyer <bjoern.breitmeyer@kdab.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
While there is no implementation for accessibility yet, enabling it allows
the interfaces to be used and an accessibility plugin to be developed
for this platform.
IAccessible2 and MSAA bridge autotests are disabled for this platform.
Change-Id: I2bfd07f6b21ca469b27d88ef11df723ac8ff8202
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: Oliver Wolff <oliver.wolff@digia.com>
This is the first step in implementing an in-place conversion of QString
to QByteArray. This requires ref-qualifiers in member functions so we
know that we have an rvalue QString.
Converting from UTF-16 to Latin1 always requires half the memory.
For conversion from UTF-16 to UTF-8, the typical string will also need
the same memory or less: characters from U+0000 to U+007F consume one
fewer byte; characters from U+0080 to U+07FF and from U+10000 to
U+1FFFFF occupy the same space in UTF-8 and UTF-16; it's only the ones
from U+0800 to U+FFFF that consume more space in the UTF-8 string.
For the locale's 8-bit codec, we can't be sure and the code (currently)
needs to go through QTextCodec anyway.
This requires a #define set before #include'ing "qstring.h". However,
since qstring.h is included by the QtCore PCH, we need an extra qmake
compiler without the PCH flags to compile this .cpp.
After this change, the distribution of calls in QtCore, Network, Gui,
and Widgets is as follows:
const & &&
toUtf8 31 (74%) 11 (26%)
toLatin1 79 (77%) 24 (23%)
toLocal8Bit 26 (16%) 138 (84%)
Change-Id: Idd96f9ddb51b989bc59f6da50054dd10c953dd4f
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
Otherwise build will be broken due to no support for it.
Change-Id: If5ccd7fbcf8340600c5b12081ac4f7e2c6b420fd
Reviewed-by: Oliver Wolff <oliver.wolff@digia.com>
For the conflicts in msvc_nmake.cpp the ifdefs are extended since we
need to support windows phone in the target branch while it is not there
in the current stable branch (as of Qt 5.2).
Conflicts:
configure
qmake/generators/win32/msvc_nmake.cpp
src/3rdparty/angle/src/libEGL/Surface.cpp
src/angle/src/common/common.pri
src/corelib/global/qglobal.h
src/corelib/io/qstandardpaths.cpp
src/plugins/platforms/qnx/qqnxintegration.cpp
src/plugins/platforms/qnx/qqnxscreeneventhandler.h
src/plugins/platforms/xcb/qglxintegration.h
src/widgets/kernel/win.pri
tests/auto/corelib/thread/qreadwritelock/tst_qreadwritelock.cpp
tests/auto/corelib/tools/qdatetime/tst_qdatetime.cpp
tests/auto/gui/text/qtextdocument/tst_qtextdocument.cpp
tools/configure/configureapp.cpp
Change-Id: I00b579eefebaf61d26ab9b00046d2b5bd5958812
For plugins that are built with a different (but binary compatible)
MSVC runtime than Qt is built with, the plugin's embedded manifests
prevent a successful loading of the plugin.
There's no need for having the plugins tied to a certain CRT version
as they are bound to Qt's CRT version.
Task-number: QTBUG-1297
Change-Id: I6ae4cadd99ee4657e613b07a40141a7bae08424f
Reviewed-by: Oliver Wolff <oliver.wolff@digia.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Plain QNX 6.5.0 does not have a libpps, the new QNX
has a libpps and BlackBerry has it as well. So we need
a configure check to not open another mkspec for this
platform. This fixes the plain QNX 6.5.0 build.
Change-Id: Id4b3876f2385bcb5f3df426945532e7e26133f24
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
Reviewed-by: Rafael Roquetto <rafael.roquetto@kdab.com>
it's entirely pointless to flood the user with information and force him
to scroll back when he most likely just made a typo.
apart from that, this reduces the data dependencies, thus easing further
refactoring.
Change-Id: I7b24274d453de54a4f02481a66d77e27d4ab0657
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
The findFile would need to look though all include
paths the compiler is supporting, which can be very hard
to support for multiply compilers. It is way easier to
use a compile check to catch all include paths the
compiler supports. This fix is needed to find correctly
ICU under QNX.
Task-number: QTBUG-34743
Change-Id: I4f755042a76882b304b058355cf54e37b25df61d
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
This is done to autodetect Neon support for QNX.
It might make sense for other platforms as well,
so enable the compile check for all target platforms.
Task-number: QTBUG-34743
Change-Id: I1d149d1942ce0caa288cb56491e4a0ba455dda7d
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
Some compile checks may depend on the architecture,
e.g., NEON is only available for ARM, so it makes no
sense to check it for this architecture. Therefore
we need to run the architecture check before we
auto detect settings.
Task-number: QTBUG-34743
Change-Id: I53208d25b0ae0fd93cccc7394307b8ee286576a2
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
Compared to other platforms there is no concept of a console
application in WinRT. Hence all applications need to be UI
applications and use winmain.
Furthermore winmain takes care of launch arguments to be
properly converted to arguments passed to user's main().
There is a chicken and egg problem with config.tests as
compilation needs to have an existing entry point which is not
available at configure time.
Hence hardcode the entry point to main for configuring to WinRT.
Those tests are pure compile tests, so the logic of the test
does not change.
Change-Id: I4d3186691a8440845c24b2529cc9646e86dfd8da
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
This way, a Qt compiled with qreal=float and one linked
with qreal=double can not be linked by a single downstream. That is
diagnosed at cmake-time.
Change-Id: I9183dbcfef181fadea5321d3154948e8258e4a2a
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
On modern ARM CPUs there is no speed difference between
float and double anymore, so let's rather use double for
qreal to avoid rounding and precision issues. Like this
we also get much better compatibility with our desktop
OSes.
This is not binary compatible on ARM, but the old behavior
can be restored by passing -qreal float to configure.
Change-Id: I2a4b61e19a3dfa6b0bd76734cecf2634c97207fc
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
on the way, this significantly simplifies the code.
Change-Id: I24f0a517e62cc4b913ffef5cab096e721653c013
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
We used to compute the default exclusive build directory, eg 'debug', at
configure time, and then set OBJECTS_DIR, MOC_DIR, etc to include this
hard-coded default exclusive build directory. We then had to run a post-
process step where we replaced the 'debug' part with the current actual
exclusive build pass, eg 'release', resulting in long-standing bugs such
as QTBUG-491 where we end up replacing parts of the build output dirs
that were not part of the original exclusive build directory.
We now set the OBJECTS_DIR, MOC_DIR, etc defaults in configure like
before, but they do not include any exclusive-build information. The
exclusive build directory is handled as a separate step in default_post
where we adjust all entries in QMAKE_DIR_REPLACE to be exclusive
directories.
For backwards compatibility the new exclusive build behavior is only
enabled for variables named by QMAKE_DIR_REPLACE_SANE, which for Qt
itself applies globally to everything but DESTDIR, and for libs and
tools also applies to DESTDIR. The reason for leaving out DESTDIR in
the general case is because many tests and examples assume the old
behavior for DESTDIR. A side effect of including all the other
variables for Qt libs and tools is that the PCH output dir will be
uniformly set, which has been an issue on Windows in the past.
The addExclusiveBuilds function now takes two or more arguments,
each argument being the key for an exclusive build, which can be
customized eg. using $$key.{name,target,dir_affix}. Passing more
than two arguments results in three/four/etc-way exclusive builds,
eg debug/release/profile. Exclusive builds can also be combined, eg
static/shared + debug/release by making two calls to the function.
We also handle individual targets of combined exclusive builds,
eg static/shared + debug/release, meaning it is possible to run
'make debug' to build both static-debug and shared-debug.
Task-number: QTBUG-491
Change-Id: I02841dbbd065ac07d413dfb45cfcfe4c013674ac
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
Avoid need to modify qnx.pro in src/plugins/platforms/qnx to
build with imf support. By default detects if necessary headers
and libraries are available. Can also be explicitly requested or
disabled with -imf and -no-imf options.
Change-Id: I3f9780fc189a33e4c93fb4f950111121f8e947c3
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
Newer ICU versions do not generate a .lib file any more ...
Also the check doesn't take e.g. static debug builds into account.
Instead of trying to enumerate all possible variations, just rely on the
header check. That's what we're doing for the other libs, too.
Change-Id: Idc0527f0e8ad90f298337d4ab635c7aa6a35c351
Reviewed-by: Jonathan Liu <net147@gmail.com>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
The configure-time procedure used on Windows does not currently
perform the same tests to determine the width of a pointer as are
performed on Unix-based builds.
This causes QT_POINTER_SIZE to be undefined in the generated
qconfig.h file. This in turn breaks compilation of various Qt modules
such as QtDeclarative.
This patch adds the same level of support for automatically
determining the target platform's pointer size, as is currently
offered to Unix users.
Change-Id: I93838c1759b14089ba9f4daf442048fb5c8da738
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
The default has already been changed in the configure shell script,
but configure.exe needs the same change to be compatible with the
current NDK (which no longer contains the 4.7 toolchain)
Change-Id: Icd6474c3c9b9bbefbba5a1273a466c7ff099b7e0
Reviewed-by: Paul Olav Tvete <paul.tvete@digia.com>
On Linux, we will do a configure test to determine whether JIT should
be turned off when compiling JavaScriptCore in the QtScript module,
but this test is never run on Windows. The result was that JIT was
disabled on Linux and enabled on Windows, and compilation broke on
Windows.
Task-number: QTBUG-33780
Change-Id: I37991c6da98b35330c07c54f2a0b143d20780c91
Reviewed-by: BogDan Vatra <bogdan@kde.org>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
Reviewed-by: Paul Olav Tvete <paul.tvete@digia.com>
sqlite cannot be supported as Windows phone is
missing the needed memory mapping functionality.
Change-Id: I20e89292b9c7802c7402e8095854b72a9f21e614
Reviewed-by: Andrew Knight <andrew.knight@digia.com>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
Reviewed-by: Maurice Kalinowski <maurice.kalinowski@digia.com>
As a side effect, this fixes wrong line break in "Third Party Libraries" section.
Change-Id: Ie6510fa94626a1c586621948a4681efdcf61f8b2
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
Windows configure does not have -device-option yet.
A hack for android already generated the
qdevice.pri. But it did this even if no android
was build, so merged the device-option with the
android generation of qdevice.pri. The qdevice.pri
is generated earlier in the configure steps than
before to match the linux configure and allow
to set device options before the config.tests
are run.
Change-Id: I753cf0d5eba1479792a685d6e1f5acb38b970893
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
this adds the possibility to put the actual qt installation outside the
sysroot it is configured for. this makes it possible to install an
x-built qt without "polluting" the sysroot, which makes it possible to
have read-only sysroots, and multiple qt builds for one sysroot.
-prefix is the location within the sysroot as seen by the target itself,
and gets "burned" into QLibraryInfo in QtCore.
-extprefix is the location in the host file system and gets "burned"
into QLibraryInfo in qmake. if it is not specified, it defaults to the
sysrootified prefix, which is the previous behavior.
Task-number: QTBUG-26680
Change-Id: Ia43833c4e27733159afeb8c8b9b2d981378d0cd1
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
both variables are available class-wide anyway.
Change-Id: I97c13de9ead44638e9310b62f02d8cd1c910df94
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
well, not really - qt_parts.prf will still create one, but it will be
empty.
apart from being cleaner, this now finally makes it possible to load an
unconfigured qt source tree into qtcreator without random parts of the
tree being missing from the project explorer.
Change-Id: Ida7ee77ecb450af05bfa66106caf2067b02f1a7f
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
This option is required to build qtmultimedia without
Windows Media Foundation backend. In this case,
a full DirectShow backend will be build instead.
Change-Id: Ib29ba81ca6cbb00b609cc97fab7da29e61d31d6d
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
Reviewed-by: Yoann Lopes <yoann.lopes@digia.com>
the built host tool may need to know what the target architecture is,
e.g. mkv8snapshot does.
Change-Id: Ie5b1f6a07fa082d212e7c5b54289de49fd74dbcf
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
because of popular confusion.
the packaging scripts now need to use -no-compile-examples explicitly.
Task-number: QTBUG-32449
Change-Id: Iecab1f345afe21e540204fe69a2292ef932cbb61
Reviewed-by: Andy Shaw <andy.shaw@digia.com>
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
Add mkspec win32-msvc2013 and make VS 2013 known to configure and
qmake.
Change-Id: I6e63a4d679727a8a3f068f377956185996d72bce
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
A previous commit (7582bb5) added a line to disable xkbcommon
when building for Android. A similar line needs to be added to
handle QNX builds.
Change-Id: I34e91d989567b17e7e21b87d9c377360e4e56f68
Reviewed-by: Andreas Holzammer <andreas.holzammer@kdab.com>
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
shifts the makefile generation one directory level up.
this allows the top-level configure to leave the makefile creation
entirely to the qtbase configure.
this is not very clean modularization-wise, but consistent with -skip.
Change-Id: I7ee2d2f29f2e6619d61fe9b55faa0bacdf3c44c1
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
it's already done by the working directory.
the unix configure already did it that way.
Change-Id: Ia88d0877a2e24bc40a7083c2164982dec47f913b
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
the directory is sufficient nowadays.
the unix configure already did it that way.
Change-Id: I887e5ad594aef1f7bf5f4f92a6bdf0a13e4d0372
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
instead, use the files directly from the source dir.
Change-Id: I03b728c66de6e03cade6dc153dcc78cea8e3f606
Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
Reviewed-by: Martin Smith <martin.smith@digia.com>
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
instead, teach qmake to use the mkspecs dir from the source dir as well.
Change-Id: I9edac11f8997fcb0594d0a67419d4733dd4ed86b
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
amends 0a1b89bff, which took care only of the unix version.
Change-Id: Idb82881a9c47e67c973500721fd499bcf41a848b
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
A top-level vcproj (really a .sln file) only makes sense when sub-
projects are generated too, since the solutions generator will ignore
all non-generated projects.
Originally-by: Marius Storm-Olsen <marius.storm-olsen@nokia.com>
Change-Id: Iff09279d5760b5114a4cfb9b58ad677f2f69fa58
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
the logic in the configures was even trying to express that, only that
nowadays we always ship syncqt, so the tests were kinda pointless.
this frees us from the perl dependency for non-developer builds of
packaged modules (except for webkit, which needs almost every scripting
language on earth anyway).
obviously, this requires that the packaging scripts run syncqt in the
source dir before tarring up the sources. note that for repositories
other than qtbase, the -version argument needs to be passed to syncqt.
Task-number: QTBUG-29465
Change-Id: Ic929ab17a5de4b30fbf48b3aa9bfa3b4d2ef37d6
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
this avoids that syncqt needs to forward to a yet unexisting file (which
will have a yet unknown location, when syncqt is run at packaging time
already).
the %inject_headers syncqt config variable remains, so it can be told
not to purge "foreign" files.
Change-Id: I127ff6e0b7d5702fb0acaee9a5b7940b482d3608
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
this overrides the magic that makes examples only install their sources
in production builds.
packagers may want to force the build of the examples, so they can
package them up for demo purposes.
this is actually why we formerly had the split between demos and
examples ...
Task-number: QTBUG-30788
Change-Id: I5633f69404c5aa6846f5496e8f161a273a7a7da3
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
Reviewed-by: Lisandro Damián Nicanor Pérez Meyer <perezmeyer@gmail.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
it belongs there (technically, it would not hurt to actually call it
from within autoDetection()).
Task-number: QTBUG-31095
Change-Id: I7eb53762513eb9cebfd22317c8f44fe123eb91dd
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
clearly, nobody's been maintaining them for an extended period of time.
Change-Id: I41c6b40026f107d34f7964934f36bc727fb6b795
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
instead, rename it to syncqt.pl and rely on qtPrepareTool()'s new
ability to correctly invoke it as a perl script even under windows.
the wrappers themselves have been trivial at this point, so there is no
added value in keeping them, either.
Change-Id: I77cf65edbcfaa48ed1900defe940d4eb4b82d5b9
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
... and introduce -hostlibdir configure option for symmetry.
the libraries built for the host have no business in the target prefix.
in principle this code would even support dynamically linked host
libraries, but that's currently unused.
Task-number: QTBUG-30591
Change-Id: I8e600fa4911a020fb0e87fbf7ef2f35647c7c4d5
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
Reviewed-by: Ivan Romanov <drizt@land.ru>
Several modules, including DBus, MySQL, and OpenSSL have
configure options of the form <MODULE>_PATH, which is used
on Windows (where pkg-config is not present) to specify the
locations of third-party libraries. These switches had been
implemented by adding extra variables which were referenced
in .pro files, to add the appropriate compiler and linker
switches. This is undesirable because it means there are
two independent paths for adding the switches to the build,
which can get out of sync with each other, and indeed this
had happened for some of the DBus tools.
To remedy the situation, all three of the switches were
reworked so that they added values directly to the principal
variables that are used in the project files. This reduces
maintenance, by ensuring that the pkg-config and non-pkg-config
paths appear the same to the rest of the build system.
Change-Id: Iae342f1d14b79fbcfef9fe38aadc803ad3141799
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
The lack of eventfd(7) switches and auto detection
caused cross-compilations to fail on Windows hosts,
for builds targeting POSIX systems which do
not support eventfd(7), such as QNX and BB10.
Change-Id: Ic8f53c64066ece6f16d4dbc79c089b058401e632
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
For now there's only one architecture per host/target, but
this will change once we start detecting the CPU features
for both device and simulator on iOS.
For convenience we set QT_CPU_FEATURES to the resolved
value of the current architecture, so that simd.prf still
can use QT_CPU_FEATURES directly.
Change-Id: I28e8b339a5c30a630e276165254dba09a3da6940
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
QT_CPU_FEATURES is internal and only used by simd.prf, which is
also internal. This matches the available CPU features which are
detected using config tests and written to CONFIG in qmodule.pri.
Change-Id: I8eb35448e2954a54c228d3617f29afc0283a7db5
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
The default lib and include dirs are resolved using the target
compiler and with a sysroot, so they are not relevant for host
builds.
Change-Id: Iceb2eb865d0732b9a6f5896ad126200ae8e8a04e
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
We now have host_build to distinguish the two, and we load
qconfig.pri from both the host and the target mkspec, with
host_build set correctly.
Change-Id: I8b8b80d5487d10bb1d4585d27d10300f609a7775
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
Upgrades ANGLE to dx11proto (dx11-MRT-support tag), which splits out support
for DirectX9 & DirectX11. The DX9 codepath is used by default;
CONFIG+=angle_d3d11 must be passed to the ANGLE project to build for DX11.
Existing patches to ANGLE have been updated (or removed if no longer
needed), and a patch has been added to make DX9/DX11 codepaths mutually
exclusive.
Change-Id: Ibe13befadb94f04883eca449d0ee1f0da955ff92
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
Reviewed-by: Gunnar Sletta <gunnar.sletta@digia.com>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: Axel Waggershauser <awagger@gmail.com>
REDUCE_EXPORTS -> QT_VISIBILITY_AVAILABLE
REDUCE_RELOCATIONS -> QT_REDUCE_RELOCATIONS
!QT_GETIFADDRS -> QT_NO_GETIFADDRS
These will be used for Android build on Windows.
Change-Id: I2cde989e41dc5b7f9bef1345e935cc7e19aba983
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
the dlls being in lib/ is kind of an accident (a side effect of how
qmake builds them). in fact, the libdir should be entirely irrelevant
for windows deployments (and indeed, the SDK is delivered with dlls only
in bin/).
Change-Id: If47e72b24774721a61ba63847f6132f88ff110be
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: Jocelyn Turcotte <jocelyn.turcotte@digia.com>
this is cleaner than having it parse qmake project files.
the only remaining built-in version extraction is the fallback to
qglobal.h needed for bootstrapping.
as a "side effect", this fixes the build of modules with mismatched
versions centralized in .qmake.conf, as this was simply not handled so
far.
the -mkspecsdir syncqt option goes away, as there is no use case for it
any more.
Task-number: QTBUG-29838
Change-Id: I6912a38f0e93a26bc267a9e3d738506fd3ad431b
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Jocelyn Turcotte <jocelyn.turcotte@digia.com>
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
it's weird that the output from the two variants is differing, and that
after building qmake it appears to hang.
Change-Id: I2ac3ace11e958effe787b13e1300eb1d2839ae98
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
Make sure we actually link against the static version of the ICU libs for
static builds.
Task-number: QTBUG-29478
Change-Id: Ida7b439f11c5393bee43bfe804f9ec84bf272b34
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
This is enabled only for -developer-builds and only for certain
compiler-version combinations that are in a whitelist.
It also requires each library, plugin or tool to declare whether it is
supposedly clean of warnings. When most targets are clean, we can
consider inverting.
Change-Id: I17b5c4e45aee5078f9788e846a45d619c144095a
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
Should be applied to Qt modules. Not interesting for third party
users.
Change-Id: I8fce821af397e3ace011a426c762319f6d30004f
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
this makes it possible to exclude modules from the build without moving
their sources out of the way. substitutes the much-requested -no-webkit.
not adding a symmetrical option, as it is relatively pointless:
to build only specific "leaf" modules, you only need to run
"make module-qt<module> ..." once you configured. and removing
particular "intermediate" modules is achieved with this very option.
Task-number: QTBUG-26697
Change-Id: I25cebdbd029885a2c653c4cde696f9bb78691768
Reviewed-by: Tuukka Turunen <tuukka.turunen@digia.com>
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
Replace the old sed / template @FOO@ method with echo.
Enable MSYS bash to build qmake.exe
Use qmake/Makefile.unix for all win32-g++ builds.
Change-Id: I6e27d69b28d27131838bbbb3a4ee5a08b470f31b
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
... instead of as a fallback in default_post.
it was this way in qt4, and it requires less code to be written in the
end. we are already doing it for debug/release as well.
Change-Id: I6e02849d61d14a18375cf64a5990768931ebac48
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
Change the default libexec directory to 'lib' on Windows for default
configurations. This makes sure that e.g. qtwebprocess can actually
find & load the right Qt libs.
A separate libexec directory was introduced to avoid conflicts between
a system-wide Qt in PATH and a custom Qt installation. However, since
there are no system wide Qt installations on Windows this isn't an
issue, but getting the executables to find its Qt libraries is.
Alternatively we could have also placed it in the 'bin' directory.
However, putting it in the 'lib' folder carries the notion that,
unlike the binaries in the bin, the libexec executables might have
to be deployed with a target application.
The exception is when a separate archdata prefix is specified, and
$$archdata/lib won't contain Qt libraries. In this case we use libexec
like on the other platforms too.
ChangeLog: [Qt for Windows] Fixed launching of QtWebProcess.exe by
changing default libexec directory to 'lib'.
Task-number: QTBUG-29661
Change-Id: Icbb15fb98474d6fef8ac9310f2e2b482d3282f79
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
Reviewed-by: Jocelyn Turcotte <jocelyn.turcotte@digia.com>
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
there is plenty of tests which rely on the non-presence of the variable,
rather than it being empty.
Task-number: QTBUG-29400
Change-Id: Ifa8aa68192750521869767e2d4d3796794f4d8f2
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
if the user just set an empty spec, everything will go wrong anyway.
Change-Id: I5ddaa2f0be1be96132260af8c869ba38e02eb3d8
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
config.summary has been opened in text mode, so the line feed character
should be "\n" instead of "\r\n".
Change-Id: Id73b0d698487cdd6f48902f3ae988c6a9fa59407
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
Keeping accessibility and only disabling the bridge will
enable more builds to work.
Warning about disabling accessibility disabled is needed
because in QStyle it is used to discover semantics about widgets
(if a toolbutton is in a toolbar).
Change-Id: Iae4e6ab63479743bdd70cba4b1954ec7cf3f88e9
Reviewed-by: Jan Arve Sæther <jan-arve.saether@digia.com>
it's completely broken, and i have no time to fix it properly now.
configure runs no qmake -r by default any more, so it's fast enough.
Change-Id: Ib2b4c68f1fc2fe95accecbe93dd5a87c9b015692
Reviewed-by: David Faure (KDE) <faure@kde.org>
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
This means the xcb plugin library will be named libqxcb.so instead of
libxcb.so, which doesn't clash with the system's libxcb.so. We need to
consistently apply this on all platforms for static linking to work.
Change-Id: I1640a7cae7b9846bbe62b19ab1c2c5bad7d02b4c
Reviewed-by: Miikka Heikkinen <miikka.heikkinen@digia.com>
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: Rafael Roquetto <rafael.roquetto@kdab.com>
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
Configure will now generate QT_DEFAULT_QPA_PLUGIN qmake variable
to specify the default QPA plugin.
"CONFIG += qpa_default_plugin" statement in application .pro file
will add the default QPA plugin into QTPLUGINS.
"CONFIG += qpa_minimal_plugin" statement in application .pro file
will add the minimal QPA plugin into QTPLUGINS.
Task-number: QTBUG-28131
Change-Id: I12a241005f30b37467d783b50f0369b47e605e68
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
the times when directory names starting with a dot were a problem under
windows are sort of gone. for well over a decade.
Change-Id: Ia1a0782c878a055cc5c094c6b3e4df0741368433
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
they cannot be legally used outside qtbase - it's the antithesis of
modularization.
Change-Id: I847844ea0ddce599f130f396d68cb61fa8f34135
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
Moving variables to qmodule.pri allows to build all qt modules with user defined
command line arguments passed to configure script.
Task-number: QTBUG-27566
Change-Id: Ifa7991e9024df3fb4b1fd6536ee0d19b7c63d15e
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
When having a directx sdk, angle does get auto enabled
for all windows platforms. Windows CE directx builds on top
of opengl es 2, so if there is directx, there is also a
opengl es 2. So don't add more layers of indirection for
Windows CE. As well angle does not build for Windows CE.
Change-Id: I211a1de29431cd05d5cd60188f503d2cd299c9b3
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
User applications are those that users run directly, whether it be for
development or not. The executable binaries that the user does not
usually run but is still required for proper functioning are called
"program executables" in Autoconf and they are placed in libexec.
This commit adds support for "program executables" in Qt by adding the
-libexecdir option to the configures, the qmake variable
QT_INSTALL_LIBEXECS (note the plural, to match all other properties),
and QLibraryInfo::LibraryExecutables.
At the time of this commit, the only expected "program executable" is
the QtWebProcess, the WebKit2 helper process from QtWebKit.
Change-Id: I66c3a3e0cf7f9d93b5f88f55f18e957faff608fc
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
This commits adds a -qmldir configuration option for the configures to
allow the user to change the default location (it defaults to
$archdatadir/qml).
It adds a QLibraryInfo::Qml2ImportsPath value for
QLibraryInfo::location, a qmake property of QT_INSTALL_QML and a qt.conf
configure location entry "Qml2Imports".
At the same time, it makes the qmake .prf files dealing with QML plugins
be the QML 2 version. Those files are new in Qt 5, so we have the option
to choose which version we want to use.
Discussed-on: http://lists.qt-project.org/pipermail/development/2012-October/007136.html
Change-Id: I8c1c53e8685a5934ed0a9a42ba5663297b81a677
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
Architecture-depedent Qt data defaults now to something under
-archdatadir. Architecture-dependent data is everything that contains
machine code (e.g., plugins) as well as anything that hardcodes
build-specific data, like qconfig.pri and qmodule.pri. That is:
QML imports: $archdatadir/imports (includes plugins)
Qt plugins: $archdatadir/plugins (machine code)
Mkspecs: $archdatadir/mkspecs (build-specific)
Architecture-independent Qt data defaults now to something under
-datadir. This option existed in Qt 4, but did not differentiate between
arch-dependent and independent. Following Autoconf's lead, --datadir is
the *independent* data root.
translations: $datadir/translations (.qm files are arch-independent)
docs: $datadir/doc
By default, both new options are equal to the Qt install prefix.
(Strictly speaking, for complete Autoconf compatibility, we'd need a
--datarootdir=$prefix/share, --datadir=$datarootdir/qt5 and
--docdir=$datarootdir/doc/qt5, but that's just nitpicking and
unnecessary)
Change-Id: I39c886a6a2d2d2c0b11923c50974179e21f2af76
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
This aims to mimics the behavior of the -device option already present on the
configure shell script
Change-Id: Ia28306f5ed74b9cfa812aa3efa6b79d0bafa4994
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
Make sure that INCLUDE, LIB paths are again considered in configure
checks on MinGW. While gcc itself doesn't care about the variables,
qmake automatically adds them via -I, -L...
This broke with 9c2ec72b95.
Change-Id: Ic6214eeea9eb7c92961c37c3aa76c4fcaddb22b6
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Check presence of Direct X SDK depending on
compiler version.
Check for presence of the headers d3dcompile.h and
intrin.h (SSE2) as well as d3d9.lib and the shader
compiler since the header d3dcompile.h is
also present in MinGW.
Change-Id: I7ee9701f4f9dc175ed2d733db79dda46de4d69f1
Reviewed-by: Kai Koehne <kai.koehne@digia.com>
- Introduce function for key prompt for usage in
verifyConfiguration() and showLicense().
- Prompt only once in verifyConfiguration().
Change-Id: I7028da1bda703a424e39477bd06b2639475739a4
Reviewed-by: Jan Arve Sæther <jan-arve.saether@digia.com>
"-no-opengl" didn't clear the default value for "OPENGL_ES_2", which
meant "opengles2" got configured in.
Task-number: QTBUG-27840
Change-Id: Id7b8e3e268571d820bebfb3700d3961ec96be7fd
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
we now have qt_build_config.prf which can contain static code.
Change-Id: I3f0ae142fdc5ffb4e1d25e628e809ba15b5f0ac4
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
so they are uniformly available to all modules.
Change-Id: I734f703c5923c42cb26f1456ed960cecc01c4b41
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
instead of symlinking (on unix) or creating a forwarding spec (on
windows), just put the default specs into (the bootstrapped)
QLibraryInfo.
Change-Id: I595500ef7399f77cb8ec117c4303bc0a2ffe505f
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
We need to generate a .qmake.cache file in the config.tests
directory on Windows to ensure that the config.tests can
actually be compiled before the qmodule.pri is created.
Task-number: QTBUG-27708
Change-Id: I8d9397a8cbdb2aa19a5318497177d76049f9fa91
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>