Commit Graph

1052 Commits

Author SHA1 Message Date
hjk
9de2853a94 Remove automated generation of dwarf index
The index is only helpful if the version of GDB to
create it uses the same version as the GDB version
that consumes it. Outside the "local development"
scenario this happens only by conincidence, still
we add ~3.6% to the debug library size and face
maintenance issues like QTBUG-34950.

We also don't see the same performance benefit anymore
with recent versions as we did when the feature was
added, so it's best to not create the index anymore.

People who need it, still can add it manually, or
by the 'gdb-add-index' tool that comes with recent
versions of GDB, or trust their distributors to
set up indexes matching their runtime environment.

Task-number: QTBUG-34950
Change-Id: Id4c79fa51fea9622b0891bd9b9b395b948ecb157
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
2014-02-16 15:41:30 +01:00
Thiago Macieira
fb30a3dd7c Initial support for the Intel Compiler 14.0 on OS X
ICC 8 and 9 are positively ancient. I doubt anyone is using them for
Qt, let alone Qt 5. ICC 11 through 13 haven't supported OS X.

ICC now masquerades as Clang, so we need to let qmake and
qcompilerdetection.h know about it.

Change-Id: If0d2bd8b6a4a45250c15c9472c062effc76f17de
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2014-02-16 05:12:09 +01:00
Frederik Gladhorn
df62c31807 Merge "Merge remote-tracking branch 'origin/stable' into dev" into refs/staging/dev 2014-02-11 15:12:00 +01:00
Andrew Knight
b4fe9ce225 qmake: Provide feature for windeployqt
windeployqt is a tool that aids in the deployment of Qt libraries and
other files on Windows. This feature (CONFIG+=windeployqt) adds
automatic invocation of windeployqt for qmake projects as a post-link
action. For Visual Studio projects, windeployqt is added as a custom
target which runs after linking, automatically adding the output as
deployment items.

Task-number: QTBUG-35630

Change-Id: I4cdcb1a7f70cedccb4a4e17be5eb9f5de35a4d66
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
2014-02-11 14:52:16 +01:00
Thiago Macieira
49df5fc3d2 Fix compilation when including files created in shadow dirs
For normal #includes, moc simply ignores the missing file, but it could
generate problems later. It's a problem when the file being sought is
the FILE from plugin metadata. A very good example of this is Qt
Creator:

coreplugin.h:49: Error: Plugin Metadata file "Core.json" does not exist.

Change-Id: I16af04b477f52c6bd53c14147ec777b358dfdf50
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
2014-02-10 20:41:22 +01:00
Friedemann Kleint
99eecab83d Automatically link printsupport plugins to static applications.
Add the required printsupport plugins to the QTPLUGIN variable
as is done for the QPA plugin.

[ChangeLog][QtPrintSupport] Made the Qt buildsystem automatically include the
necessary plugins so that static applications can print.

Task-number: QTBUG-29663
Change-Id: I0e2e3b0f25dd5714bd187711c85893926b0c4e85
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2014-02-08 13:34:37 +01:00
Frederik Gladhorn
a1fe728fa5 Merge remote-tracking branch 'origin/stable' into dev
Conflicts:
	src/gui/kernel/qguiapplication.cpp
	src/plugins/platforms/android/androidjnimain.cpp
	src/plugins/platforms/android/qandroidplatformintegration.cpp
	src/plugins/platforms/android/qandroidplatformintegration.h
	src/plugins/platforms/android/qandroidplatformopenglcontext.cpp
	src/plugins/platforms/cocoa/qcocoawindow.h
	src/plugins/platforms/cocoa/qcocoawindow.mm
	src/plugins/platforms/xcb/qxcbconnection_xi2.cpp
	src/sql/doc/src/sql-driver.qdoc
	src/widgets/widgets/qtoolbararealayout.cpp

Change-Id: Ifd7e58760c3cb6bd8a7d1dd32ef83b7ec190d41e
2014-02-07 13:07:25 +01:00
Thiago Macieira
8930839acb Update the macro that MSVC 2013 defines for AVX code generation
http://msdn.microsoft.com/en-us/library/b0084kay(v=vs.120).aspx says:
  __AVX__       Defined when /arch:AVX is specified.

Now we know what flag it is, we don't need to use our _M_AVX flag
anymore. We're also now assuming that Microsoft will follow the same
pattern for AVX2 (i.e., __AVX2__), so this commit also removes the
check for _M_AVX2.

The other defines that were defined alongside AVX2 are removed because
they have no use currently in Qt.

Change-Id: I64a026b2206dbd0d2dffa7c803bee969c9b94a94
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2014-02-01 00:58:58 +01:00
Oswald Buddenhagen
b4c31488a7 resolve include paths against source dir
this hasn't happened yet at this point of processing, so we'd pass bogus
paths when shadow-building.

Change-Id: I9f9633c0dbc2aadeff1eb555a8e598ddb0837e37
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
2014-01-29 00:18:15 +01:00
Oswald Buddenhagen
bfbc17159f shell-quote include paths when not using a response file
Change-Id: I7557480dcd8ba1e0b5ecf88318c53cdfb3519f92
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
2014-01-29 00:18:15 +01:00
Oswald Buddenhagen
30efc99c67 use the response file also for the default incdirs
Change-Id: I328cdd32d43f263992af206c66b502564e954d53
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
2014-01-29 00:18:15 +01:00
Oswald Buddenhagen
6d5df33d58 use write_file() to create the response file with the includes
it's much shorter and faster.

Change-Id: I6a37e9ece4ac550d1887fa53523b85046d398c8c
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
2014-01-29 00:18:15 +01:00
Tor Arne Vestbø
4c980d2e9b Explicitly use libstdc++ for non-C++11 static builds
Otherwise the compiler may choose libc++ based on the deployment target,
and we'll end up with broken builds due to the mismatch between the two
libraries, eg:

Undefined symbols for architecture x86_64:
  "std::ios_base::Init::Init()", referenced from:
      __GLOBAL__I_a in libQt5Qml.a(qv4object.o)
      ...
  "std::ios_base::Init::~Init()", referenced from:
      __GLOBAL__I_a in libQt5Qml.a(qv4object.o)
      ...
  "std::__throw_length_error(char const*)", referenced from:
      ...

This problem is not iOS specific, which is why the logic is moved
to the more generic mac/default_post.prf.

Change-Id: I28b94e614f9167fc0db84bbf1c88dd97d5629938
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
2014-01-28 02:33:40 +01:00
Tor Arne Vestbø
a4e0f4f80a Ensure C++11 support matches between Qt and user projects for static builds
Change-Id: Id529fb7fc52d2da312bcf17612e47c74939a617f
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
2014-01-28 02:33:32 +01:00
Andrew Knight
f125822ee6 WinRT: Provide qmake feature for generating a package manifest
This feature (package_manifest) generates a basic application manifest
from a template provided by the mkspec or the developer. It is meant to
deliver an out-of-the-box build experience without attempting to
exhaustively cover all manifest options. It is meant to be a starting
point which allows the developer to customize the manifest further. It
also becomes the default package manifest generator for Windows Phone,
replacing autogen_wmappmanifest.

Common variables, such as the target executable, are populated by qmake
in the newly created manifest. Default icons are also created if needed,
as the build will fail without them. The input manifest can be set by
assigning a file name to WINRT_MANIFEST. Additional options are
documented in the .prf file. If an existing (non-generated) manifest is
already in the directory, it will not be overwritten.

Task-number: QTBUG-35328

Change-Id: I57576a17ff9d2b564c0828f815949cb26d276bfd
Reviewed-by: Oliver Wolff <oliver.wolff@digia.com>
2014-01-24 08:19:00 +01:00
Tor Arne Vestbø
b2f8a70890 iOS: Enable building of basic tests
Allows us to sanity check the iOS build in the CI.

Change-Id: I16f9bfafef3988dcab6efd3155503ca0d0b4d1d8
Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
2014-01-22 12:35:17 +01:00
Kurt Pattyn
f54873c81a Suppress unsafe warnings of MSVC
Added a define to suppress MSVC warning “C4996:
This function or variable may be unsafe.”
If the code is really "unsafe" then it is unsafe on
other platforms as well; so fixing these warnings just
for MSVC builds, would clutter the code and wouldn't help
in fixing issues that might exist on other platforms.
Using the same functions across all supported platforms
keeps the code clean and helps in writing code that is
safe across all platforms.

Change-Id: I470072eda4f8174bb911567ef3f061a3582ba449
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2014-01-21 07:54:37 +01:00
Frederik Gladhorn
9033977d39 Merge remote-tracking branch 'origin/stable' into dev
Conflicts:
	src/corelib/global/qglobal.h
	src/corelib/tools/qstring.cpp
	src/gui/image/image.pri
	src/gui/image/qimage.cpp
	src/plugins/platforms/cocoa/qcocoawindow.h
	src/plugins/platforms/cocoa/qcocoawindow.mm
	src/plugins/platforms/eglfs/qeglfshooks_stub.cpp
	tests/auto/corelib/io/qstandardpaths/tst_qstandardpaths.cpp

Change-Id: I3b9ba029c8f2263b011f204fdf68c3231c6d4ce5
2014-01-20 18:18:59 +01:00
Oswald Buddenhagen
f2d76cb524 clear OBJECTIVE_SOURCES as well
the newly added mac examples use it, so it needs to be grounded.

a more generic solution would be clearing out QMAKE_EXTRA_COMPILERS, but
many prf files will be loaded after us, possibly nullifying our effort.

Task-number: QTBUG-35680
Change-Id: I3aba7595898baac14bd41e9fae2ff24507187c6a
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
2014-01-20 14:58:48 +01:00
Oswald Buddenhagen
2dc98de474 introduce qlalr feature
this makes it possible to compile grammars at build time.

Change-Id: Ia74383c4f29873ee7324bd5f14d72ef14faef460
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2014-01-20 09:26:54 +01:00
Thiago Macieira
0b144bc76a Add support for using -isystem in qmake
This commit will make qmake use -isystem automatically for any
compilers that declare support for it for any paths that are listed in
QMAKE_DEFAULT_INCDIRS.

Change-Id: I36fefc6d5bba61671f65669f0ea42704b3c3cf31
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
2014-01-20 02:42:31 +01:00
Tor Arne Vestbø
8cbc47ec49 Don't pass -mfpmath=sse to Clang < 3.4, it's not supported
Change-Id: I875f72802d8745488d34f836818b21aafe69dcff
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2014-01-18 04:39:14 +01:00
Kai Koehne
278152fffd Replace win32-g++ with mingw scope
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>
2014-01-17 12:08:24 +01:00
Thiago Macieira
93a895a41a Ensure that the mkspec and source dirs are passed to moc on Windows
Those paths need not be in INCLUDEPATH: qmake always adds them to the
compiler command-line and we should match the behavior if we expand
INCLUDEPATH here.

Change-Id: I89508d15ac534b54ae873a42c4ad9764408042b5
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
2014-01-16 03:00:29 +01:00
Thiago Macieira
3c375a76a1 Automatically turn on SSE2 code generation throughout Qt
...unless the user passed the -no-sse2 option to the compiler.

[ChangeLog][Important Behavior Changes] Qt now automatically generates
code for processors supporting SSE2 on i386 platforms. To disable
this, pass the -no-sse2 option during Qt configuration. Since this
feature has been present on CPUs for 10 years and since Qt no longer
checks for runtime support for SSE2, we strongly encourage users to
leave the default setting on for best performance.
 - For Linux distributions that must retain support for CPUs without
   SSE2, we recommend doing two builds of Qt and installing the
   SSE2-enabled libraries in the LIBDIR/sse2 directory. Tools,
   plugins, and examples are not affected.
 - See discussion on the Qt development mailing list:
   http://lists.qt-project.org/pipermail/development/2013-November/014085.html

Change-Id: I7f9b1f58a9f66b6e5fe295bac15f87d34343695e
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
2014-01-16 02:59:56 +01:00
Eskil Abrahamsen Blomfeldt
110d36fee8 REG: Fix make install on library projects on Android
This is a partial revert of 39e04b0222.
The original change moved the special make install target path logic
into the logic for the app template to make it possible to remove the
condition that excluded builds inside the Qt directory. This was
to make it possible to build examples in the Qt directory for Android
without moving them. However, this broke user library projects,
specifically when they were part of a subdirs project and should
have been automatically installed into the Android package. This
patch brings back the logic but only enables it for library projects,
meaning that the only examples inside Qt which cannot be built
correctly are library projects (which didn't work anyway).

[ChangeLog][Android] Fixed regression in "make install" on
library projects on Android so they can be used inside subdirs
projects again.

Task-number: QTBUG-34781
Change-Id: Iabf53ed68845b2ddd4ae66656e1372c96185660e
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
Reviewed-by: Paul Olav Tvete <paul.tvete@digia.com>
2014-01-15 16:08:57 +01:00
Thiago Macieira
1949a8c003 Let Apple Clang 5.0 also have -Werror support
Change-Id: I3abc83617c8f3426e4f5920052281fe13e4e3edc
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
2014-01-14 23:32:21 +01:00
lpapuga
f10356ead1 MIPS DSP build system fix and additional optimizations.
Changed MIPS DSP portion of the mkspecs/features/simd.prf file in order
to fix the corrupted build system for MIPS platforms.

List of the additionally optimized functions

from file src/gui/painting/qdrawhelper.cpp:
- qt_blend_rgb16_on_rgb16
- qt_fetchUntransformed_888
- qt_fetchUntransformed_444
- qt_fetchUntransformed_argb8565

from file src/gui/image/qimage.cpp:
- convert_ARGB_to_ARGB_PM_inplace

from file src/corelib/qstring.cpp:
- ucstrncmp
- toLatin1_helper
- fromLatin1_helper

Change-Id: I5c47a69784917eee29a8dbd2718828a390b27c93
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2014-01-14 18:52:14 +01:00
Allan Sandfeld Jensen
396f631e15 Fix build with precompile headers
Get the CXX compiler using $$QMAKE_CXX instead of ${QMAKE_VAR_QMAKE_CXX}
which causes shell syntax errors when combined with the silent flag.

Task-number: QTBUG-36159

Change-Id: I26cdbe788a20bd2df1aa3563694648e41c082a2c
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
2014-01-14 10:38:29 +01:00
Thiago Macieira
81157d2374 Use the QMAKE_CXXFLAGS_WARN_ON variable for setting -Werror
This would mean we don't pass -Werror when under CONFIG += warn_off.
However, that's not the main goal. The main goal of this change is to
have -Werror appear *after* -Wall -Wextra.

With some compilers, like Clang, this is necessary to have the
-Wno-error=foo options work properly. For example, if the -Wfoo
warning gets enabled by -Wall, Clang will treat it as an error if the
arguments appear in the following order:
   -Werror -Wno-error=foo -Wall

But not if they appear in this order:
   -Wall -Werror -Wno-error=foo

Change-Id: I38c820bffc8277d909391e9bf557db5347836b9c
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
2014-01-13 22:46:50 +01:00
Thiago Macieira
d82ec6a168 Add -Werror support for the regular Clang, not Apple's
Base modules already work and produce no warnings.

Change-Id: I932d7aaecbe3404f180e185bf1e9fff4d488a05d
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
2014-01-10 19:31:31 +01:00
Frederik Gladhorn
7917dfbf1c Merge remote-tracking branch 'origin/stable' into dev
Change-Id: I99af0bef7f1c931533a324ebcfb27c40ee871a5e
2014-01-10 18:27:49 +01:00
Allan Sandfeld Jensen
635bfd6606 Move no-pch extra compiler to common features
As we add more classes with RValue ref qualified methods we will need
the same _compat trick and no-pch support as QString.

This patch moves the extra compiler to precompile_header.prf which is
automatically included when pch is used.

Change-Id: I422a355fd11f499ce0648a90b0385f2a6f699fcb
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
2014-01-08 15:47:28 +01:00
Oswald Buddenhagen
183b862fe0 make the pkg-config error message more precise
while the meaning of the error message is actually pretty obvious from
the context, some people apparently expect an equivalence with their
package manager's terminology.

Change-Id: Ie7a31887bf5086e5d1d7de7e339a6d08571a4d01
Reviewed-by: Robin Burchell <robin+qt@viroteck.net>
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
2014-01-07 19:45:15 +01:00
Frederik Gladhorn
f0fbff4c90 Merge remote-tracking branch 'origin/stable' into dev
Change-Id: I2defae1904154283446b069d151c3ef57302ec7b
2013-12-24 00:56:59 +01:00
Jorgen Lind
0e1ce36ae6 Make wayland-scanner install generated headers
QtWayland uses QtWaylandScanner to generate c++ files which will be
subclassed. This works ok in QtCompositor as it implements the pimple
pattern. However, QtWayland has to expose a library called
QtWaylandClient as a way to create specialized wayland plugins. These
classes don't promise an ABI, and has limited API guarantees, so they
subclass the classes generated by the QtWaylandScanner directly. For
this library to be possible, we have to install the generated files.
Also, it should be possible to use the private API, and that's not
possible without the generated files.

Change-Id: Id55200fe23652587390dabf84ca846e4f39cf70e
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
Reviewed-by: Andy Nichols <andy.nichols@digia.com>
2013-12-23 21:14:34 +01:00
Tor Arne Vestbø
8a5827f706 Don't try to build qt_app in release against debug-only Qt builds
Change-Id: I575e019db76dadcf7586e18809e6f67545759974
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
2013-12-21 15:28:58 +01:00
Frederik Gladhorn
3f3be55835 Merge remote-tracking branch 'origin/stable' into dev
Conflicts:
	src/gui/kernel/qplatformtheme.h
	tests/auto/network/socket/qudpsocket/tst_qudpsocket.cpp
	tests/auto/widgets/widgets/qspinbox/tst_qspinbox.cpp

Change-Id: Iecd3343d6a050b8764f78d809c4a1532aeba69e5
2013-12-16 16:59:33 +01:00
Frederik Gladhorn
f6dbdd9c16 Merge remote-tracking branch 'origin/stable' into dev
Conflicts:
	src/sql/drivers/sqlite/qsql_sqlite.cpp

Change-Id: Ia7cffd2c99ae3d5eea6b5740683c06e921336dcd
2013-12-05 18:52:38 +01:00
Frederik Gladhorn
733ace5a7a Merge remote-tracking branch 'origin/release' into stable
Conflicts:
	configure
	mkspecs/macx-ios-clang/features/default_post.prf
	tests/auto/widgets/widgets/qmenu/tst_qmenu.cpp

Change-Id: Iaba97eed2272bccf54289640b8197d40e22f7bf5
2013-12-05 17:42:33 +01:00
Oswald Buddenhagen
08a2d8df49 enable path replacement in installed prl files on all platforms
Task-number: QTBUG-33794
Change-Id: Id0d38715673b8a1c0c034e9c15783eb255c4315b
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
2013-12-04 17:18:54 +01:00
Oswald Buddenhagen
53f48a4ba2 properly replace windows paths in installed meta files
it's bogus in the first place that the meta files contain windows paths,
but straightening that out is a prohibitive effort. so instead generate
additional s/// commands which take care of these paths.

fwiw, the generated s///i command is a gnu extension. but as we are
doing this on windows only where we are using our built-in sed command
anyway, this should be fine.

Task-number: QTBUG-33794
Change-Id: I46fcc598db12816ee56b5371ab184f6277eb3a22
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
2013-12-04 17:18:46 +01:00
Oswald Buddenhagen
f0c34eb08f don't install qt dlls into lib/ any more
bin/ is entirely sufficient.

Change-Id: Id587e0e97b46aa977dae59baaea02ecc6e64a67a
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
2013-12-03 09:15:27 +01:00
Oswald Buddenhagen
a5f6536d9f complete implementation of force_debug_info
that means further detaching the generation and installation of debug
info from the thing calling itself A Debug Build.

Task-number: QTBUG-32412
Change-Id: I4d79d1ae4806c8e4a2d6a7ccd030fb88385dd7d4
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
2013-12-03 09:14:59 +01:00
Frederik Gladhorn
777cdb00e7 Merge remote-tracking branch 'origin/stable' into dev
Change-Id: Ibb342cc5fc55ff9a3f4b3ecbd53936b57bc13e63
2013-11-29 15:59:34 +01:00
Stephen Kelly
82a2d28d84 CMake: Parse the output of new CMake versions.
As of CMake 3.0, the output of `cmake --version` now has a second line
showing that it is maintained by Kitware. Change the version parsing to
look only at the first line of output.

Change-Id: I347de4c376e0bde25a43a38d59587d9b63f6b43a
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
2013-11-27 13:56:02 +01:00
Stephen Kelly
f03fd0d82a Remove leading '/' from target paths.
This is inappropriate on Windows, and breaks non-prefix builds there.

This is only needed when we calculate a relative path from a sysroot,
so only add it in that case.

Task-number: QTBUG-34880
Change-Id: I0e3b3d977a7b56649e4ba0077ac574aabf1dc915
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
2013-11-27 08:24:50 +01:00
Frederik Gladhorn
4a8273a6fc Merge remote-tracking branch 'origin/stable' into dev
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
2013-11-26 22:35:48 +01:00
Oswald Buddenhagen
770a0c91f3 fix header bundling in some framework builds
!build_all is a sufficient condition for bundling headers in both debug
and release configurations, as it means that we will likely make only
one of the builds, and that needs to be self-contained.

Task-number: QTBUG-34575
Change-Id: I1a19e4b619eeff207cfbfd50d3b761053aeaa667
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2013-11-15 06:32:12 +01:00
Oswald Buddenhagen
53280989fb use the new "stash" instead of the (anything but) "regular" cache
as this new cache category comes without side effects, we can
unconditionally create a cache whereever we are. this allows us to be
performant without explicit user action.

Task-number: QTBUG-31340
Change-Id: I6b88b20b61e8351aa8cbf94ad3eec65adac6e1d6
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
2013-11-14 19:26:20 +01:00
Maurice Kalinowski
88609e6da4 Make console a no-op for WinRT
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>
2013-11-14 18:53:48 +01:00
Morten Johan Sørvig
06af925286 Check for existence of QML import paths.
Filter out module QML import paths that point to 
nonexistent file system paths.

Change-Id: I897ef50593eeb46c6c9eaec27313ec12e6113cb6
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
2013-11-14 17:44:46 +01:00
Eskil Abrahamsen Blomfeldt
42670c7c45 Android: Allow modules to specify permissions/features
Some modules, such as Qt Multimedia, needs special permissions
to avoid getting exceptions at run-time. We should apply these
by default to the AndroidManifest.xml so that an application
using e.g. the camera will work out of the box.

Task-number: QTBUG-33953
Change-Id: Ibc1f086d249197b63e7ed1075ae7d54bdd1212f2
Reviewed-by: Paul Olav Tvete <paul.tvete@digia.com>
Reviewed-by: Christian Stromme <christian.stromme@digia.com>
2013-11-07 16:37:37 +01:00
Tor Arne Vestbø
55c14e35f1 Resolve Qt module deps before determining if QML import scanner is needed
The qtAddModules functions resolves deps internally, but doesn't affect
the original QT and QT_PRIVATE variables. We need to pick up situations
such as the user adding QT += quick, which implies QT += qml through
the QtQuick module's dependecies.

Change-Id: I14411dbea3e4f7402be404073a3fe8f18dbb165f
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
2013-11-05 15:52:02 +01:00
Richard Moe Gustavsen
2ae4e180ac qt.prf: add correct library version when using qmlimportscanner
We need to add the correct suffix to the libs we add when
running qmlimportscanner. Otherwise we will always add
release versions of the libs instead of debug versions
when generating debug builds. This in turn will confuse the
xcode generator that will try to convert the libs in
LIBS to native Xcode build variables.

Change-Id: I4d9fab49ad9e644e9bfd06caf79fc084bde2a3b7
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
2013-11-04 11:42:01 +01:00
BogDan Vatra
e7db02e79e Remove android specific qmake variables.
Change-Id: Iba2b929ba70588ffcbcc9395501753521cfe5154
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
2013-10-31 22:01:40 +01:00
Oswald Buddenhagen
3b6b615334 export QT_NO_<foo> equivalents to the build system
this makes it possible to properly exclude entire subprojects based on the
availability of features, rather than stuffing every single source file
with #ifdefs.

the defines are aggregated from the -qconfig <profile>,
-no-feature-<foo> and some other configure flags.

usage:

load(qfeatures)
!contains(QT_DISABLED_FEATURES, textarea): SUBDIRS += textstuff

Task-number: QTBUG-28102
Change-Id: I83400632d64312fa4b907e1318dddfe27c432387
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
Reviewed-by: Peter Hartmann <phartmann@blackberry.com>
Reviewed-by: Tasuku Suzuki <stasuku@gmail.com>
2013-10-31 19:49:15 +01:00
Tor Arne Vestbø
f9a8cf99bc qmake: Pick up default bundle prefix from Xcode preferences
But still fall back to 'com.yourcompany', just like Xcode does for the
initial launch.

Change-Id: I89afadefafc254a0014aca197741d42a0199943e
Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
2013-10-31 12:33:55 +01:00
Michael Krasnyk
ebf0524186 dbuscommon.pri: Fix source file dependency
Make already the creation of the generated cpp file depend on the
creation of the generated h file, which transitively ensures that
the cpp won't be compiled before the h is there.

Change-Id: Idd3aec8d72dac341e835a3d1ef8f2986dbc1ab9f
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
2013-10-30 14:50:02 +01:00
Tor Arne Vestbø
396aa7fade iOS: Build simulator libraries with suffix
Makes it possible to join two separate builds, and opens up for using
exclusive builds to do this.

Change-Id: I87ccbdd55511fdfbef3fe8b581f40525ebf077ed
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
2013-10-30 00:34:34 +01:00
Tor Arne Vestbø
c760d2dbfd Rewrite qmake's exclusive-build feature
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>
2013-10-25 20:50:51 +02:00
Tor Arne Vestbø
25650923b1 xcode: Set QMAKE_XCODE_LIBRARY_SUFFIX from default_post
Otherwise we won't pick up CONFIG+= changes on the command line or
from the project file.

Change-Id: I6f7e9380f971e6271de5659534e9565024fe041d
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
2013-10-25 20:50:51 +02:00
Oswald Buddenhagen
788b8aa29d support cleanly querying private modules in qtHaveModule()
module names use dashes, but the internal module representation uses
underscores, so we must translate.

Change-Id: Ib6983d3731e7dae2a4d6232f8a5202390fd425e9
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
2013-10-25 14:51:30 +02:00
Richard Moe Gustavsen
42e6801843 iOS (OSX): rework how to bundle QML import folders
Before this patch, we would copy "$QTDIR/qml"
directly into the bundle as "qml". This would cause problems
if the user also tried to deploy qml files to a "qml" folder, or
if any other file in the bundle ended up with the name "qml" (which is the
case for QtDeclarative/tools/qml, where the executable is called "qml").

This patch will instead copy the contents of each import folder
into QMAKE_QML_BUNDLE_PATH, which will default to "qt_qml" on iOS
and "Resources/qt_qml" on OSX.

We also change the implementation to use a post script rather
then QMAKE_BUNDLE_DATA for two reasons:
1. Xcode does not like "copy build phases" to copy folders, only
    files (You cannot even create such a phase from Xcode, although
    it is possible to force it the way we create project.pbx. But
    this was error prone)
2. We need to strip away unneeded files from the bundle, like
    archives (which are linked in statically, not dlopened run-time).
    Using rsync lets us copy and strip in one operation.

Change-Id: I7c2117f6cfbe11efdc272dff71adb0b1e619a5ff
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
2013-10-25 12:32:31 +02:00
Oswald Buddenhagen
48b107ecfe make better use of $$MODULE_PLUGIN_TYPES
the module project files declare what plugins they need, as that is
necessary for automatic android deployment.
enable wider usage of this by making the information available from the
module .pri files.
caveat: the variable is called "types", but is in fact paths, so there
can be particular plugins named.

use this new facility to replace the egregious hard-coded list of
plugin-to-module mappings from create_cmake.

possible todo: automate populating DEPLOYMENT (for wince, and whatever
else).

Change-Id: Ibb9c07cfe2b0008905204cbeb81e9c8e2ae4dc69
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
2013-10-24 20:20:59 +02:00
Oswald Buddenhagen
16f4bc5b63 rewrite handling of private modules
instead of being magic attributes of the main modules, the privates
are now proper modules of their own.

this cleans up some code paths, is more mappable to other build tools,
and enables private modules to depend on other private modules.

note that the library path is needed even in the "empty" private
modules, as in the framework case that's where headers are found.
consequently, the modules need to be explicitly marked with the new
"no_link" flag. this required some reorganization of qtAddModule().

Change-Id: I8e4f44a609f8d639cc01bcb658256870a627eb63
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
2013-10-24 20:20:59 +02:00
Stephen Kelly
3a7025ffac CMake: Ensure that the EXECUTABLE_COMPILE_FLAGS list exists
This is needed to ensure that list(REMOVE_DUPLICATES) can work.

Change-Id: I3d992aa244fcdfbda7e3b48ce416e0ba5ffcde96
Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
2013-10-24 20:20:59 +02:00
Stephen Kelly
c0e826e244 Set PRIVATE includes variable to empty, not undefined.
This is necessary so that list(REMOVE_DUPLICATES) works properly.

Change-Id: Id268637d76b1a8785c9ff0c6e09e9ad8a62bbfb6
Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
2013-10-24 20:20:59 +02:00
Oswald Buddenhagen
363cebe6b1 purge auto_use_privates module option
it was introduced as a hack to simplify writing tests, but the change to
make use of it was backed out of testlib and nobody seems to care.

Change-Id: Icc86621b865276e86593afdb923247bbdca19d49
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
2013-10-24 20:20:59 +02:00
Oswald Buddenhagen
f3785471b7 de-duplicate QT_MODULES
Change-Id: I8f1bf08070abb1ba05a4fdb14e7de9e7da5b3ec7
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
2013-10-23 13:43:27 +02:00
Oswald Buddenhagen
7d462a2fb4 return()-related break() insanity is not necessary in qt5
Change-Id: I593c7160e44d51d25dee76c56c2e5580345ab42a
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
2013-10-23 13:43:23 +02:00
Oswald Buddenhagen
a0a0b6446c don't suggest to use qtAddModule(), it's internal API
Change-Id: Idf01d0dd74a0708014b7fca33611535c604a75f9
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
2013-10-23 13:43:19 +02:00
Oswald Buddenhagen
377c7575a7 don't load wayland-scanner for all projects on linux
it's wasteful, given that exactly one add-on module (and most probably
nobody else) needs it.

i'd do the same with yacc and lex, but i suspect this would cause quite
an uproar.

Change-Id: Ic2a6ca19e829393835f824e31cd0893e78c3fd39
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
2013-10-22 12:15:57 +02:00
Oswald Buddenhagen
ab17a3c3c4 remove broken validation of QMLIMPORTSCANNER
the variable may contain a complex command, so an exists() check is
doomed to failure if the tool is built dynamically.

also, the check is not really necessary: it failing indicates a bug in
the qt build system, and we don't really need to complicate the code to
deal with such corner cases.

Change-Id: I2e6087dcc6dd4a4f70bdf739550276f364c880dd
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
2013-10-18 20:05:56 +02:00
Oswald Buddenhagen
21ce4fd240 make it possible to explicitly suppress the qml import scan
if the user knows that no additional imports need to be linked, this
can be used to optimize the build time.
as it happens, it can also be used to fix the build of the qml tools
themselves ...

Change-Id: Id77aea1f20cabdc2e831540c61d8a4b8e85c040b
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
2013-10-18 20:05:16 +02:00
Eskil Abrahamsen Blomfeldt
e06acfbda2 Android: Remove support for QMAKE_SUPPORTED_ORIENTATIONS
This was created for the iOS port and intended to be cross-platform,
but since then they got cold feet and never added the support.
It makes no sense to only support this on Android. We need to
remove it again and hold off until we can find a proper solution.
Editing the AndroidManifest.xml is the non-cross-platform
solution for this.

Task-number: QTBUG-34166
Change-Id: I51d53b82a3412a9016de01612dd8df9ae12c6633
Reviewed-by: BogDan Vatra <bogdan@kde.org>
2013-10-18 20:04:24 +02:00
Morten Johan Sørvig
24b440fb54 Static builds: Link QML plugins.
Run qmlimportscanner, add found plugins to the LIBS
line, generate qml_plugin_import.cpp.

Change-Id: I6c6b927cceb36fa2dc405ad698f26d20398b33c8
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@digia.com>
2013-10-17 11:38:58 +02:00
Tor Arne Vestbø
5c92a8b70a Xcode: Dynamically choose release/debug libs based on current configuration
Non-framework builds would automatically link to whatever Qt library
matched the config at the time of running qmake, eg hard-coded to
libQtCore_debug, while Xcode itself allowed the user to switch between
release and debug configurations.

We now append an Xcode settings variable to the library path, which gets
resolved at build time depending on the current config in Xcode.

Change-Id: I12873e38a28d9595ef3fd0ae0ad849e6744833a9
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
Reviewed-by: Andy Shaw <andy.shaw@digia.com>
2013-10-16 19:33:15 +02:00
Oswald Buddenhagen
5d4eda7833 use pkg-config supplied CFLAGS when building with EGL
e.g., -DEGL_API_FB=1 is required for freescale's gpu-viv-bin-imx6 fb
driver.

Initial-patch-by: Fatih Aşıcı <fatih.asici@gmail.com>
Change-Id: I8c8cd60591605e0bc33fcf9de3bfb6ea0d86a570
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2013-10-16 17:10:15 +02:00
Stephen Kelly
5b88f7b0ac Use the cmakeTargetPaths function to process multiple paths.
Change-Id: I2e874af4f5bf22a3028b7099c39436c400136386
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
2013-10-16 15:30:16 +02:00
Eskil Abrahamsen Blomfeldt
b257f33b97 Output prefix for tools on x86
When building for x86, the prefix for the tools is not equal
to the prefix for the toolchain directory, so we need a separate
option for this.

Task-number: QTBUG-34110
Change-Id: Iefe8c37892eb6c31fc8762bfb7bc7c6c23cd8b1e
Reviewed-by: BogDan Vatra <bogdan@kde.org>
2013-10-16 15:30:14 +02:00
Stephen Kelly
786b278f91 Generate source includes in a separate file, if needed.
The source includes shouldn't be used by installations, so
don't install the extra file, but only use it if the package
is used from the build-dir.

Task-number: QTBUG-33970

Change-Id: I08f91b8a716e935cb04d1233d44cf5c092e240ce
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
2013-10-16 15:30:13 +02:00
Stephen Kelly
e29b35024e Don't test DLLDESTDIR when calculating dll location.
The DLLDESTDIR is not related to the install location and is not
populated for prefix_build configurations.

That resulted in the CMake files attempting to find the dlls in the lib/
directory instead of the bin/ directory.

Change-Id: Iec6a7c9b6dd656278b70ab128f3df9e8c45bbe4a
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
2013-10-16 15:30:08 +02:00
Tor Arne Vestbø
401510dbbe iOS: Move qmake features out of the generic features and into the makespec
As they are closely tied to the macx-ios-clang mkspec and can't be shared.

Change-Id: Icb59304cc1e4be12732f50175f3f84be289300c2
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
2013-10-14 17:28:48 +02:00
Richard Moe Gustavsen
e1e2b2d8ca qml_plugin.prf: moc plugin with -Muri=$$TARGETPATH
When we build qml plugins, we now depend on embedding
the uri of the plugin into its meta-data using the new
-M switch to moc for static builds.

This patch will let this happen automatically whenever you
call load(qml_plugin) from your pro file.

With this patch, you only need to rebuild your plugin
to support static applications.

Task-number: QTBUG-28357
Change-Id: I99e2fc80688fa43cf734551553f4fa0cb5ed47ed
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
2013-10-11 21:01:27 +02:00
Tor Arne Vestbø
0e96e47deb qmake: Centralize TARGET sanitization in default_post.prf
Shared between UNIX and Win generators, and allows prfs after
default_post to rely on sane TARGET and DESTDIR values.

This allows us to clean up the DESTDIR logic in testcase.prf,
which was completely busted. Doing the two in separate commits
is unfortunately not possible as the old testcase.prf logic
was so broken it would barf if only looked at.

Change-Id: Ibf21216195c760ee46ae679c162b207b77a9d813
Reviewed-by: Jan Arve Sæther <jan-arve.saether@digia.com>
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
2013-10-11 18:47:27 +02:00
Eskil Abrahamsen Blomfeldt
c376c272e6 Android: Correctly escape backslashes in deployment settings
When outputting the deployment settings on Windows, the paths might
have backslashes. These need to be escaped, otherwise they will simply
be removed by the JSON parser (or converted into whatever they happen
to represent given the neighbouring character.)

Task-number: QTBUG-33926
Change-Id: I11f1bc7d1f8082c73329bdc02fb8d653a0b5c0ee
Reviewed-by: Paul Olav Tvete <paul.tvete@digia.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
2013-10-09 15:38:24 +02:00
Tor Arne Vestbø
6408bb6b45 iOS: Update Xcode check to include Xcode 5.0
Change-Id: Icfd3a47c8bac91e66625cbeb6dd9b56a0d5f5e79
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
2013-10-09 11:50:29 +02:00
Eskil Abrahamsen Blomfeldt
4bcef03a8d Android: Build against new build tools revisions
Whenever the SDK updates the build tools it's put inside a new
subdirectory with the version number, so with every new version
we would have to update the java.prf feature. Instead, we iterate
over the available revisions and pick the lexicographically highest
one (which is sufficient as long as the major version is
double digits.)

Change-Id: I2392ef6261ef36ed741c80fa6f981486e7844e0a
Reviewed-by: Paul Olav Tvete <paul.tvete@digia.com>
2013-10-04 14:46:16 +02:00
Oswald Buddenhagen
f331f0ee28 move android-specific feature files to android/
Change-Id: I1f2b345b1dfad544d53dbf7e17b12c75a2cc7668
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
2013-10-03 18:17:53 +02:00
Tor Arne Vestbø
d5c729604a iOS: Always use application bundle when building Qt applications
Change-Id: I8fd0f7b43bdcbff0bff2de890fe421eb51233192
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
2013-09-27 12:43:17 +02:00
Tor Arne Vestbø
0bf30a7cab iOS: Propagate xcodebuild exit-code from makefile wrapper
Without bash's pipefail option we would end up with the exit code of
grep. Since we don't know which shell the user is running, we have
to explicitly call bash.

Change-Id: Ic3f6db0af9bb90a58001ccfbf9d6d21b6c9c9634
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
2013-09-26 18:45:16 +02:00
Eskil Abrahamsen Blomfeldt
39e04b0222 Remove logic which changes install rules inside Qt dir
A common problem is that examples and other apps are unusable on
Android when they are inside the Qt directory. There doesn't
really seem to be any good reason for having a special case in
place, since this will only affect applications which are not built
with the host toolchain, and we aren't building any command line
apps for the target devices. So the only thing this will affect are
the examples and we want those to be installed into the correct
path.

Change-Id: Ibae365e06eb77944f11e596c16c3c5baf798848c
Reviewed-by: BogDan Vatra <bogdan@kde.org>
2013-09-26 08:40:38 +02:00
Eskil Abrahamsen Blomfeldt
0a3a05f418 Fix setting android minimum/target version
We need to output integers here, since these are interpreted
as integers when reading the json.

Change-Id: I4206b3ac347b61a357bd2658f146979e06690141
Reviewed-by: Paul Olav Tvete <paul.tvete@digia.com>
2013-09-26 08:40:38 +02:00
Tor Arne Vestbø
98c204a486 iOS: Resolve location of crt.o at build time, not qmake time
By referring to crt.o by $(SDK) we allow Xcode to switch between the
iPhoneSimulator and the iPhoneOS SDKs.

Change-Id: I33d9f30b2f5a8f085dc4ddfc6e2ef228d02d639c
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@digia.com>
2013-09-24 18:00:31 +02:00
Eskil Abrahamsen Blomfeldt
de1f9bdc15 Android: Never error out on literal-suffix warning
When warnings are treated as errors, no Android code will
compile, since one of the platform headers in the NDK triggers
the literal-suffix warning. So we need to mark this as no-error.

Change-Id: Icabf1c2f2d32f76ee157d04e62a28f83abeed8f1
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2013-09-20 23:45:06 +02:00
Eskil Abrahamsen Blomfeldt
5a7da37be5 Android: Let ANDROID_API_VERSION env var take precedence
If you specify ANDROID_API_VERSION to override the default
API versions used for building the jar files, this should
take precedence even when the .pro files specify a different
default API version (like QtAccessibility does when it sets
the default to android-16.) Otherwise it's impossible to
override these defaults.

Change-Id: Idef98aaf3b51490bd7ced8c53770ee2f5680b1db
Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
Reviewed-by: Christian Stromme <christian.stromme@digia.com>
2013-09-20 23:45:06 +02:00
Andrew Knight
d959c37eaa WinRT: Basic global support
Various global changes, primarily preprocessor flow, to support the
WinRT platform.

Change-Id: I3fa9cf91d5fb24019362e88fcf205e31b4f810b5
Reviewed-by: Andrew Knight <andrew.knight@digia.com>
2013-09-20 13:53:59 +02:00
Eskil Abrahamsen Blomfeldt
a6f1123fe5 Add qmake generation of Android deployment settings
This outputs a json file with the necessary settings from qmake
so that an external build tool can easily get the settings without
having to parse the entire .pro source. Used by the androiddeployqt
tool.

Task-number: QTBUG-32856
Change-Id: I5d3ac0ab6a0350162d06b0a0bf0c9bcbd90d8b5a
Reviewed-by: Daniel Teske <daniel.teske@digia.com>
Reviewed-by: Paul Olav Tvete <paul.tvete@digia.com>
2013-09-19 14:50:36 +02:00
Stephen Kelly
f098148ebc Fix extension of static plugins
Change-Id: I2656746cbc93a0912bb844fab7d466da39997867
Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
2013-09-17 14:05:34 +02:00
Tor Arne Vestbø
8a42502682 iOS: Change main-wrapper logic to not require changing the user's main
Instead of using a define to rename the user's main() function during
compilation, we leave the user code alone, and inject our wrapper one
step earlier in the process, at the application entry point 'start'.

This entry point is provided by crt1.o, which is normally linked into
the application automatically. The start() function sets up some state
and then calls main(), but we change the start() function to instead
call our main wrapper.

Instead of shipping our own crt1 binary/sources, we make a copy of
the appropriate crt1.o at build time, and modify its symbol table in
place. This is unproblematic as long as we keep the same length for
the wrapper function name, as the symbol names are just entries in
the global string table of the object file.

The result is that for the regular Qt use-case the user won't see
any changes to their main function, and we have more control over
the startup sequence. For the hybrid use-case, we no longer rely
on the fragile solution of having our back-up 'main' symbol in
a single translation unit, which would break eg with --load_all,
and we don't need to provide a dummy 'qt_user_main' symbol.

OSX 10.8 and iOS 6.0 introduced a new load command called LC_MAIN,
which places the state setup in the shared dyld, and then just
calls main() directly. Once we bump the minimum deployment target
to iOS 6.0 we can start using this loader instead of LC_UNIXTHREAD,
but for now we force the classic loader using the -no_new_main flag.

There's also a bug in the ld64 linker provided by the current Xcode
toolchains that results in the -e linker flag (to set the entry
point) having no effect, but hopefully this bug has been fixed
(or Apple has switched to the LLVM lld linker) by the time we
bump our deployment target.

Change-Id: Ie0ba869c13ddc5277dc95c539aebaeb60e949dc2
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
2013-09-11 21:50:55 +02:00
Sergio Ahumada
bcbec4bc49 Merge "Merge remote-tracking branch 'origin/stable' into dev" into refs/staging/dev 2013-09-10 23:22:23 +02:00
Stephen Kelly
955052c0d9 Teach CMake about Qt 5 plugins.
Change-Id: Idd3225759f9f5ec620f79e29035eb176f965bef7
Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
2013-09-10 14:38:18 +02:00
Sergio Ahumada
2346ae1675 Merge remote-tracking branch 'origin/stable' into dev
Change-Id: I9ee4176f0a0078908d49896508826154c9f71530
2013-09-07 16:18:32 +02:00
Stephen Kelly
018c4850c9 Fix usr-move workaround in the presence of multi-arch.
The cmake directory may not be $PREFIX/lib/cmake, but
instead $PREFIX/lib/<arch>/cmake. Getting the PATH of such a
directory will not lead us to $PREFIX/, but to $PREFIX/lib.

Use a relative calculation instead.

Task-number: QTBUG-33223

Change-Id: Ice4e0f859ab1df238bad4eb942f073e84dd86cc3
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
Reviewed-by: Lisandro Damián Nicanor Pérez Meyer <perezmeyer@gmail.com>
Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
2013-09-06 19:47:22 +02:00
Stephen Kelly
21fd5baf80 Add source directories to include paths if needed.
Task-number: QTBUG-33145

Change-Id: I555064cd92691459222463df9917f8222e31323b
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
2013-09-05 17:50:20 +02:00
Thiago Macieira
f62b05ccf1 Fix -Wno-error=deprecated for GCC and Clang
Commit a7ba0ad93e introduced the -Wno-
language. The warning about deprecated functions, variables or types is
-Wdeprecated-declarations.

Change-Id: I6d269851afefc6a3fc3bf6599c3c702eb164245e
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
2013-09-04 00:05:12 +02:00
Oswald Buddenhagen
cd74325998 don't install non-framework headers in addition to frameworks, take 2
the redundancy is entirely unnecessary at this point.
the cmake problem that prompted the revert has been fixed long since by
commit 4f5f9331d9.

This reverts commit 215f137e29,
thus restoring 6d61dfdbb74a2055438b999c6962f89cc3388eea..

Change-Id: I94749dc18d924163e9c9add500078d88ccd00ffc
Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
2013-09-02 17:58:28 +02:00
Frederik Gladhorn
190fa97c83 Merge remote-tracking branch 'origin/stable' into dev
Conflicts:
	examples/widgets/doc/src/addressbook-fr.qdoc

Change-Id: Id1196e8e0c6445f1616c3f29234c974d809f8e48
2013-08-27 22:51:09 +02:00
Oswald Buddenhagen
59ee3e5db6 export QT_TOOL_ENV to the tool module pri file
fixes "make ts" in qttranslations in a non-installed prefix build.
amends 13e01fda1

Change-Id: I2547d825c1c71e42fdacab5edaace67247ef69e7
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
2013-08-27 19:12:06 +02:00
Thiago Macieira
a7ba0ad93e Make sure deprecation warnings don't cause errors with -Werror
It sounds like a good thing to have this warning, but for
future-proofing we can't have it. The system libraries might change
and add deprecation marks (OS X does that often). If they do that, we
don't want poor developers to have to fix all warnings before they can
build Qt again.

Change-Id: I4ff317da0de596c470bb1efe6e59bcf70aeec8fc
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
2013-08-27 03:50:58 +02:00
Thiago Macieira
043b809197 Set an upper range of compiler versions for -Werror
This allows us to go back to older versions of Qt with newer compilers,
that didn't exist when those versions were released. It also allows
someone upgrading their compiler and not being faced with having to fix
all warnings before Qt compiles.

This commit whitelists the following compilers:
* Apple Clang versions 4.0, 4.1 and 4.2 (OS X only)
* Intel Compiler versions 13.0, 13.1 and 14.0 (Linux only)
* GCC versions 4.6, 4.7 and 4.8 (all OS)

Notably, Clang on other other OS besides OS X and MSVC are missing.

Change-Id: I665160d40a59336da1904f2a6c1eda543e592b48
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
2013-08-23 18:56:09 +02:00
Frederik Gladhorn
676a10b3dc Fix bootstrap class path warning (java)
Due to forcing java 6 we need to pass the
bootstrap jar file (android.jar).
https://blogs.oracle.com/darcy/entry/bootclasspath_older_source

Change-Id: I530a7e2a7df40813011a6dde93d6ccc3aaaa61d6
warning: [options] bootstrap class path not set in conjunction with -source 1.6
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
2013-08-22 09:46:36 +02:00
Stephen Kelly
ee50096830 Populate INTERFACE_LINK_LIBRARIES property in the cmake files.
This is new in CMake 2.8.12 and replaces the old properties
matching IMPORTED_INTERFACE_LINK_LIBRARIES_<CONFIG>.

Change-Id: I5d4c454972f2535f6792e95718c73d80c56ac24c
Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
2013-08-21 16:39:55 +02:00
Stephen Kelly
89bb6be1f9 CMake: Move some code around.
This makes the diff clearer when adding plugin information
in a followup commit.

Change-Id: I857d9f71b08074f2ffa2f852ad72e5dd975adc3e
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
2013-08-21 16:39:55 +02:00
Frederik Gladhorn
c8ca300e49 Merge remote-tracking branch 'origin/stable' into dev
Conflicts:
	qmake/doc/src/qmake-manual.qdoc
	src/plugins/platforms/xcb/qxcbconnection_xi2.cpp
	src/src.pro

Change-Id: I0a560826c420e46988da3776bd8f9160c365459a
2013-08-21 11:03:18 +02:00
Oswald Buddenhagen
ca06fcfb43 don't include non-framework include paths when using frameworks
Change-Id: Ia72d5b611b9870b83846299bc7642841b09b84b1
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
2013-08-20 22:56:20 +02:00
Mat Sutcliffe
1d0715fde1 Give the extra compiler a unique name for the vcproj generation
The first word of the .name variable of each extra compiler is
used as a key in a container that keeps track of them. See also:
qmake/generators/win32/msvc_objectmodel.cpp: VCProjectSingleConfig::filterForExtraCompiler
qmake/generators/win32/msvc_vcproj.cpp: VcprojGenerators::initExtraCompilerOutputs

Task-number: QTBUG-32912
Change-Id: I7ea5c58884db559621f50740075b7f2e4e3ef7f8
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
2013-08-20 06:35:04 +02:00
Frederik Gladhorn
e727855476 Merge "Merge remote-tracking branch 'origin/stable' into dev" into refs/staging/dev 2013-08-16 16:02:19 +02:00
Frederik Gladhorn
340e8d801b Make java xlint warnings visible
Change-Id: If347c920df5e5aa0924a9f8d626d7e3e017d3536
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
2013-08-16 09:22:41 +02:00
Oswald Buddenhagen
bc2666d916 suppress error output from pkg-config
under normal circumstances, any errors will be noticed already by the
pkg-config --exists call, which is silent anyway. therefore this doesn't
change anything in normal qmake usage.

however, lupdate's and creator's evaluators skip the --exists calls and
subsequently invoke the normal query, which then prints useless noise to
the terminal.

Task-number: QTBUG-28159
Change-Id: I536412060f3830aafeb0587f855cd6af11227bca
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
2013-08-15 18:02:42 +02:00
Frederik Gladhorn
5c23199d4e Merge remote-tracking branch 'origin/stable' into dev
Conflicts:
	configure
	mkspecs/macx-xcode/Info.plist.app
	mkspecs/macx-xcode/Info.plist.lib
	qmake/doc/qmake.qdocconf
	src/corelib/global/qglobal.h
	tests/auto/other/exceptionsafety/exceptionsafety.pro
	tests/auto/widgets/widgets/qcombobox/tst_qcombobox.cpp

Change-Id: I3c769a4a82dc2e99a12c69123fbf17613fd2ac2a
2013-08-14 09:06:31 +02:00
Tor Arne Vestbø
f4942c3cc1 iOS: Wrap Xcode projects in Makefile for convenience and subdirs support
qmake expects the generator to be the same for each node in the tree
of subdirs, including the leaf projects, which caused failures when
qmake tried to recurse out to the leaf projects and run 'make', when
the leaf project was an Xcode project.

We now wrap the Xcode project in a meta-makefile that just
calls out to xcodebuild to do the actual work. This allows us
to get rid of the hacky generator detection, and use the macx-xcode
mkspec instead of setting the generator, which is much cleaner.

Change-Id: I2fed6a4dd6343b6a320eb459ecae824553bff459
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@digia.com>
2013-08-13 01:38:54 +02:00
Tor Arne Vestbø
8abeda08dd iOS: Link to platform plugin when application requires gui-private
Change-Id: I53e955f9673bd6560f44400a8fa877917107c353
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
2013-08-13 01:38:54 +02:00
Raphael Kubo da Costa
faea8d1056 gdb_dwarf_index: Use a sed call that's more POSIX-compliant.
sed versions other than the GNU one often default to being POSIX-compliant,
in which case "+" (with and without escaping) is always an ordinary
character.

Achieve the same functionality in a way that works with both GNU and BSD
seds by using "xx*" insted of "x\+".

Change-Id: I1d2576a8c0e17b31f01a44d9632c57991e53780d
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
2013-08-12 22:29:30 +02:00
Sergio Ahumada
4780e5326f Integrate gcov support into Qt build system.
To instrument a Qt application or library with the gcov coverage
tool, do `CONFIG+=gcov' in the application .pro file.

To instrument Qt itself with gcov, use the `-gcov' configure
option.

Change-Id: If24e91d95318609b0df1a76ed6d679bd92bcaab2
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@digia.com>
2013-08-07 13:38:07 +02:00
Tor Arne Vestbø
536b25b375 iOS: Move platform plugin linking logic into iOS-specific qt.prf
Change-Id: I54350c8df3fe4bf20fc59cd42a28458018664eef
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
2013-07-30 00:01:08 +02:00
Stephen Kelly
880f73d1f0 Use absolute path in the /usr move workaround if -libdir is specified
Change-Id: I68d087b15839418008db5bf1c0c76ca303245519
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
2013-07-24 11:54:21 +02:00
Stephen Kelly
9b7adfa081 Move the cmakeRelativePath function to cmake_functions.
Task-number: QTBUG-32570

Change-Id: I05bbf7084ef8501bf17698f2ecc1cf3d8fd4d460
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
2013-07-24 11:54:18 +02:00
Stephen Kelly
27313d1244 CMake: Add a clean_path before returning a path.
The $$path may already be absolute, so prepending a slash may
result in //usr/lib, for example.

Task-number: QTBUG-32570

Change-Id: If7a4f6fbec0216404cfe48c1da62d21d75b3e272
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
2013-07-24 11:54:14 +02:00
Stephen Kelly
37ab8b4ed7 CMake: Remove copy-pasto for the IMPORTED_LOCATION
Task-number: QTBUG-32579

Change-Id: Ibe9dd92824091989168fca842a59b556937b1f08
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
2013-07-24 11:54:11 +02:00
Frederik Gladhorn
084c5b3db7 Merge remote-tracking branch 'origin/stable' into dev
Conflicts:
	tests/auto/dbus/qdbusabstractinterface/tst_qdbusabstractinterface.cpp

Change-Id: I18a9d83fc14f4a9afdb1e40523ec51e3fa1d7754
2013-07-23 11:18:11 +02:00
Oswald Buddenhagen
c9568da969 don't install mac bundles atomically
... as that causes debug+release installs to overwrite each other's
postprocessed files.

introduces CONFIG+=sliced_bundle, which instructs qmake to create
file-by-file install commands. we don't know whether people are not
putting files outside qmake's knowledge into the bundle build dir, so
this mode is not necessarily backwards-compatible, and thus off by
default.

Task-number: QTBUG-28336
Change-Id: I23e90985ccd3311f0237ed61aadca6d7ed8325b7
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
2013-07-22 19:52:06 +02:00
Stephen Kelly
782ed5eebb Don't check for the existence of private include directories.
Some packagers don't want to install the private headers.

Check the existence of private headers only if the 'Private' component
is specified when finding the package.

Task-number: QTBUG-32466
Change-Id: I1fdbfb25e8ce485cd051564b937f766b2733741a
Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
2013-07-22 15:41:45 +02:00
Jan Arne Petersen
2ff2a7c32d Fix wayland-scanner to work with CONFIG+=silent
Use "_" instead of "-" in variables so variable replacement works
properly.

Change-Id: I2b17dca8f2351bc0933c165017f3fbb9393b0514
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
2013-07-20 15:54:27 +02:00
Stephen Kelly
87db2fdef3 Use the compilers used by Qt for the CMake tests.
Task-number: QTQAINFRA-609

Change-Id: I32ad70a4b31baf1815c2c08ac16e35e78052e569
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
2013-07-19 12:32:14 +02:00
Stephen Kelly
4a212be6f0 Only run the cmake test in the install location if not already done.
For developer builds, there is no need to run the test a second time.

Change-Id: I3564874cb2e9d6cc243e25a89ecd7f89df23b0bd
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
2013-07-15 21:56:51 +02:00
Sergio Ahumada
1866c13b7d Merge "Merge branch 'stable' into dev" into refs/staging/dev 2013-07-12 14:03:21 +02:00
Jake Petroules
5b648d4d79 Add osx and darwin scopes to qmake.
This gives us better consistency across the Qt ecosystem.

Change-Id: Ie12ebb6e8c826ed2e0445eb37de0b79595da41c2
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
2013-07-11 18:26:45 +02:00
Sergio Ahumada
3ef6cf060e Merge branch 'stable' into dev
Conflicts:
	qmake/generators/mac/pbuilder_pbx.cpp
	src/corelib/json/qjsonwriter.cpp
	src/corelib/kernel/qeventdispatcher_blackberry.cpp
	src/plugins/platforms/cocoa/qcocoacolordialoghelper.mm

Change-Id: I24df576c4cbd18fa51b03122f71e32bb83b9028f
2013-07-11 16:42:01 +02:00
Jake Petroules
cf10131d44 Refer to Apple products by their actual names.
This is a comment-only change.

Change-Id: I2432b1135ef21d781c9486df06699710f2696ee3
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
2013-07-10 17:32:48 +02:00
Stephen Kelly
aae0a2144d Always use forward slashes in paths passed to cmake.
Otherwise it issues many warnings.

Change-Id: I072afc65eed3f2549e5e5894f8d290c792025e4c
Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
2013-07-10 13:05:01 +02:00
Stephen Kelly
a3dfb4db5f CMake: Fix handling of insignificant_test.
The test should still be run, even though it is insignificant.

Change-Id: I6a3853e2b0e9670152b4f329dbceed2986a7e008
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
2013-07-10 07:02:10 +02:00
Oswald Buddenhagen
23e8fa55b4 don't pass -indexdir during prepare_docs phase
the forward-referenced directories don't exist yet, so we get pointless
warnings. in fact, this is why we do a multi-pass build in the first
place, and consequently using indexes during the first pass is
illogical.

Task-number: QTBUG-32152
Change-Id: I66bf6b43238827e87cb8bf6932d581b808c1032d
Reviewed-by: Martin Smith <martin.smith@digia.com>
2013-07-08 17:36:45 +02:00
Oswald Buddenhagen
6d8f7a8d34 make requirement for -private suffix explicit, take 2
the previous attempt broke ActiveQt, as it actually has public modules
without headers (they are provided by a common base module).
so explicitly mark the internal modules as such instead of applying
heuristics.

Change-Id: I8d8a2ee66f02c3444da2036a497e7f382f089f62
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
2013-07-05 11:36:22 +02:00
Ray Donnelly
1bd8db01c4 Android Windows: Adjust to new SDK layout
Google moved dx.bat into a new build-tools/VERSION folder
meaning our dx.bat no longer found dx.jar. Fix this by
passing into our dx.bat, the location of the real dx.bat

Removed hardcoded 17.0.0 and %ANDROID_BUILD_TOOLS_REVISION%
path searches.

Change-Id: I91c12c01745d6f12edbd126102b8f06eba291402
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
2013-07-04 21:39:24 +02:00
Sergio Ahumada
55bf01828a Merge "Merge branch 'release' into stable" into refs/staging/stable 2013-07-04 10:50:27 +02:00
Oswald Buddenhagen
77196b9dc3 correctly fix compilation of NEON_ASM sources
This reverts commit 1ef74a763a, as
assembler files in SOURCES break compiling with -pch, as we don't create
a respective PCH.

instead, compile assembler code with QMAKE_CC, not QMAKE_CXX.

the reason why this change is needed in the first place is not clear to
me, but i guess that CXX defines some c++-related macros when
preprocessing the file, which breaks further down the line. this is
counter-intuitive, as the g++ frontend should treat the same sources the
same way as the gcc frontend (differences should be limited the the ld
invocation).

Task-number: QTBUG-29765
Change-Id: Ic0116b3a5fa621f12ac41cadf3062ff00b538e85
Reviewed-by: Rafael Roquetto <rafael.roquetto@kdab.com>
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2013-07-04 08:01:41 +02:00
Stephen Kelly
4f5f9331d9 Add path to the headers in frameworks to the include dirs.
Task-number: QTBUG-32134

Change-Id: I30a2db3363d995ecb6e2b06c66080f7430174868
Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
2013-07-03 21:38:37 +02:00
Sergio Ahumada
645637cbdc Merge branch 'release' into stable
Change-Id: I982a86e1b99e3ae629e8c5667bc7bdf9f4018b2e
2013-07-03 18:33:26 +02:00
Oswald Buddenhagen
68fd6878ab make requirement for -private suffix explicit
if a private module was used without the suffix, it would not add any
include paths, but the library would be still added. as long as the
includes were written as <Module/private/Header>, this would not become
visible, as the public modules would add the common include path ...
however, this soon won't be the case for mac frameworks any more. this
change makes the problem visible early on.

Change-Id: I8b1a20313ad736cb49507f07fa623e9aa812f651
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
2013-07-03 15:31:17 +02:00
Oswald Buddenhagen
de54d7bb29 headersclean: process private modules correctly
Change-Id: I51c8ee0db31b35e1d991411fe0b03da6665e9a84
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
2013-07-03 15:31:13 +02:00
Stephen Kelly
bc03e80f9a Hardcode the VERSION reported by qmake instead of calculating it in cmake.
Change-Id: Ia83f995a64a56c845bbce1a90702a98fc83a1401
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
2013-07-03 12:15:40 +02:00
Stephen Kelly
494c81e78a Add some return() to remove indentation levels.
Change-Id: I48dc013fece0f4758ad54342f97ed51b33a9c2ff
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
2013-07-03 12:15:33 +02:00
Stephen Kelly
efb592503a Add a unit test for testing Qt in its install location.
The Qt CI system runs the unit tests after installation, but
with the qmake in the build directory. This means that the
installed content is not unit tested. Add an additional cmake
unit test to test the files in the install location.

The new test is marked insignificant for now until the true
effect on the CI system is known.

Task-number: QTBUG-27315

Change-Id: If9f12e88cfc741946cfabc25dbf789a11a2af4b8
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
2013-07-02 23:08:54 +02:00
Thiago Macieira
215f137e29 Restore header installation on Mac to always install to $includedir
We haven't fully agreed on whether headers should be in $includedir or
not for builds with frameworks, since frameworks carry their headers
inside. However, this change came too late for Qt 5.1 for us to assess
the potential impacts -- it's known to break at least the cmake files we
ship.

So restore the build to the way it was.

This is a partial revert of 6d61dfdbb7.
Partial because the old behavior was partially broken: it did not
install headers for release builds. Now we always install (and in
debug-and-release mode, we might do it twice).

Task-number: QTBUG-32134
Change-Id: Ib84879c5a148d3717d16a7a90b2f5735fb5d80be
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
2013-07-01 17:13:17 +02:00
Frederik Gladhorn
cb6fec8515 Merge remote-tracking branch 'origin/release' into stable
Change-Id: I53112e20a65b7d706755b4a22622979f3b91a2c2
2013-06-28 19:18:10 +02:00
Oswald Buddenhagen
cb79be2076 remove qt_no_framework_direct_includes from qt build
only the include statements found in public headers are constrained to
work with this flag. our own c++ files and private headers can use other
styles, which this flag breaks.

Change-Id: Icb1ced17dc438083731049788ac28349c87ba7ef
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
Reviewed-by: Kai Koehne <kai.koehne@digia.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
2013-06-28 15:43:04 +02:00
Oswald Buddenhagen
933ae0a087 install qpa headers into frameworks as well
they are a somewhat different kind of private headers, but follow
generally the same logic.

Change-Id: Ic6f42ed7061dde2ffd0e32b1d713354b58a20970
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
Reviewed-by: Kai Koehne <kai.koehne@digia.com>
2013-06-28 15:43:00 +02:00
Oswald Buddenhagen
a3feba6985 fix location of private headers in mac bundles
Change-Id: I2d9f117d4b25df878abc525499748ed1df9b9c18
Reviewed-by: Kai Koehne <kai.koehne@digia.com>
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
2013-06-28 15:42:55 +02:00
Frederik Gladhorn
572200989b Merge remote-tracking branch 'origin/stable' into dev
Conflicts:
	configure
	mkspecs/features/create_cmake.prf

Change-Id: I94aea83b83833395d5db399209e0e51b92ef23b5
2013-06-27 13:06:38 +02:00
Oswald Buddenhagen
505617b171 mac frameworks: don't create bogus symlinks
the entry for the normal headers already ensures that there is the
correct version symlink. having an entry for the private headers as well
is pointless, and in fact clobbered the symlink for the actual library.

Change-Id: I2403761bf006b7bfa490ce85c7b0e46d5ef203c0
Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
2013-06-26 17:22:11 +02:00
Frederik Gladhorn
1867ad741a Merge remote-tracking branch 'origin/release' into stable
Change-Id: I4c0ae2ac1c10d4d50c03625c802d981b7850ed6f
2013-06-25 23:25:35 +02:00
Frederik Gladhorn
851fae6dbe Merge "Merge remote-tracking branch 'origin/release' into stable" into refs/staging/stable 2013-06-25 14:31:00 +02:00
Oswald Buddenhagen
01270cf672 fix bundled header creation for debug builds
the only case where we want to skip copying the bundled data (which is an
optimization only) is the debug sub-build when we are actually building
both debug and release.

Change-Id: I1f3f67ccd9a64033b133ffaf58639cd9f7107c27
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
2013-06-25 09:18:35 +02:00
Oswald Buddenhagen
6d61dfdbb7 disable non-framework header install also for debug builds
i see no particular reason why debug builds should still get
"normal" headers.

Change-Id: I3625648549e8c234a365bab26823190ed2219cdf
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
2013-06-25 09:18:31 +02:00
Oswald Buddenhagen
7ea8c9d0f0 install private headers into frameworks
Task-number: QTBUG-31641
Change-Id: Ifadc380c0a8983b2be93194e2e2257494b13dff8
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
2013-06-25 09:18:25 +02:00
Oswald Buddenhagen
c0d5a4ee12 don't needlessly do QMAKE_BUNDLE_DATA+=FRAMEWORK_HEADERS
there is no point in adding a structure we don't actually define.

Change-Id: Ica43123f17eca6ebd4b5b7ec2526ebabef31c82a
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
2013-06-25 09:18:21 +02:00
Oswald Buddenhagen
7090d4a458 un-nest conditionals
it's cleaner, and it makes it possible to actually have a single else
branch.

Change-Id: I5ef917b678e2bd5a2face8ee19e942e5e952aa80
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
2013-06-25 09:18:17 +02:00
Oswald Buddenhagen
d0e82ede55 mac framework build: always set QMAKE_FRAMEWORKPATH
don't mess with the -F linker flag manually. qt headers include other
headers via the canonical Module/Header syntax, which means that the
compiler also needs the -F flag. QMAKE_FRAMEWORKPATH does exactly that.

Task-number: QTBUG-29003
Change-Id: I5f4af1a462697cd6996c54436ccdb9fc2b216020
Reviewed-by: Andy Shaw <andy.shaw@digia.com>
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
2013-06-25 09:18:13 +02:00
Tor Arne Vestbø
47ab2edd01 Make the macx-xcode spec a wrapper around the default spec
... except for MAKEFILE_GENERATOR = XCODE. This means the spec no longer
hard-codes g++, and will work regardless of whether the default spec was
clang or g++.

This require us to set QMAKE_XCODE_GCC_VERSION properly for GCC, so that
additional compilation flags passed by Xcode will match the actual
compiler used.

Task-number: QTBUG-31713
Change-Id: If65140a7471cd16f483036742f1d5b86d0485c52
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
2013-06-24 18:22:34 +02:00
Tor Arne Vestbø
d668e19271 Scope cached Mac SDK tool values by mkspec
Otherwise doing stuff like -spec macx-g++ when the default spec is clang
will not have an effect on the tools used.

Change-Id: Ia2769abfdd8c19f79d427b9f09707430e736305a
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
2013-06-24 18:22:34 +02:00
Frederik Gladhorn
88211af86c Merge "Merge remote-tracking branch 'origin/stable' into dev" into refs/staging/dev 2013-06-24 15:14:55 +02:00
Tor Arne Vestbø
d0d158f092 Mac: Ensure that C++11 is always used when linking against a static Qt build
If Qt was built with C++11, it links to libc++, and we need all projects
that use Qt to link against the same library.

Technically, we could do QMAKE_LFLAGS += -stdlib=libc++, but that hasn't
been tested enough without also enabling C++11, so we keep the
relationship between the two for now.

Change-Id: Ic628bcbade60cc82f93707f372c2119c24d9dc8a
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
Reviewed-by: Liang Qi <liang.qi@digia.com>
2013-06-24 14:51:50 +02:00
Stephen Kelly
6fa9394c81 Generate the directory for the mkspec include in a helper file.
The cmake variable for the mkspec dir must specify the source
location if used in the build dir, and must specify the install
location if used in the install dir.

Change-Id: I2fee8cd0c7198e9fc5cbb63972e20c75636672d1
Reviewed-by: Thorbjørn Lund Martsum <tmartsum@gmail.com>
Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
2013-06-21 18:58:54 +02:00
Stephen Kelly
91ca90d896 CMake: Fix test for value starting with -L
Change-Id: I02ba45beca09c2eb1b1fbdc2a8f6efbc783bd72d
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
2013-06-21 18:22:00 +02:00
Frederik Gladhorn
6213b81457 Merge remote-tracking branch 'origin/stable' into dev
Conflicts:
	src/plugins/platforms/cocoa/qcocoafiledialoghelper.mm
	src/plugins/platforms/qnx/qqnxrasterbackingstore.cpp
	tools/configure/configureapp.cpp

Change-Id: I3092bd3276af14304b7ab3ae1e1cc05d11cdede0
2013-06-20 16:45:12 +02:00
Frederik Gladhorn
533820320c Merge remote-tracking branch 'origin/release' into stable
Change-Id: I94bb158562ae6b80a87b40139d7302ea7b9b9aa8
2013-06-20 16:13:38 +02:00
Oswald Buddenhagen
172fa29dff fix LD_LIBRARY_PATH manipulation in uic calls not being make-escaped
the evaluator has the bug that function arguments are inherited.
work around that by passing an explicitly empty 3rd parameter to
qtAddTargetEnv().
proper fix upcoming in less critical branch.

Change-Id: Ic45cc890abaa6271985590d4ebe02c96bff6dec4
Reviewed-by: Kai Koehne <kai.koehne@digia.com>
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
2013-06-20 12:49:14 +02:00
Oswald Buddenhagen
1ebef55cf7 remove pointless return code checking
qtAddModule() always returns true anyway.
the real checking is done by qtAddModules() and qtAddLibrary() itself.

Change-Id: Ieed821acc36dc57ca52aec3e6b2dd6513be9b6c1
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
2013-06-17 15:43:41 +02:00
Oswald Buddenhagen
7d4980f3ee make use of QT_MODULES to simplify code
Change-Id: I1124088f807023faf678e030cfb1fc4a4c8b40d7
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
2013-06-17 15:43:34 +02:00
Oswald Buddenhagen
17c38b25f4 fix rcc & uic .depend_commands
unlike the .command, the .depend_command is not executed by make via its
chosen shell, but qmake itself via the system's native shell.
consequently, it needs different path separators and no make-escaping.

Task-number: QTBUG-31289
Change-Id: I480f815753632db6e8d4725f463f8a1fc59680a6
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
2013-06-15 21:39:34 +02:00
Oswald Buddenhagen
9d48f14a3c always $-escape make commands
nmake needs %-escaping in addition to $-escaping, not instead.
this has little practical impact, so it went unnoticed.

Change-Id: I144b6142eec0151d83a22e0ac5ead7b0415cdafa
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
2013-06-15 21:39:22 +02:00
Oswald Buddenhagen
c932f2cc13 fix command over-escaping in vcproj files
the vs ide executes the commands verbatim, so they must not be
make-escaped.

Task-number: QTBUG-31289
Change-Id: Ie73fd5c4da5527c2d10bc94ccdf60f8a1ca21351
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
2013-06-15 21:39:17 +02:00
Oswald Buddenhagen
13e01fda19 assemble the tool commands at use time, after all
the precise syntax depends on what exactly the command is used for, so
we need to resolve it at the last moment. see followup commits.

This logically reverts commits 6f4ff81380
and 731e6bece5.

Change-Id: If285c91d7521069be86d32593b5c2ae2027b3038
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
2013-06-15 21:39:12 +02:00
Stephen Kelly
703cca8bb7 Adjust the cmake files to find the dlls in the bin dir.
Change-Id: I840f963c3648d123b31f79aa2c8902c0ad74e982
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
2013-06-15 19:04:53 +02:00
Frederik Gladhorn
9b102e953f Merge "Merge remote-tracking branch 'origin/stable' into dev" into refs/staging/dev 2013-06-13 10:05:49 +02:00
Frederik Gladhorn
e2776b44a0 Merge remote-tracking branch 'origin/stable' into dev
Conflicts:
	src/plugins/platforms/cocoa/qcocoamenubar.mm

Change-Id: I4a699fc8a7f30b2af9de8e496c3d5f027b7495bb
2013-06-12 19:17:07 +02:00
Oswald Buddenhagen
23d8a7fb23 don't copy/symlink doc/global to build dir
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>
2013-06-12 16:27:28 +02:00
Frederik Gladhorn
be4b80af82 Merge remote-tracking branch 'origin/release' into stable
Change-Id: If29ca1b27da4592d40a7678837c359f75dac1209
2013-06-12 14:43:55 +02:00
Tor Arne Vestbø
5c8aa27111 iOS: Remove need for separate qtiosmain library
We can combine the hybrid and non-hybrid use-cases into a single static
library if we are careful about which symbols are included in which
object files. By limiting the main() and qt_user_main() functions to
their own translation units, the linker will only pick them up if they
are missing at link time (the user's program do not provide them).

This technique is resilient to the -ObjC linker flag, which includes all
object files that implement an ObjectiveC class or category, but will
fail if the -all_load flag is passed to the linker, as we'll then have
duplicate symbols for either main() or qt_user_main(). The latter should
not happen unless the user provides the flag manually, and in the case
he or she does, there's ways to work around it by providing less global
flags such as -ObjC or -force_load.

Change-Id: Ie2f8e10a7265d007bf45cb1dd83f19cff0693551
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@digia.com>
2013-06-12 12:35:02 +02:00
Tor Arne Vestbø
e99fc91c58 iOS: Remove need for -force_load of platform plugin
Instead of force-loading the whole static library of the platform plugin
we tell the linker to look for the missing symbol qt_registerPlatformPlugin.
This symbol is provided by the same object file as the plugin's static
initializer, so the object file is included in the final binary and
the static initializer is run, resulting in the plugin registering with
Qt.

We could have marked the actual static initializer wrapper provided by
Q_IMPORT_PLUGIN(QIOSIntegrationPlugin) as undefined, but due to the C++
mangling this would look less intuitive on the linker command line than
the custom dummy function that we provide, which has C linkage.

Change-Id: I6805537e1f49260a41d48c555376964cb1fe75d8
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@digia.com>
2013-06-12 12:34:44 +02:00
Oswald Buddenhagen
6bf5ef044f remove overquoting of extra compiler arguments
qmake automatically escapes the ${expandos}.

Change-Id: If74b6d2f2c68ff50785fdcbb66351122a273051f
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
2013-06-12 10:10:50 +02:00
Oswald Buddenhagen
7f6c864157 remove overquoting of extra compiler commands
the commands are already quoted appropriately for the shell.

Change-Id: I746bb5fba2cd6548c5dc7ef81087c69a200ecbb8
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
2013-06-12 10:10:47 +02:00
Oswald Buddenhagen
aa3f1cc8c6 fix QMAKE_COMPILER fallback for clang specs
in the actual specs, we also set 'gcc' for clang.

Change-Id: Ifc6b27d56596f34c944205795d665f545d090f80
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
Reviewed-by: Jake Petroules <jake.petroules@petroules.com>
2013-06-12 10:10:44 +02:00
Stephen Kelly
1937012b3e Don't test existence of private header directories for mac frameworks
These directories are not currently part of the Qt installation for mac
frameworks.

Task-number: QTBUG-31641

Change-Id: Ifef372cc2ebb692f9ae5a7b1f8dba5f683d1e7eb
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
2013-06-10 23:29:49 +02:00
Stephen Kelly
e1109df7a9 Remove the use of CMAKE_FIND_ROOT_PATH.
This is actually a list in CMake, not a value to be prepended
to paths. Specify the QT_SYSROOT instead to root the location
of include directories. CMake will soon get a CMAKE_SYSROOT
variable which will replace this.

Change-Id: I239f69f127f3676a3835aa4f29638f44ef209819
Reviewed-by: Volker Krause <volker.krause@kdab.com>
Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
2013-06-10 23:29:40 +02:00
Fawzi Mohamed
d7b79ff3ef mkspecs/qml_plugin: adding -nonrelocatable flag to qmldump call
nonrelocatable adds the full uri to the exported type information
which is the correct thing to do for the qt plugins (and 99% of
the cases).
This way import bla.x 1.0 works correctly in the code model.

Change-Id: Ia06873dd8b2ea4627e3297a98e8df87275ceaf73
Reviewed-by: Alan Alpert <aalpert@blackberry.com>
Reviewed-by: Kai Koehne <kai.koehne@digia.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
2013-06-10 23:29:36 +02:00
Oswald Buddenhagen
4fd568fa06 redo include path logic for pre-generated headers
make the include dir in the source tree the "main" include path, as
that's where the majority of the headers is. then selectively add the
shadowed dirs.

Change-Id: I03ad13cfcf77175c141b94d41b1221740d851faf
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
2013-06-10 21:12:29 +02:00
Oswald Buddenhagen
f3331e14e6 reshuffle path setup
rename MODULE_PROFILE_DIR to MODULE_BASE_INDIR.
force MODULE_BASE_OUTDIR to be always the shadow of the above.
rename MODULE_BASE_DIR to MODULE_SYNCQT_DIR (the former is still
recognized for backwards compat with webkit).

the idea behind these changes is making the variable names and override
possibilities reflect their actual use.

Change-Id: Ica4062d7231a0ce13241670e0d0f43e6b1b97160
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
2013-06-10 21:12:24 +02:00
Oswald Buddenhagen
81b942f0d1 use correct variable for library base path
Change-Id: I6d621db2c4d5365a9c9a7284026b464e663a4cc6
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
2013-06-10 21:12:20 +02:00
Oswald Buddenhagen
f533941179 update some comments relating to forwarding module pri files
Change-Id: I3486f949fee2ac977e3cde669188790e5f4b3167
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
2013-06-10 21:12:17 +02:00
Oswald Buddenhagen
366d276f8c allow modules to extend their MODULE_{,PRIVATE_}INCLUDES
Change-Id: I5e401edbe891846579cf6d9ff84427d16783923b
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
2013-06-10 21:12:09 +02:00
Frederik Gladhorn
0eff16611f Merge remote-tracking branch 'origin/release' into stable
Change-Id: I89c251999ae2a82522b40471fd13f2e06b00ece8
2013-06-10 10:00:34 +02:00
Stephen Kelly
04830dbcb2 Strip the -L dirs when processing GL dirs for the CMake files.
The generated cmake files expect only the names of libraries, so the
existence of directories causes erroneous fatal errors when attempting
to use Qt5Gui, if pkg-config returns a -L entry from

 pkg-config --libs egl

Change-Id: Iec50b4be68ab643c3c02abce2435a98e69955138
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
Reviewed-by: Iikka Eklund <iikka.eklund@digia.com>
2013-06-06 09:08:41 +02:00
Frederik Gladhorn
248420904f Merge remote-tracking branch 'origin/release' into stable
Change-Id: Ic6e1ae60f891a6b2b568936204d2e84db4177fb4
2013-06-05 15:44:22 +02:00
Oswald Buddenhagen
07337def65 don't add absent private include paths to non-git builds
all private headers are created by syncqt (and are thus in the source
dir), so we can simply override the normal (build dir based) paths
instead of extending them.

Change-Id: I9c1f3344c401b481b3f3d2295515f1aabffaa9a0
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2013-06-05 10:39:47 +02:00
Oswald Buddenhagen
53698f3e7c fix non-git non-shadow non-prefix non-qtbase builds
these builds usually assume all headers in the qtbase build (== source
== install) dir, so the path for adding our pre-generated per-module
include paths needs to be triggered explicitly.

Change-Id: I57ec441d58cdf8186907ee6c36dce08daa206c49
Reviewed-by: Kai Koehne <kai.koehne@digia.com>
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
2013-06-05 10:37:29 +02:00
Frederik Gladhorn
80604a0786 Merge remote-tracking branch 'origin/stable' into dev
Conflicts:
	src/corelib/global/qglobal.h
	src/plugins/platforms/cocoa/qnsview.mm

Change-Id: I6fe345df5c417cb7a55a3f91285d9b47a22c04fa
2013-06-04 19:34:36 +02:00
Oswald Buddenhagen
0a1b89bff5 run syncqt only for builds from git
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>
2013-06-03 17:59:47 +02:00
Oswald Buddenhagen
96557bc389 move module master header generation back to syncqt
now that we split out the part that depends on the project file, we can
do it cleanly here.
this way we can generate these headers at pre-build time already.
and for git builds, perl is probably faster than qmake at this task.

Change-Id: I343255c6de22329471a3ae2c2aac9ebeb160a501
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
2013-06-03 17:59:42 +02:00
Oswald Buddenhagen
0519129c59 split out dependencies from module master header
this will allow us the create the dependency list in a different way
than the rest of the master header.

Change-Id: Ib083fbbf6194cd9a161d669f860aaf32fd96d9d4
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
2013-06-03 17:59:39 +02:00
Oswald Buddenhagen
f4e5290709 remove pointless quoting of MODULE_*INCLUDES assignments
it would only cause trouble further down the line.

Change-Id: Ied9ba8a1ecf36b77e1091c73564bd7601ea6a6b4
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
2013-06-03 17:59:35 +02:00
Oswald Buddenhagen
5d8b8eed90 move module version header generation back to syncqt
there is no particular reason for it being done by qmake.
avoids that the logic is distributed over two source files,
and allows us to generate these headers at pre-build time already,
including not forwarding to a yet unexisting file (which would have a
yet unknown location).

Change-Id: I9c78ab425cf6f01d076c86fd1ee602626f231487
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
2013-06-03 17:59:25 +02:00
Frederik Gladhorn
883951928f Merge remote-tracking branch 'origin/release' into stable
Change-Id: I0a8fe79a80b7720f76e3c0b03cc2c9a769d4009b
2013-05-31 13:47:45 +02:00
Eskil Abrahamsen Blomfeldt
681da4feb3 Android: Fix Windows build with recent SDK
Since the dx tool has moved in the SDK, we need to update our copy
of it to also search in the new location for dx.jar.

Task-number: QTBUG-31405
Change-Id: If093a9f51f33c5d8666919f516a3b336322a7169
Reviewed-by: Ray Donnelly <mingw.android@gmail.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
Reviewed-by: Paul Olav Tvete <paul.tvete@digia.com>
2013-05-31 11:43:37 +02:00
Thiago Macieira
3523c9e138 Support setting the library-search environment on a few more OSs
Most Unix systems will honor LD_LIBRARY_PATH (all ELF-based systems
definitely do), so let's not make it an error if the user isn't
compiling on Linux or FreeBSD. The only known exception are Darwin /
Mac OS X and AIX. For everything else, cause an error.

The list of unames came from: http://en.wikipedia.org/wiki/Uname.

AIX does not use ELF, so its variable is called LIBPATH:
 http://publib.boulder.ibm.com/infocenter/forms/v3r5m0/index.jsp?topic=/com.ibm.form.api.configuring.doc/api_configuring_unix_path.html

Change-Id: I67055e6a231aa1430d91431e7cab5f98f0e1bd95
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
2013-05-31 08:05:33 +02:00
Eskil Abrahamsen Blomfeldt
680b6b2192 Android: Compile jar file on Windows
Due to the way the DEX_CMD is formatted on Windows this would break
every time. Since we actually bundle dx.bat in the repository, there's
no need to check for its existence, so the easy fix is just to move
the existence check into the code path where it's run from the SDK.

Task-number: QTBUG-31405
Change-Id: If1aeb744d3abbd2488153b13aac401436965074e
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
Reviewed-by: Ray Donnelly <mingw.android@gmail.com>
2013-05-28 19:56:44 +02:00
Oswald Buddenhagen
8ea19caacf add -compile-examples configure option
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>
2013-05-26 10:09:58 +02:00
Frederik Gladhorn
d3a8bc803c Merge remote-tracking branch 'origin/stable' into dev
Conflicts:
	src/corelib/io/qdatastream.cpp
	src/corelib/io/qdatastream.h
	src/corelib/json/qjsonwriter.cpp
	src/plugins/platforms/cocoa/qcocoawindow.mm
	src/plugins/platforms/xcb/qxcbkeyboard.cpp

Change-Id: I46fef1455f5a9f2ce1ec394a3c65881093c51b62
2013-05-23 21:27:07 +02:00
Christian Strømme
77c0216369 Android: Added the attribute "extends".
Enables us to detect if a library should be added as a dependency or not.
E.g., libQt5MultimediaQuick_p should only be added as a dependency if an
application is using both QtMultimedia _and_ QtQuick.

Task-number: QTBUG-30861
Change-Id: Id62642c40e2ecca7149d249f65c7b0c950898374
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
2013-05-22 23:31:46 +02:00
Eskil Abrahamsen Blomfeldt
2cde2fca6f Fix Qt for Android build with recent SDK bundle
In the recent revisions of the Android SDK bundle, the dx
tool has moved from platform-tools/ and into
build-tools/<revision-number> where revision-number is 17.0.0 at
the moment. To enable building on these SDKs, we add
detection for the dx tool and an environment variable which
can be set to override the revision number to provide a way
to build it against future revisions as well.

Task-number: QTBUG-31199
Change-Id: I0d6a22163dc2e50f7a81cd3fe8f3d53c6335aaee
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
Reviewed-by: Paul Olav Tvete <paul.tvete@digia.com>
2013-05-21 15:24:13 +02:00
Stephen Kelly
c2f2c8a4e7 Check that files we expect to find actually exist when using a cmake package.
Change-Id: If7c724daa85df5e29e410b8deb4e69beb43ee8ea
Reviewed-by: Alexander Neundorf <neundorf@kde.org>
Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
2013-05-20 15:20:26 +02:00
Stephen Kelly
b911e058fa Only generate entries for private include dirs if they exist.
Change-Id: I1d745adfbae371f8f1f76e954be98f4c2fd962e0
Reviewed-by: Alexander Neundorf <neundorf@kde.org>
Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
2013-05-14 18:12:20 +02:00
Oswald Buddenhagen
2b3055f7dc remove qtPrepareTool()'s ability to run batch files
it was only meant to automatically support syncqt.bat, which is gone
now.

fwiw, invoking batch files from within msys Makefiles was broken to
start with, as sh cannot directly run them.

Change-Id: I435568c578ce79e46f4e230e985ca9a04b34ffff
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
2013-05-13 21:54:55 +02:00
Oswald Buddenhagen
2c033e00d4 remove pointless extension check from qtPrepareTool()
we never call it with an explicit extension, so this only complicates
matters.

Change-Id: Ib15180130359bb9575bf5dda564f8b817431618f
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
2013-05-13 21:54:52 +02:00
Oswald Buddenhagen
8a78225a33 make qtPrepareTool recognize perl scripts by extension
this makes it possible to directly execute perl scripts on windows.

Change-Id: Ibbb90d46518ea8ac4f695d07141700630b33fab3
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
2013-05-13 21:54:46 +02:00
Oswald Buddenhagen
8739487b1c install host libraries into -hostprefix
... 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>
2013-05-13 21:54:40 +02:00
Tor Arne Vestbø
1308aa25fb Cache Xcode and SDK settings in .qmake.cache if it exists
The Xcode and SDK settings are expensive to resolve, as we're using
system() calls to resolve them. We now try to detect the presence of
a .qmake.cache file (and inform the user that creating one would be
a good idea), and use the file to cache the various settings after
resolving them.

The Xcode logic had to be moved form xcode.conf as part of the mkspec,
into default_pre/post.prf, so that we could cache() the resolved values.

Task-number: QTBUG-30586
Change-Id: Ib5368cfee6f7e4a4a33f6be70d0e20d96896fe56
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
2013-05-08 14:07:41 +02:00
Stephen Kelly
3483336889 Only expect EGL libraries in the cmake files if Qt is configured to use it.
Change-Id: Ida382a80dba882bbeb920756adc0c16321efe37e
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
2013-05-07 22:43:14 +02:00
Sergio Ahumada
db44b891fb Merge branch 'stable' into dev
Change-Id: Ica003a10ede86914bbbb062a2dc277a2ce39a259
2013-05-07 12:02:41 +02:00
Eskil Abrahamsen Blomfeldt
522c7ba1ac Enable bundling Qt in Android package in build system
For bundling Qt, we need two things:

1. We need to build a regular .jar file out of the Java files,
so that they can be built into the app package. Dexing the
classes first (i.e. compiling the JVM bytecode to Dalvik
bytecode) is required for loading the .jar file at run-time,
but cannot be used for building it into the app, so we need
two different paths.

2. We need to specify which extra files have to be bundled for
each module (this is primarily for plugins and imports). This
is because there is no static dependency on these files, so
it cannot be detected during deployment.

Task-number: QTBUG-30751
Change-Id: I733603ee5d1c64bd7c5b9357eb5d993b9d0298f7
Reviewed-by: Paul Olav Tvete <paul.tvete@digia.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
2013-05-01 11:24:15 +02:00
Frederik Gladhorn
85e3c53e5c Merge remote-tracking branch 'origin/stable' into dev
Change-Id: I2a54058b64ac69c78b4120fdaf09b96e025a4c6c
2013-04-29 14:17:09 +02:00
Oswald Buddenhagen
940f7c8744 split qt_app.prf out of qt_tool.prf
this way we can use it for "regular" apps (gui tools) as well.

Change-Id: I3b00d0bde215dff1c2726b35626c4c0c256d92c2
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
2013-04-26 19:15:25 +02:00
Oswald Buddenhagen
f1fd824ebb make src/ subdir optional
there is at least one examples-only repo (qtwebkit-examples).

we look for tools/ only when src/ is also present, based on the
assumption that if there was only tools/, it would be actually named
src/ (like in qttools). the split between the two is nowadays arbitrary
anyway.

Change-Id: I982b1d0e26dd7d0a5de751546099a58f86390124
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
2013-04-26 19:15:21 +02:00
Oswald Buddenhagen
fda41c1857 groundwork for making "configure -nomake tools" sane
the idea is that "tools" actually means "graphical applications". that
means that all bootstrapped/build tools are consistently built,
regardless of their location in the source tree.
non-bootstrapped non-graphical tools are a bit of a grey area. it's
going to be decided on a case-by-case basis.

Change-Id: I28b959b7e659d8aa86cf6769ab6d2689c855ec6b
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
2013-04-26 19:15:17 +02:00
Stephen Kelly
839e275249 Use the CMake list separator for content in a CMake list.
Change-Id: I664c31d256d395d4afec81de66a84dc79ed10b9d
Reviewed-by: Volker Krause <volker.krause@kdab.com>
Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
2013-04-23 18:57:45 +02:00
Stephen Kelly
bc4fbcd215 Add IMPORTED targets for the GL libraries used by Qt.
There may be multiple libraries specified in the mkspec, such as
EGL and Mali, as used in devices/linux-sh4-stmicro-ST7108-g++, so
create an imported target for each one. Also populate the
Qt5Gui_EGL_LIBS variable with all created imported targets. Similar
variables are created for the used OPENGL implementation.

In the case of using the packaged ANGLE library, we already know the
exact locations of the binaries.

This makes it possible for third parties to use the same GL
implementation as used by the Qt build itself. As these are used only
privately by QtGui, they are also added to the DEPENDENT_LIBRARIES
of that target so that they are found for rpath-link usage.

On some platforms (eg Raspberry Pi), multiple include directories must
be set to include egl.h, as the headers it includes for vcos are a
bit scattered.

Task-number: QTBUG-29132

Change-Id: I1126da3d37cd51c88d3670347c8b6405b285efb5
Reviewed-by: Volker Krause <volker.krause@kdab.com>
Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
2013-04-22 18:35:52 +02:00
Frederik Gladhorn
4c231d5df3 Merge remote-tracking branch 'origin/stable' into dev
Change-Id: I059725e3b7d7ffd5a16a0931e6c17200917172b5
2013-04-22 16:35:43 +02:00
Oswald Buddenhagen
561e39a845 purge obsolete files
the warnings should have been acted upon before 5.0.

Change-Id: I20a4673d7ec80e0252aa39289c6718fe80799de7
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
2013-04-19 20:10:46 +02:00
Stephen Kelly
a680fe609f Add the GL headers to cmake variables.
If building angle ourselves, that's just the basic Qt include dir,
and if using an external gl, look for it in the places specified
in the mkspec.

As the qopengl.h header includes the gl header, this is a 'public
include dependency' of QtGui, so it is added to the relevant
variable and the INTERFACE_INCLUDE_DIRECTORIES of Qt5::Gui.

Change-Id: I8c2c1782e0a2600032771175444b087da28433fc
Reviewed-by: Volker Krause <volker.krause@kdab.com>
Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
2013-04-19 12:03:36 +02:00
Stephen Kelly
5aa349628e Handle usr-move without forcing absolute paths
In qtbase commit 7ac58d1ff0 (Make cmake
packages installed to /usr non-relocatable., 2013-02-11), we made
cmake config files non-relocatable if they were installed to
the /usr prefix. That was assumed to mean that this was a distro
or platform package, and was a workaround for the usr-move problem
on Fedora and ArchLinux.

However, cmake bug http://public.kitware.com/Bug/view.php?id=14041
showed that forcing absolute paths in this situation is not desirable
in cross compiling scenarios. CMake commit 6c613b433c45efb0bb013a6bd668cbb8ac740259
(Handle usr-move without forcing absolute paths (#14041), 2013-04-03)
addressed the problem in CMake, and this commit is an equivalent.

Change-Id: I065a6230bc618aa980fae6ca511ae10df4cd62c2
Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
2013-04-19 12:03:36 +02:00
Tor Arne Vestbø
8e27fcb3fe Harden check for SDK platform name on Mac OS
We now use an absolute path, to prevent picking up the wrong plutil binary.
In addition we pipe the possible stderr output of plutil and xpath to the
null device, so that the final QMAKE_MAC_PLATFORM_NAME will be empty in
case of any errors, and caught by the isEmpty() check below.

Change-Id: I8ad24bf63162a76410c2ae223dd2fc48e7886bbf
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
2013-04-18 22:02:18 +02:00
Frederik Gladhorn
94758589fe Merge "Merge remote-tracking branch 'origin/stable' into dev" into refs/staging/dev 2013-04-17 10:28:21 +02:00
Stephen Kelly
0084272c5c Don't use the CMake MinGW if cross-compiling.
This way, the default generator is used when cross compiling
for mingw.

Change-Id: Ie536f1bca35ea38aec1232cdd95fc063c4f23e70
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
Reviewed-by: Peter Kümmel <syntheticpp@gmx.net>
2013-04-16 19:45:11 +02:00
Tor Arne Vestbø
35d0e9b66f iOS: Don't mangle QT_ARCH when being more specific about what arch to build
On iOS the compiler expects archs like armv6, armv7, armv7s when passed the
-arch flag, or when the ARCHS Xcode variable is set. Instead of mangling
QT_ARCH, which is used other places and assumed to match the values
provided by the arch.test, we use our own variable.

Change-Id: I05e10be8d69dd4d7cbcef04640fef99f1efb253d
Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
2013-04-16 09:01:32 +02:00
Samuel Rødal
b64c9a89da Added qtwaylandscanner rules to wayland-scanner.prf
In preparation of change in qtwayland.

Change-Id: I337ea9f48bf692f31e406c47d9256ee0263d33f0
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
Reviewed-by: Jørgen Lind <jorgen.lind@digia.com>
2013-04-15 13:17:26 +02:00
Tor Arne Vestbø
78f3c1fb8e Make QT_CPU_FEATURES a map of features based on architecture
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>
2013-04-13 18:36:46 +02:00
Tor Arne Vestbø
c002a27426 iOS: Don't quote -force_load, it broke when generating Makefiles
Instead we pass the -force-load as a single argument to the linker,
which is not mangled/touched by either the Xcode or Makefile generators.

Change-Id: I72e17638f0a4a8308a352d4b2033c1b5a9b65b84
Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
2013-04-12 14:16:36 +02:00
Stephen Kelly
d6d2f60137 Minimize the contents of the INTERFACE_INCLUDE_DIRECTORIES
The property only needs to contain the direct include dirs of
a target. For example, Qt5::Gui does not need to contain the
include/QtCore directory because it already has Qt5::Core in
its LINK_INTERFACE_LIBRARIES.

Change-Id: I69612f42c29e6056b3d15399498d041d43a0dd6b
Reviewed-by: Brad King <brad.king@kitware.com>
Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
2013-04-11 16:09:01 +02:00