Commit Graph

963 Commits

Author SHA1 Message Date
Oswald Buddenhagen
8e98a07b30 silence msvc warning 4996 while bootstrapping qmake as well
amends 0a76b6bc7f.

Change-Id: I5fc65a5ed71727d3e291ceda5877aa3586611846
Reviewed-by: Kai Koehne <kai.koehne@theqtcompany.com>
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
2015-02-02 11:14:22 +00:00
Joerg Bornemann
b9ae324dc9 fix fallback architecture for MSVC
Use x86 for a 32 bit build of qmake and x86_64 for 64 bit.
This is needed for shells that do not set VCINSTALLDIR.

Change-Id: I0843c1a590161669530b99f45ab59d523e6596c3
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
2015-01-29 09:30:20 +00:00
Joerg Bornemann
5582851c33 turn off nmake inference rule generation on detected conflicts
When there are source files with the same file name in different
directories of the project, then nmake's inference rules might pick up
the wrong source file. Note that this even happens when only one of those
files is in SOURCES. The existence of conflicting file names is enough
to cause hard-to-find build failures.
The usual work-around for this situation is CONFIG+=no_batch.
This is now done automatically when a conflict situation is detected and
a warning message is printed.

Task-number: QTBUG-13496
Change-Id: Icd81027407d3d489dbc50231e5ed8bcb91f8d2bc
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
2015-01-28 12:33:18 +00:00
Frederik Gladhorn
b6191b16d4 Merge remote-tracking branch 'origin/5.4' into dev
Conflicts:
	src/corelib/global/global.pri
	src/corelib/global/qcompilerdetection.h
	src/corelib/global/qglobal.h
	src/corelib/tools/qdatetime.cpp
	src/plugins/platforms/xcb/qxcbscreen.h
	src/plugins/platforms/xcb/qxcbwindow.h
	src/widgets/dialogs/qcolordialog.cpp
	src/widgets/dialogs/qcolordialog_p.h
	tools/configure/configureapp.cpp

Change-Id: Ie9d6e9df13e570da0a90a67745a0d05f46c532af
2015-01-21 11:10:14 +01:00
Joerg Bornemann
e01c8103e1 fix MSVC target architecture detection for amd64_x86
When using the cross-compiler toolchain for 32 bit on a 64 bit machine,
qmake generated a 64 bit VS project.
This was because qmake didn't know about the amd64_x86 cross-compiler,
and qmake did not use the first MSVC bin directory it found in PATH.

Task-number: QTBUG-43457
Change-Id: I50c6f7bb9afe44a58321c670d680dbcc7cd07223
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
2015-01-16 12:07:03 +01:00
Nico Vertriest
ddbac7de8d Doc: added entry for link to main page Qt Creator
Task-number: QTBUG-43115
Change-Id: I10413536b981bf248950522dfe07b96394db9c29
Reviewed-by: Martin Smith <martin.smith@digia.com>
Reviewed-by: Topi Reiniö <topi.reinio@digia.com>
2015-01-16 10:29:35 +01:00
Joerg Bornemann
bbb40616d2 remove dead code
In ancient times, the existence of QMAKE_RUN_CXX_IMP determined the
use of implicit rules. The code path for implicit rules was turned
off in 2006 (0287fe3c), which probably was a refactoring artifact.
Later, implicit rules were enabled again using a different approach.
These days, the non-existence of QMAKE_RUN_CXX determines the use of
implicit rules.
We remove the dead code path now and rely on the latter condition.

One part of the dead code is a feature that turns off inference rules if
the OBJECTS_DIR is set or source file names do not match expectations.
If somebody ever missed this, it has been reimplemented otherwise.
Or not.

Change-Id: If3ce9904d9c1df6e4048c58c2452854cce7fa206
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
2015-01-13 11:47:39 +01:00
Joerg Bornemann
13ed47690d use QSet<T> instead of QHash<T, void*>
Change-Id: Ifdc4d7c8e5fcb86834b2ee2c9db73decfffb4ff6
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
2015-01-13 11:47:35 +01:00
Thiago Macieira
d7795559a7 Let qmake find the number of processors online
Instead of trying to load in ltcg.prf and cache the value.

Change-Id: If485ff68fc6ff9d9cf7009cd72d5e702d0199c7f
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
2015-01-11 03:41:35 +01:00
Thiago Macieira
e00d8ad86b Prettify the per-compiler setting of Makefile.win32
This just reindents and makes it easier to read what's going on.

Change-Id: Id0afcdfb8f468b4553bba8c5a572a1d0115b0886
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
2015-01-11 03:38:40 +01:00
Thiago Macieira
56c153c271 Remove support for MSVC mkspecs that don't exist anymore
Change-Id: Ic5d393bfd36e48a193fcffff13b73b9578a9f7ff
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
2015-01-11 03:38:32 +01:00
Oswald Buddenhagen
a90bb5b89a centralize/unify/sanitize INCLUDEPATH "enrichment"
instead of having each generator do its own magic (little surprisingly,
with different outcomes), add "stuff" to the search path in one place
used by all generators. this has several consequences:
- (unless disabled via CONFIG+=no_include_pwd) $$PWD is now consistently
  prepended by all generators. most notably, this was entirely missing
  from the MSVC generators (both nmake and VS) - despite them needing it
  most. this also affects Xcode projects.
- $$OUT_PWD (if different from $$PWD) is now added right after $$PWD,
  not at the end. this precedence clarification only makes sense, given
  that qmake tries to make shadow builds as transparent as possible.
- the qmakespec's dir is now consistently appended. the UNIX and PBX
  generators prepended it, while the rest already appended. few files
  actually include qplatformdefs.h, so having it late in the search path
  seems reasonable.
- the effect of CONFIG+=depend_includepath is now fully consistent with
  the actual include path.

Change-Id: I5f7570183351ade29342ea74fef706a0738842bf
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2015-01-11 03:35:34 +01:00
Oswald Buddenhagen
cefaf61eda remove pointless pwd fallbacks
neither qmake_getpwd()'s return value nor a fileFixify()'d version of it
can be empty.

Change-Id: Ic3b7d20becc57209b9dbe71ad9dc8e7547d435b1
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2015-01-11 03:35:28 +01:00
Thiago Macieira
b9258717f4 Remove EXTRA_CPPFLAGS
This is not used or referenced anywhere

Change-Id: I02e1aa76631627f64e5d1f9b36a13cdb5677e93f
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
2015-01-09 18:15:53 +01:00
Oswald Buddenhagen
4c3fdc01c4 fix file separators in 'clean' targets
Task-number: QTBUG-39690
Change-Id: Ibbed847258a3a7e21d6d10b9400af0001d10c6f8
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
2015-01-09 16:57:25 +01:00
Oswald Buddenhagen
a19f1d320a document QMAKE_CFLAGS
Task-number: QTBUG-16577
Change-Id: I9ab76dc0715187e059c3403447c27929261bd064
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
Reviewed-by: Leena Miettinen <riitta-leena.miettinen@theqtcompany.com>
2015-01-09 16:57:21 +01:00
Oswald Buddenhagen
079adae309 fix distclean for dynamic libraries again
Task-number: QTBUG-40264
Change-Id: I1d28d2ef96c5c53274ca21c0ea3f416f0d9628dd
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
2015-01-09 16:57:17 +01:00
Frederik Gladhorn
aaff94c2df Merge remote-tracking branch 'origin/5.4' into dev
Conflicts:
	src/corelib/tools/qbytearray.cpp
	src/gui/kernel/qplatformsystemtrayicon.cpp
	src/gui/kernel/qplatformsystemtrayicon.h
	src/plugins/platforms/xcb/xcb-plugin.pro

Change-Id: I00355d3908b678af8a61c38f9e814a63df808c79
2014-12-29 16:37:38 +01:00
Laszlo Papp
81d116595c Mention the c++14 CONFIG option in the qmake variable reference
Change-Id: Iaad18c39925c07b9bf068c02f2cda5d7f06fd38f
Reviewed-by: Alejandro Exojo Piqueras <suy@badopi.org>
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
2014-12-20 07:48:01 +01:00
Simon Hausmann
e281537f20 Merge remote-tracking branch 'origin/5.4' into dev
Conflicts:
	src/corelib/global/qglobal.h
	src/platformsupport/platformcompositor/qopenglcompositor.cpp
	src/platformsupport/platformcompositor/qopenglcompositorbackingstore.cpp
	tests/auto/gui/kernel/qwindow/tst_qwindow.cpp

Change-Id: I5422868500be695584a496dbbbc719d146bc572d
2014-12-18 12:12:58 +01:00
Andrew Knight
affba56094 remove unsupported winrt mkspecs
These mkspecs are not supported and no longer compile. Related support in
qmake has also been removed.

Change-Id: I7706dcfa5471e55e2ae3d580d65e9371e2c652d5
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
Reviewed-by: Oliver Wolff <oliver.wolff@theqtcompany.com>
2014-12-16 11:56:26 +01:00
Thiago Macieira
ce1c53b413 Add detection of and support for Visual Studio 2015
Tested with the Preview release of November 2014.

Differences to the 2013 detection and support:
 - Option -Zc:strictStrings is present in both debug and release mode
   and is passed to qmake's own build
 - New warnings 4456, 4457 and 4458 (shadowing) are disabled
 - Compiler supports -arch:AVX2

Change-Id: I9572ff4d4aded4004c1fa5d6f13ffee5462043d6
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
2014-12-13 05:11:25 +01:00
Joerg Bornemann
adfeb9e444 Doc: fix copy & paste error
Task-number: QTBUG-8536
Change-Id: I381690b9c25750cbc72de3a36f70879936482e11
Reviewed-by: Andy Shaw <andy.shaw@digia.com>
2014-12-12 16:53:15 +01:00
Simon Hausmann
015002fec9 Merge remote-tracking branch 'origin/5.4' into dev
Conflicts:
	doc/global/template/style/online.css
	mkspecs/android-g++/qmake.conf

Change-Id: Ib39ea7bd42f5ae12e82a3bc59a66787a16bdfc61
2014-12-10 07:58:06 +01:00
Eric Lemanissier
459e22a9df Handling of qmake variable defining the manifest file on MinGW
On Windows, the application manifest file can be linked with the
executable, to specify for example the requested privileges of the
application. On MSVC nmake, the manifest is already handled in
NmakeMakefileGenerator::writeBuildRulesPart, but it is not compatible
with MinGW. On MinGW, this manifest file has to be referenced in the
Rc File. This patch simply handles the existing variable
"QMAKE_MANIFEST" which defines the appropriate line RT_MANIFEST in
the RC file.

Task-number: QTBUG-42454
Change-Id: I921606e002ffe3801c537f30ac2365891f97d5c9
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
2014-12-09 07:34:35 +01:00
Simon Hausmann
8c0014213b Merge "Merge remote-tracking branch 'origin/5.4.0' into 5.4" into refs/staging/5.4 2014-12-05 16:45:27 +01:00
Simon Hausmann
7644faa881 Merge remote-tracking branch 'origin/5.4.0' into 5.4
Change-Id: I0cd11cbe95693b78450ea81a0187760f4a6a8b5f
2014-12-05 11:53:33 +01:00
Andy Shaw
c9f9eddc0f Add missing documentation for some variables
Task-number: QTBUG-5109
Change-Id: I38e12b957cad099d2f815a0d192cf3ab9fee52e5
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
2014-12-05 07:39:17 +01:00
Tor Arne Vestbø
0f88c5c1b9 qmake: Add .qmake.stash/super to QMAKE_DISTCLEAN when owned by project
Running 'make distclean' should remove all files generated by qmake,
including .qmake.stash/super. These files are considered owned by
a particular project (and hence a candidate for distclean), if it
lives in the same directory as the output dir of the project.

Task-number: QTBUG-42678
Change-Id: I224e9bac039eeacb6561e18acc7f8e867da5dab8
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@theqtcompany.com>
2014-12-03 22:06:15 +01:00
Joerg Bornemann
98d130fc46 fix rc compilation in vcxproj files
We don't need to modify ResourceOutputFileName. The default is fine,
and $(InputName) evaluates to nothing in VS >= 2010.

Change-Id: Ib203d36261e1b5449c5a139b1950bd0d66197297
Task-number: QTBUG-43026
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
Reviewed-by: Andy Shaw <andy.shaw@digia.com>
2014-12-02 12:27:10 +01:00
Leena Miettinen
f9f270a6c8 Doc: add navigation info to qmake Manual
Add the navigation.landingpage variable to the
qdocconf file.

Task-number: QTBUG-42965
Change-Id: Ia5ee411fc0dbd5cd8c2d238f346b0f1818b54289
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
Reviewed-by: Topi Reiniö <topi.reinio@digia.com>
2014-12-01 20:04:00 +01:00
Frederik Gladhorn
34aba4724f Merge remote-tracking branch 'origin/5.4' into dev
Conflicts:
	src/corelib/io/qiodevice.cpp
	src/plugins/bearer/linux_common/qofonoservice_linux.cpp
	src/plugins/bearer/linux_common/qofonoservice_linux_p.h
	src/plugins/platforms/android/qandroidplatformtheme.cpp
	src/tools/bootstrap/bootstrap.pro
	src/widgets/styles/qmacstyle_mac.mm

Change-Id: Ia02aab6c4598ce74e9c30bb4666d5e2ef000f99b
2014-11-24 13:39:13 +01:00
Andy Shaw
5c58db516a Add the custom build step for PCH generated through source
This fixes a regression introduced by
04d3a89e20 as it left out the custom build
step for the source code file generated for PCH.

Task-number: QTBUG-42596
Change-Id: I53d5a36b842dcffbde2657910e6a96dca0e99c7b
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
2014-11-13 20:04:09 +01:00
Tor Arne Vestbø
91e53a7b9c Xcode: Make sure QMAKE_PRE_LINK dependencies are complete for multi-arch builds
With multi-architecture builds and ONLY_ACTIVE_ARCH set to NO, Xcode will
build the final target for multiple architectures at the same time, but
CURRENT_ARCH will only match one of them, so we failed to set up the
right dependencies for our pre-link step, causing the step to happen
after linking in some cases.

We now build an exhaustive dependency list based on QMAKE_XCODE_ARCHS,
so that ONLY_ACTIVE_ARCH=NO can be used for release builds targeted at
the App Store.

Change-Id: I6702f020a6970807adc624779f6dde09be62beb9
Reviewed-by: Andy Shaw <andy.shaw@digia.com>
2014-11-12 14:01:33 +01:00
Morten Johan Sørvig
ade8e0fc9b Add CFBundleIdentifier to the bundle Info.plist's
Refactor the current app CFBundleIdentifier support:
handle frameworks as well. Add @BUNDLEIDENTIFIER@
placeholder to the OS X info.plist.lib templates. 

This means the Qt frameworks will now get a valid
CFBundleIdentifier entry the same way as app bundles:
by extracting the identifier prefix from Xcode settings
and appending framework name.

Task-number: QTBUG-32896
Change-Id: Ica8f28332a88e37a823c46fca7a2c373157af020
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
2014-11-10 16:04:12 +01:00
Fawzi Mohamed
af5f6e35b6 xcodegenerator: use a copy resource phase if possible
Since commmit 0127962e47 the
PBXResourcesBuildPhase is used only for ICONS, because the old
behavior of using it when target path is not given differed from
the documentation and behavior of the makefile generator by using
Contents/Resources as target directory when targeting osx.

The PBXResouceBuildPhase optimizes png, compiles xib or asset catalogs
and copies the rest.
The advantage is that it makes it easy to add resources to the bundle,
the only problem is that the target directory is always the resource
directory.

The copy operation currently used does not compile resources, which
makes adding .xib (for the Launch File required to support iphone 6)
and asset catalogs difficult.

So we restore the old 5.3 behavior for ios, and use the build
resources phase when possible on osx (target Contents/Resources).

On osx this still implies a difference between the makefile
generator and the xcode generator: only the latter compiles resources.

Change-Id: Id1853693e88fc46562b044efdea2bf5f9da2c98c
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
2014-10-30 14:03:50 +01:00
Oswald Buddenhagen
87eb3ea190 work around MSVC2010 ICE
Task-number: QTBUG-42064
Change-Id: Ifffcc0cf9109b76d79f603a13792d7fd9979761c
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
2014-10-29 09:37:17 +01:00
Oswald Buddenhagen
8613b64f53 Merge remote-tracking branch 'origin/5.3' into 5.4
Change-Id: I224e44a9df314b9a99d33148b6cf400fcbc9de8e
2014-10-28 18:21:45 +01:00
Joerg Bornemann
d8f940930e vcxproj: fix writing of librarian settings
The settings of the librarian were never written.
Creation of static libraries only worked by accident.
Adapted the code from the vcproj code path.

Task-number: QTBUG-30712
Change-Id: I69917f44305eb458647392d222db477fe5a5b7c8
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
Reviewed-by: Andy Shaw <andy.shaw@digia.com>
2014-10-28 14:05:48 +01:00
Frederik Gladhorn
2eb26c1709 Merge remote-tracking branch 'origin/5.4' into dev
Conflicts:
	src/gui/text/qfontdatabase.cpp

Change-Id: I6ac1f55faa22b8e7b591386fb67f0333d0ea443d
2014-10-27 13:00:36 +01:00
David Schulz
80ebedecf9 Run VS custom build step in new environment variable scope.
Task-number: QTBUG-32366
Change-Id: I99161b23e3d323fd88766ebe83c8bbfc1d50944e
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
2014-10-23 08:04:13 +02:00
Joerg Bornemann
d1e950b919 qmake vcxproj generator: write PrimaryOutputExtension value
Second attempt. MSVCPROJ_TARGET contains the resolved target name,
including version number and target extension.
We're splitting this value into PrimaryOutput and
PrimaryOutputExtension.
PrimaryOutputExtension is only written if it contains a non-default
value.

Task-number: QTBUG-26782
Change-Id: I4b828dc5dd47322f653585aee1a5767f0cf8bd48
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
2014-10-22 22:19:21 +02:00
Joerg Bornemann
dc612acdc6 fix PRECOMPILED_SOURCE regression in vc(x)projs
Commit af760349 in Qt4 broke the possibility of having a
PRECOMPILED_SOURCE in a different directory than the
PRECOMPILED_HEADER.
Do not write the PrecompiledHeaderThrough value for the
PRECOMPILED_SOURCE, but use the project default.
The msbuild code path needed adjustments to write the
UsePrecompiledHeader value, even if PrecompiledHeaderThrough is
empty.

Task-number: QTBUG-41917
Change-Id: I74e621f6618cf056e3967c99a2215f76c346b9ee
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
2014-10-17 16:52:14 +02:00
Frederik Gladhorn
881ceeff42 Merge remote-tracking branch 'origin/5.4' into dev
Change-Id: I05fcd8dc66d9ad0dc76bb7f5bae05c9876bfba14
2014-10-09 17:56:52 +02:00
Alessandro Portale
106487387d Removing a few unneeded "? true : false"
Change-Id: Ib13f0ddd65fe78f5559f343f2fc30756b1d3ef76
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
Reviewed-by: Orgad Shaneh <orgads@gmail.com>
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
2014-10-09 09:43:26 +02:00
Joerg Bornemann
6e6c6f9868 fix VS 2008 project file generation
Commit 4f21eb03 utterly broke the project file generation for
VS 2008. The introduced filterByName convenience methods looks for
filter names like "Generated Files", but the code path for
VS <= 2008 used filter names like "GeneratedFiles".
The generated projects were valid but empty.
This commit ensures that both VS generators use the same filter
names.

Task-number: QTBUG-41821
Change-Id: I828fa911bae8d835b073a4c2260316127cc72cda
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
2014-10-09 06:55:52 +02:00
Joerg Bornemann
e5a8134765 fix vcxproj generation for CONFIG-=flat
Commit 4f21eb03 broke the generation of non-flat vcxprojs.
XTreeNode passes filter names to outputFileConfigs that have
the source subdirectory suffixed (e.g. "Generated Files\subdir").
That's why the original code tested the filter names with
QString::startsWith.
I've changed the signature of outputFileConfigs to take a filterId
parameter which contains the unaltered filter name (e.g.
"Generated Files") that will determine the correct filter.

Task-number: QTBUG-41746
Change-Id: If33428526a098f433cd6ceb8ab6608bd9f94ef17
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
2014-10-09 06:55:22 +02:00
Oswald Buddenhagen
f49d5b578c Merge remote-tracking branch 'origin/5.3' into 5.4
Change-Id: I132bb6cce68e9f8413200f7ee75586bd1cada38c
2014-10-06 11:59:47 +02:00
Oswald Buddenhagen
7f18406878 wrap ALL_DEPS somewhat sanely
otherwise we'll produce lines with tens of thousands columns when
dealing with QMAKE_BUNDLE_DATA.

Change-Id: Ia2a70f25e4ee1d3fe976027a7c46d234809a3f70
Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
2014-10-01 10:57:27 +02:00
Oswald Buddenhagen
bd8c18cca5 fix Info.plist location in framework bundles
According to Apple's documentation [1], framework bundles don't
have a 'Contents' folder. Instead, each version folder gets a
'Resources' folder which contains the Info.plist file, and which
is also symlinked at the top-level framework folder.

[1]: https://developer.apple.com/library/mac/documentation/macosx/conceptual/BPFrameworks/Concepts/FrameworkAnatomy.html

Task-number: QTBUG-32895
Change-Id: I5e55cc097b179012add0ceb7c567dace8e282895
Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
2014-10-01 10:56:59 +02:00
Oswald Buddenhagen
9cd9dfb0b1 don't try to create nested top-level bundle dir symlinks
the target path may have multiple components, e.g. Headers/private.
obviously, only the first component must be linked in such cases.

Task-number: QTBUG-32895
Change-Id: If632b3b72c170a9fde36e62c165e06ded53deda3
Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
2014-10-01 10:56:55 +02:00
Oswald Buddenhagen
6c6b5ff8fb de-duplicate top-level bundle symlink creation
multiple QMAKE_BUNDLE_DATA entries can install into the same directory,
but it obviously makes no sense to symlink that repeatedly.

Change-Id: If65f7acdf4e158e33511917a027a380e642e2f28
Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
2014-10-01 10:56:52 +02:00
Oswald Buddenhagen
8c138054b3 redo bundle file dependency tracking
instead of duplicating the plist/icon/bundled_files logic just to obtain
the dependencies, create them as a side effect of the actual target
creation.

Change-Id: I6a0fe26c82c490b1040a7a06d5d0e7a4567ae1af
Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
2014-10-01 10:56:48 +02:00
Oswald Buddenhagen
9fb663e57f fix omission of QMAKE_PKGINFO from sliced bundles
Change-Id: Iff2c6686eae47e09fa6d046c60523aaf79aadfd5
Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
2014-10-01 10:56:45 +02:00
Morten Johan Sørvig
d6444b2e56 Add CFBundleVersion to the Info.plist files.
Add @FULL_VERSION@ -> Qt version substitution to
unixmake2.

This makes the Qt-generated Info.plist files compliant
with the bundle signing/validation process.

Task-number: QTBUG-32896
Change-Id: I1818f028c2f740d699629dd78cc0fe6ffaf94a1c
Reviewed-by: Jake Petroules <jake.petroules@petroules.com>
Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
2014-10-01 10:56:41 +02:00
Gabriel de Dietrich
10bd8e2104 Don't make Info.plist for debug framework bundles
We do so by setting a 'no_plist' config property. Can be overridden
with 'force_debug_plist'.

The debug version of Info.plist would overwrite the release version,
and it also happens to contain invalid data. In particular,
CFBundleExecutable would contain the _debug suffixed libname, which
it shouldn't. See the entry about CFBundleExecutable on
https://developer.apple.com/library/ios/documentation/general/Reference/InfoPlistKeyReference/Articles/CoreFoundationKeys.html

Task-number: QTBUG-32894
Change-Id: Ideb018e4768a7c4e276e1b07d77937451f6db6a2
Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
2014-10-01 10:56:37 +02:00
Oswald Buddenhagen
59e8d430e9 centralize bundle_dir calculation
Change-Id: I353fb4eafc014bccdec71af42f8625b33488ae0d
Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
2014-10-01 10:56:33 +02:00
Oswald Buddenhagen
4849037851 nest bundle-related conditionals for clarity
Change-Id: I97f9d87cb5a114bf4764f13f0fd0d22e9b4da96f
Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
2014-10-01 10:56:29 +02:00
Oswald Buddenhagen
e9c1e3076c make top-level symlinks in bundles point to Current, not the major version
Current already points to the major version, and the other symlinks are
supposed to take advantage of that (so a hypothetical change of major
versions requires just one symlink to be adjusted).

https://developer.apple.com/library/mac/documentation/MacOSX/Conceptual/BPFrameworks/Concepts/FrameworkAnatomy.html

Task-number: QTBUG-32895
Change-Id: I3c3a38c72ba18de6e48b20f2662341672022a274
Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
2014-10-01 10:56:24 +02:00
Oswald Buddenhagen
b56ff1f394 write 'all' target later
this allows us to extend its dependencies, which we will make use of later.

Change-Id: I8809bdffb435455338e88e97049b10beeab0468a
Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
2014-10-01 10:56:20 +02:00
Nico Vertriest
54853c5f66 Doc: Use title case in section1 titles
Using Python script title-cased.py

Task-number: QTBUG-41250
Change-Id: I00d3d7a0b30db7304a7904efd6d63abd9a7b493b
Reviewed-by: Topi Reiniö <topi.reinio@digia.com>
2014-09-30 13:52:51 +02:00
Joerg Bornemann
04d3a89e20 vcxproj: fix custom build steps in different build variants
There's a comment in VCXProjectWriter::outputFileConfigs that
states: "We need to check if the file has any custom build step.
If there is one then it has to be included with 'CustomBuild
Include'".
This patch adds the code to the comment...

Task-number: QTBUG-30373
Change-Id: Ibfef3c80630e08c743bfadce299a8b6a0c58411f
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
2014-09-29 16:08:57 +02:00
Joerg Bornemann
55027c23df introduce VCFilter::findFile
Move common code into a function
and exit early from simple search loop.

Change-Id: I88d1227653e28badc213fbe4ebe1e2a19f6e5793
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
2014-09-29 16:08:54 +02:00
Joerg Bornemann
a8aad121a2 remove unused member VCFilter::CustomBuild
Change-Id: I2b57f0ac020ad1b85ffeb76a214b9cf2f48cb6d3
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
2014-09-29 16:08:47 +02:00
Oswald Buddenhagen
189dc655bb Merge remote-tracking branch 'origin/5.4' into dev
Conflicts:
	src/corelib/tools/qbytearray.cpp
	src/gui/image/qimage.cpp
	src/gui/image/qppmhandler.cpp
	src/gui/kernel/qguiapplication.cpp
	src/gui/painting/qpaintengine_raster.cpp

Change-Id: I7c1a8e7ebdfd7f7ae767fdb932823498a7660765
2014-09-29 14:08:49 +02:00
Andrew Knight
e1ba711992 Add a way for qmake + configure to link dynamically to the CRT
The static CRT, libcpmt.lib, is not shipped with Visual Studio Express
for Windows (unlike VS Express for Windows Desktop or Professional
versions), causing configure and qmake to fail linking if this is the
only VS installed. By removing -MT (which is on by default) and adding
$(CFLAGS_CRT) to the compiler line, -MD can be added to the compiler
flags via the environment, providing a workaround for the issue.

Change-Id: I5613346d60a3a1889c121f04d53b09fbb147fc02
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
2014-09-25 22:14:31 +02:00
Joerg Bornemann
5e6dc39770 remove pointless initializations
Those initializations are done by the constructors already.

Change-Id: Ife58675e2ba4854ef66c813158cb4ed660f530d1
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
2014-09-25 11:23:31 +02:00
Joerg Bornemann
9a2b588556 simplify VCXProjectWriter::outputFileConfig a bit
The fileAdded variable is used to save state between iterations.
There's no need for two variables.

Change-Id: I8144cf7c7b394255459295b82a7ca808bc3951da
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
2014-09-25 11:20:26 +02:00
Joerg Bornemann
8ee2e497ae simplify VCXProjectWriter::outputFileConfig a bit
We don't need the filtername parameter.

Change-Id: I653db4a200c83d095520b47e1451dfe59b956d92
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
2014-09-25 11:20:15 +02:00
Joerg Bornemann
d41d4a0a35 remove special handling for the "Deployment Files" filter
Files in "Deployment Files" should be added as static content, which
happens to be the fallback in the case where checkDeploymentFiles is
false. Also, the calling code expects that an XML tag is added in all
cases. This did not happen for the "Resource Files" filter when
checkDeploymentFiles was false, which led to unmatched closing tags.

This fixes the issue that files added to RESOURCES in different build
variants produced invalid vcxproj files.

Task-number: QTBUG-30373
Change-Id: Ibb27e67641ba63150938cf826ea1881d182fb841
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
2014-09-24 14:54:31 +02:00
Joerg Bornemann
990a413a2e refactor VCXProjectWriter::outputFileConfig
Put common code into a function.
Subsequent patches will become easier.

Change-Id: I0d549886585d90e4701a2430503bc0d2d716e341
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
2014-09-24 14:52:30 +02:00
Joerg Bornemann
4f21eb0387 uncopy & -pastify code
Make use of the mythical C++ feature "function" to soothe the brain ache
of anyone who looks into this part of the code.

Change-Id: I740e29f1777d91d3b34a61fa62a5c23c222334b9
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
2014-09-24 14:52:21 +02:00
Matti Paaso
974c210835 Update license headers and add new license files
- Renamed LICENSE.LGPL to LICENSE.LGPLv21
- Added LICENSE.LGPLv3
- Removed LICENSE.GPL

Change-Id: Iec3406e3eb3f133be549092015cefe33d259a3f2
Reviewed-by: Iikka Eklund <iikka.eklund@digia.com>
2014-09-24 12:26:19 +02:00
Richard Moe Gustavsen
4d8dd7f673 Xcode generator: always create 'Copy Bundle Resources' phase
If creating an asset catalog from Xcode, Xcode will
add it to the "Copy Bundle Reources" phase, if it exists.
Since we don't always generate that phase, Xcode will
silently fail with the result that the asset catalog will
not take effect (no icon, launch images etc).

This patch will ensure that we always create the phase
(like native Xcode project does), which will fix the
problem.

Change-Id: Ief949d63543977f1021db992e0c41714d898e68b
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
2014-09-20 18:21:45 +02:00
Joerg Bornemann
21f5d22f6f make it possible to suppress warnings of the vcxproj generator
When the user adds a compiler option that qmake doesn't understand, a
warning message is printed. One can suppress these warnings now by
adding CONFIG+=suppress_vcproj_warnings to the project file.

Task-number: QTBUG-37520
Change-Id: Ieb7ad2c900329e76636047dff85824ea0456f608
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
2014-09-17 12:22:21 +02:00
Joerg Bornemann
f5b53c8e3e add missing DefaultLanguage property for WinRT projects
Task-number: QTBUG-37628
Change-Id: I7cce0641b8958fe1d97ace21cb5392e32a067649
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
Reviewed-by: Oliver Wolff <oliver.wolff@digia.com>
2014-09-15 13:32:08 +02:00
Jake Petroules
4e8720d413 Use new, supported APIs in OS X 10.10 and iOS 8.0 to get the OS version.
Gestalt is deprecated so we can't use it long term. At the same time,
the new API is cross platform, so we'll no longer have to parse strings
in -[UIDevice systemVersion] either.

Change-Id: Ic81797174c1a3d50b47b9b209205a6a506cc75ef
Reviewed-by: Rafael Roquetto <rafael.roquetto@kdab.com>
2014-09-12 22:01:58 +02:00
Jerome Pasion
a14ec355c1 Doc: Fixed broken links introduced by "OS X" doc change.
-qtdoc repo uses "OS X" instead of "Mac OS X" and this caused
broken links.
-more comprehensive change still needs to be done but the new
 name is used in the page to maintain consistency. At least within
 the page or class.

Change-Id: I8a5650046fc0413cbb18359b743ecd30fd62e417
Task-number: QTBUG-40759
Reviewed-by: Martin Smith <martin.smith@digia.com>
Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
2014-09-11 21:45:46 +02:00
Adam Strzelecki
af155105a9 qmake: Add QMAKE_SONAME_PREFIX variable
If defined, the value of this variable is prepended to the built shared
library's SONAME identifier.

For more information, see: qmake/doc/src/qmake-manual.qdoc#qmake-soname-prefix

Task-number: QTBUG-31814
Change-Id: I4bceaf0c93162e4fad6bb424af1b82e74d38acdc
Reviewed-by: Jake Petroules <jake.petroules@petroules.com>
2014-09-08 22:19:33 +02:00
Adam Strzelecki
dbb0d54699 qmake: Don't make rpaths starting with @ or $ absolute
Defaults qmake behavior is to make all project RPATHDIR paths absolute prior
passing them to linker. We need to make an exception for paths starting with @
such as @executable_path (Apple platforms) or $ such as $ORIGIN (Linux).

Task-number: QTBUG-31814
Change-Id: Ie9887c0046c5030c4128dda945b491a5d389ba34
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
Reviewed-by: Jake Petroules <jake.petroules@petroules.com>
2014-08-09 15:37:32 +02:00
Thiago Macieira
c1be0fbe7d Fix compilation after qstringlist.h stopped including qdatastream.h
Change-Id: Ida09e794262dce78cd5169aac56b610fabc9082c
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
2014-08-08 10:44:59 +02:00
Tor Arne Vestbø
571f52920b Xcode: Reference files by absolute path, and name them by basename only
Xcode uses project and group relative file paths, but to keep things
simple for ourselves we use absolute paths everywhere. We now make an
effort to actually make these paths absolute before telling Xcode they
are.

We also make the visual representation of the files inside Xcode be
just the filename, not the full path, like Xcode itself does. This
is among other things a prerequisite for Xcode to stop complaining
about missing launch images for retina 4-inch screens.

Change-Id: I5ff6bf07f61888e3c9fe2f64cbc2beb896b8442d
Reviewed-by: Andy Shaw <andy.shaw@digia.com>
2014-07-31 18:37:05 +02:00
Frederik Gladhorn
4010cfbf2d Merge "Merge remote-tracking branch 'origin/5.3' into dev" into refs/staging/dev 2014-07-30 22:52:15 +02:00
Tor Arne Vestbø
bae184532d Xcode: Don't show QMAKE_INTERNAL_INCLUDED_FILES from Qt (prf/pri)
We build "Supporting Files" out of QMAKE_INTERNAL_INCLUDED_FILES, which
is really not supposed to be exposed to the user like that, but since
the variable will hold user-included pri files eg., the Xcode generator
piggy-backs on this variable to list the files.

To make the project view in Xcode a bit cleaner we explicitly exclude
any file living inside the Qt directory, meaning we won't show all the
pri and prf files from Qt's mkspecs directory anymore.

Change-Id: I828700aceac5fdf3ea2b27d9ba3885543c2ad137
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
2014-07-30 19:38:38 +02:00
Joerg Bornemann
3dedf5ac37 Doc: remove old FORMS3 snippet
Change-Id: Ibb39c85facfbe8604e4b8a47525eb2c6babd2716
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
2014-07-30 10:32:40 +02:00
Joerg Bornemann
2dcbd82c69 remove FORMS3 support from VS project generator
Change-Id: I3b2ce386a66c9635e62d1a729c75284d223c3423
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
2014-07-30 10:32:30 +02:00
Oswald Buddenhagen
26bbc40db9 add priority sorting to $$resolve_depends()
all else being equal, items with a higher numerical priority will appear
first in the result.

Change-Id: I4ee37ff404a53c4152a1e4fc2fc3c23ef525234d
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
2014-07-30 10:31:53 +02:00
Oswald Buddenhagen
1c23e51dbd remove pointless 'group' parameter
the c'tor always determines the group itself anyway.

Change-Id: Ia8f1e747aaefdab164beae34851aa99cec9b790a
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
2014-07-30 10:31:45 +02:00
Thiago Macieira
67665e7763 Correct the list of files included in "make dist"
At the very least, include the files named in the sources, like
HEADERS. It was quite surprising to send a tarball that included the
.pro file and the .cpp sources, but none of the headers.

On the other hand, the .qmake.cache file need need not be sent either,
despite being include()d in qmake's processing.

Change-Id: I8f48ca3e8040f954f321f4643b01c0f36aafe2d7
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
2014-07-30 10:25:05 +02:00
Joerg Bornemann
049700a6a9 don't compile the xcode generator on Windows
With MSVC it takes minutes to compile pbuilder_pbx.cpp.
So let's remove this generator that's never used.

Change-Id: I13038d551283d96dfb0baf0b8a8a68c6538193c8
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
2014-07-29 15:35:01 +02:00
Frederik Gladhorn
ea90032685 Merge remote-tracking branch 'origin/5.3' into dev
Conflicts:
	src/network/ssl/qsslsocket_openssl_symbols.cpp

Change-Id: Ic62419fa1fee5f4de6c372459d72e6e16f9a810b
2014-07-29 12:56:06 +02:00
Christian Kandeler
3a9763d349 qmake: Document the "aux" template type.
Better late than never.

Change-Id: If3bbeb4dfe3a8d49ceb02d9c2d0f2eff71595105
Reviewed-by: Leena Miettinen <riitta-leena.miettinen@digia.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
2014-07-25 09:24:39 +02:00
Joerg Bornemann
d97624845a get rid of pointless MSVC security warnings
Change-Id: I546a30bddec8e3c5c9a42745f8458573b6db1bdf
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
2014-07-24 17:37:15 +02:00
Joerg Bornemann
9d12e95697 remove qsystemlibrary.obj from clean target
This file is already listed in QTOBJS.

Change-Id: I5c77620dc5e441435bd31a87a08178e0c82e9c05
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
2014-07-24 17:37:09 +02:00
Joerg Bornemann
55f88e6e31 fix qmake warning about unknown /Zc:strictStrings option
Make /Zc:strictStrings known to qmake's MSVC compiler option parser.

Change-Id: I5a4494096fc1d67c96c6de52bb0f1e94eff46136
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
2014-07-24 17:36:57 +02:00
David Faure
c99dfd8f63 QSettings: use QStandardPaths to get XDG_CONFIG_HOME.
This allows to use the "test mode" of QStandardPaths in unittests,
to stay away from the user's real settings.

Change-Id: I1cb1f63a4bff35dfe236924c4dcd7cf761ee50c1
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2014-07-23 20:05:07 +02:00
Tor Arne Vestbø
07c0fdfe7a Xcode: Fix QMAKE_PRE_LINK dependency handling
Depending on *.o in the Xcode output dir did not actually result in a
proper dependency. In Xcode5 this didn't matter much, as the effect was
that the build phase was run every time, but in Xcode6 the phase was
skipped. We now depend on the object directory itself, which will get
its modification time updated to match any rebuilt object files.

Change-Id: I8fa6f06c9008c4ce8f7fde7706057ce101bb5727
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@digia.com>
2014-07-23 13:37:22 +02:00
Jerome Pasion
e4661df947 Doc: Removed "url" variable from qdocconf files.
url is set in qtbase/doc/global which is inherited by the
Qt 5 module qdocconf files.

Change-Id: Ieffa174f598f4a3b8ce8be9bfae7ca9b6981f12b
Reviewed-by: Martin Smith <martin.smith@digia.com>
2014-07-04 12:12:29 +02:00
Frederik Gladhorn
a09a8d509a Merge remote-tracking branch 'origin/5.3' into dev
Conflicts:
	mkspecs/qnx-x86-qcc/qplatformdefs.h
	src/corelib/global/qglobal.h
	src/network/socket/qnativesocketengine_winrt.cpp
	src/plugins/platforms/android/androidjniaccessibility.cpp
	src/plugins/platforms/windows/qwindowswindow.cpp

Manually adjusted:
	mkspecs/qnx-armle-v7-qcc/qplatformdefs.h
	to include 9ce697f2d5

Thanks goes to Sergio for the qnx mkspecs adjustments.

Change-Id: I53b1fd6bc5bc884e5ee2c2b84975f58171a1cb8e
2014-07-01 16:25:19 +02:00
Andrew Knight
1ae61e95e4 winrt: Remove WP8.0 references from package manifest feature
Also, harmonize the qmake documentation.

Change-Id: I8722370f86982e33ccf97f631ae257c4c46cade2
Reviewed-by: Maurice Kalinowski <maurice.kalinowski@digia.com>
2014-06-25 16:33:55 +02:00
Oswald Buddenhagen
11161bbfad pass a pointer instead of a reference to initFrom()
msvc thinks that it's impossible to create a null reference (because
some language lawyer said so) and thus complains about our assert that
checks the reference's validity. work around by not dereferencing the
pointers we already have.

Change-Id: Ife2288d4187860105de12fdebc0e671e0159ace3
Reviewed-by: Tobias Hunger <tobias.hunger@digia.com>
2014-06-20 11:47:19 +02:00
Andy Shaw
dbc7ed8214 Ensure that there is no duplication of the output directory in output
When a relative path was specified as the output then it would be in both
Option::output_dir and Option::output. Therefore in that case
Option::output should be just the filename as Option::output_dir has the
correct path to output to.

Task-number: QTBUG-39460
Change-Id: Idc988e6bad94f34b89660fb5e8d6fa3a39dc623b
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
2014-06-06 08:49:06 +02:00
J-P Nurmi
0fcce50af0 Merge remote-tracking branch 'origin/stable' into dev
Conflicts:
	mkspecs/features/qt.prf
	src/plugins/platforms/xcb/qxcbwindow.h
	src/tools/qdoc/qdocindexfiles.cpp
	src/widgets/kernel/qwidget_qpa.cpp

Change-Id: I214f57b03bc2ff86cf3b7dfe2966168af93a5a67
2014-06-05 22:26:44 +02:00
Oswald Buddenhagen
08a7828429 install pdb files also for static libraries
the condition is now consistent with that of the target itself (which
means that by setting target.CONFIG=no_dll one can actually suppress
installing the target itself even if it's not a dll, but anyway).

Task-number: QTBUG-39253
Change-Id: Id4684a550a33b463594ab537eaa9e1cbfb61e4ff
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
2014-06-05 17:11:46 +02:00
J-P Nurmi
e437d5ff4b qmake: generate make dist target for subdir projects
The original dist target no longer copies files around, but
merely does the final packaging. It depends on a new recursive
distdir target, which handles copying distfiles to the distdir.

[ChangeLog][Tools][qmake] Added 'make dist' target for subdirs
projects (unix only)

Task-number: QTBUG-21910
Change-Id: Ib59139c3fe196caf832d8dcefab484ab91f1f5ce
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
2014-06-02 23:27:00 +02:00
Giuseppe D'Angelo
9ce8a6b94c Fix QMAKE_EXTRA_COMPILERS' depend_command being ignored
A typo caused qmake to stop output dependency information
added by the depend_command clause.

Task-number: QTBUG-13334
Change-Id: I00fabc87438ce94e80341e6f88aa2e0eaab57e19
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@digia.com>
2014-05-30 19:36:38 +02:00
Samuel Gaist
9857da723d Remove the need for the dot in OS X/iOS bundle prefix
This patch removes the need for the user to put a dot at the end of the
bundle prefix which makes it's use more consistent and intuitive.

The prefix is based on what Xcode calls the "Company Identifier",
basically "com.digia" plus the product name. Changing that to
"com.digia.prefix-" and the product name to "Foo" results in a bundle
identifier of "com.digia.prefix-.Foo" which is in line with Xcode.

Change-Id: I9b62fc4dee1df51b523ce890a8896ea58ea2c62d
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
2014-05-28 16:52:04 +02:00
J-P Nurmi
f2a3307cef qmake: share the default variables
Eliminate duplicate code => collect the default variables
to MakefileGenerator::writeDefaultVariables().

Task-number: QTBUG-21910
Change-Id: Ia03ce0240dd9a101ad9d35db636cd88f38a49320
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
2014-05-27 06:26:57 +02:00
Simon Hausmann
2064bf6155 Merge "Merge remote-tracking branch 'origin/stable' into dev" into refs/staging/dev 2014-05-22 14:24:28 +02:00
Tor Arne Vestbø
0127962e47 Xcode: Make QMAKE_BUNDLE_DATA always copy files relative to root of bundle
Instead of sometimes ending up inside Content/Resources. The two build
phases PBXCopyFilesBuildPhase and PBXResourcesBuildPhase have different
semantics of where to place the files. For the former we use the root of
the bundle as the destination, and this is how QMAKE_BUNDLE_DATA is
documented and used, as well as how unixmake2.cpp implements it. The
latter on the other hand, always ends up in the resources subdirectory
on OSX.

Task-number: QTBUG-35318
Change-Id: I45bbd0dfe7ea78ae330ecb0c91efa74e1c76c9eb
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@digia.com>
2014-05-22 13:20:44 +02:00
Tor Arne Vestbø
84c2749767 Xcode: Make sure we add a PBXBuildFile entry for ICON
The ICON qmake variable is implemented in the Xcode generator through
the ProjectBuilderSources::files() function, where we append the icon
to SOURCES (for some reason). This means we can't exclude non-object
sources when writing out PBXBuildFile entries, as the icon file entry
is referenced later on in the bundle resources phase.

This is a partial revert of 66f6e5b162 which introduced the broken
logic.

Change-Id: I120d2325165a1eefd3961a9162e9e5eb3a576c36
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@digia.com>
2014-05-22 13:20:40 +02:00
Kai Koehne
297be273a3 De-inline QDebug destructor
This injected quite some code on every use of qDebug and friends,
while not giving any measurable performance benefits.

Change-Id: I7b51f99130f18f1252da01e313f7b97c43a5480d
Reviewed-by: Orgad Shaneh <orgads@gmail.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2014-05-22 08:35:06 +02:00
Andrew Knight
9d3b169bda Add build support for Windows Phone 8.1
Tweak qmake, add mkspecs for emulator and device, adjust the
manifest template for WP8.1, and add missing icons.

Change-Id: I7a6405fa85297ae4cc8522015274e65fb7a315a6
Reviewed-by: Oliver Wolff <oliver.wolff@digia.com>
2014-05-22 07:59:49 +02:00
Simon Hausmann
508b95899d Merge remote-tracking branch 'origin/stable' into dev
Change-Id: Ia36e93771066d8abcf8123dbe2362c5c9d9260fc
2014-05-22 07:46:17 +02:00
Richard Moe Gustavsen
4be7cd09d6 xcode generator: don't modify or copy QMAKE_INFO_PLIST
If the project has a custom Info.plist assigned to
QMAKE_INFO_PLIST, we should leave it as-is without
scanning and replacing contents inside it. Since we
always copy the file to the build folder at qmake
time, any later attempts to modify the source file
will not have any effect.

A better solution is to just reference the custom
plist directly from the Xcode, without modifying it.

This change will also stop unixmake2 from assigning the
default plist to QMAKE_INFO_PLIST, since we need to
know in the xcode generator if the variable was set in
the project or not.

Task-number: QTBUG-38260
Change-Id: I3c488b2960170c544d94f9db89d3ca95ee290bdd
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
2014-05-21 01:34:38 +02:00
Frederik Gladhorn
3d4aeb7919 Merge remote-tracking branch 'origin/stable' into dev
Conflicts:
	src/gui/kernel/qguiapplication.cpp

Change-Id: Ibe75603dc8a51769db6550ea3f07bc8d19b0be85
2014-05-13 22:19:10 +02:00
Joerg Bornemann
697cb33896 remove unused macro definition
Change-Id: Ic2451dd7ae352b9e515c52c20a43495066fb72c8
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
2014-05-13 16:08:01 +02:00
Frederik Gladhorn
ff334fd574 Merge "Merge remote-tracking branch 'origin/stable' into dev" into refs/staging/dev 2014-05-13 16:08:01 +02:00
Frederik Gladhorn
b5552bab40 Merge remote-tracking branch 'origin/stable' into dev
Manually changed enum to LibGL in
    src/plugins/platforms/xcb/qglxintegration.cpp

Change-Id: If34ee6cce3d1d51fb4bb1fdfa59c30389ea0d207
2014-05-13 14:21:22 +02:00
Joerg Bornemann
41ef1095b4 remove automagic command path fixing misfeature
Qmake tried to extract the actual executable part of an
extra compiler's commands and depend_command value and
then "fix" it by replacing the directory separators in
it with their local versions and calling QDir::cleanPath
on it.

This misfeature was implemented incompletely and led to
unexpected results (see the numerous attempts to fix
QTBUG-16372).

The user is responsible for passing a correct command by
calling the shell_quote or shell_escape functions if
necessary.

Change-Id: Ic4bfe9eeb697775cd99c865e7a9d335e63605dea
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
2014-05-12 18:14:13 +02:00
Joerg Bornemann
f5f4f501a4 move qlocale_mac.mm to OBJECTIVE_SOURCES
This fixes a warning when loading qmake.pro in Qt Creator on OS X.

Change-Id: Iabd70f2b5b9615d0fb1563081f485e6a4c828823
Reviewed-by: Jake Petroules <jake.petroules@petroules.com>
Reviewed-by: Liang Qi <liang.qi@digia.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
2014-05-08 21:28:45 +02:00
Alessandro Portale
01ce104a3e qmake: Use QDir::toNativeSeparators on paths printed as info
Change-Id: I8c587164bcff742f7ac8ad3f3f28e0b16645cb2a
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
2014-05-08 16:37:59 +02:00
Frederik Gladhorn
1326cd15f7 Merge remote-tracking branch 'origin/stable' into dev
Conflicts:
	mkspecs/qnx-x86-qcc/qplatformdefs.h
	src/corelib/global/qglobal.h
	src/opengl/gl2paintengineex/qpaintengineex_opengl2.cpp
	src/opengl/qgl.cpp
	src/opengl/qglpixelbuffer.cpp
	src/opengl/qglshaderprogram.cpp
	tests/auto/opengl/qglthreads/tst_qglthreads.cpp

Change-Id: Iaba137884d3526a139000ca26fee02bb27b5cdb5
2014-05-06 16:50:03 +02:00
Richard Moe Gustavsen
1b80c13b3a Xcode generator: resolve QMAKE_BUNDLE_RESOURCES from project source
A pro file that adds files to QMAKE_BUNDLE_DATA using relative
paths will fail building if doing shadow builds. The reason is
that we look for the files inside the build dir.

This change will make sure we resolve files from the source dir
when not using full paths.

Task-number: QTBUG-37054
Change-Id: Ic1067861097b3b6a640ee862472d728d6188576a
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
2014-05-06 16:35:56 +02:00
Frederik Gladhorn
ccc6efb6e9 Merge remote-tracking branch 'origin/release' into stable
This merge adds the opengl rename.

Change-Id: I84ea0b6abee9780ebb2cf3f64ab9e3fdf2acab3e
2014-05-01 13:08:42 +02:00
Oswald Buddenhagen
d52b00e1d3 fix $$shell_path() for mingw+sh
the msys shell expects unix-like paths with drives converted
from d:\ to /d/.

Change-Id: I09e25ed2c868702e5d7d8b9cc8c04cc13410eeff
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
2014-04-30 16:57:09 +02:00
Andrew Knight
7c12cd0ebb Windows Phone: add language control to the package manifest
This allows the developer to provide a list of languages to the manifest
by listing them in WINRT_MANIFEST.languages. It also allows setting the
default language with WINRT_MANIFEST.default_language.

Task-number: QTBUG-38557
Change-Id: I5cb94c9f45146e3068d0833b9e669dc17dca14b2
Reviewed-by: Oliver Wolff <oliver.wolff@digia.com>
2014-04-30 08:48:15 +02:00
Joerg Bornemann
03fc60debf remove pointless checks for "." and ".."
Change-Id: Id2b1353a73012461c594319f9d1341bccef85ecc
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
2014-04-29 18:33:18 +02:00
Joerg Bornemann
818eae42cb make use of QDir::NoDotAndDotDot
Change-Id: Ib4bdc0d4051fed25dec7dc030658b4d0822a37bd
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
2014-04-29 18:33:11 +02:00
Andrew Knight
c1625ef823 Fix vcxproj generation on Windows Phone
f412f2b5 refactored the platform tool set retrieval, but made the
call too early to choose the right tool set on Windows Phone. This
fixes the call so that it does not depend on the WinPhone member variable,
and also makes it forward-compatible with Windows Phone 8.1.

Task-number: QTBUG-38516
Change-Id: Ide91563f5c7f909c4d1a258adc29af6c94595dc9
Reviewed-by: Oliver Wolff <oliver.wolff@digia.com>
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
2014-04-25 06:44:18 +02:00
Eskil Abrahamsen Blomfeldt
a162a3cbbc Android: Add "unversioned_libname" configuration
On Android, there's a limitation set on the names of the libraries
you deploy that they must start with "lib" and end with ".so", so
Android apps will link against and deploy with the unversioned
libQt5FooBar.so libraries. When cross-compiling on Windows however,
due to the lack of symbolic links, the only installed library
used to be the main library target "libQt5FooBar.so.X.Y.Z" (for
version X.Y.Z.) This has been worked around in packaging, but
breaks building add-on modules on top of Qt, and is clearly
wrong.

This patch introduces a new "unversioned_libname" configuration
in qmake which is currently only supported for the Unix makefile
generator and only enabled for Android builds. When it is enabled,
only the unversioned library "libQt5FooBar.so" will be created.

Task-number: QTBUG-38347
Change-Id: Ia8897ca7a23a62e2a526d0e02854899b02eb19dc
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
2014-04-25 06:34:17 +02:00
Oswald Buddenhagen
06fef71775 document new QTPLUGIN magic
Change-Id: Ia12f55a3e6bd670cb95c21c8f896b0451dd63693
Reviewed-by: Fawzi Mohamed <fawzi.mohamed@digia.com>
Reviewed-by: Leena Miettinen <riitta-leena.miettinen@digia.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
2014-04-25 06:34:13 +02:00
Jani Heikkinen
54c1e5ed22 Merge remote-tracking branch 'origin/release' into stable
Change-Id: Id13b4a3803664692f32f9d57549be8a0c4a08567
2014-04-23 12:42:48 +03:00
Oswald Buddenhagen
c99f909bed don't make relative paths if we don't know the top-level build dir
regression from qt4.

Task-number: QTBUG-37113
Change-Id: I34813f03d8ec686e3ecb49f66629079489a3d83d
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
2014-04-16 07:28:52 +02:00
Oswald Buddenhagen
50bc2b25d8 fix default QMAKE_PKGCONFIG_LIBDIR
it needs neither native separators, nor a trailing separator.

the QMAKE_PKGCONFIG_INCDIR default was already ok.

Change-Id: I1048b3870fd3ca09aa76b41aecda7d90402aa64a
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
2014-04-15 17:37:33 +02:00
Oswald Buddenhagen
50b25458cc don't emit -L/-F/-I with system dirs to .pc files
Change-Id: Idecb6f8ba61872c23856a8c7e22305c01c67f0b9
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
Reviewed-by: Davide Pesavento <davidepesa@gmail.com>
2014-04-15 17:37:28 +02:00
Frederik Gladhorn
98d3e40fb7 Merge remote-tracking branch 'origin/stable' into dev
Conflicts:
	mkspecs/qnx-armv7le-qcc/qplatformdefs.h
	src/printsupport/kernel/qcups.cpp
	src/widgets/styles/qstyle.h
	tests/auto/widgets/itemviews/qlistwidget/tst_qlistwidget.cpp

Change-Id: Ia41e13051169a6d4a8a1267548e7d47b859bb267
2014-04-11 14:36:55 +02:00
Oswald Buddenhagen
362c75f7c1 in command line args, escape tabs as well
Task-number: QTBUG-27154
Change-Id: I4a204b2bf2231027db55a444f304190c3b30878c
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
2014-04-07 17:37:13 +02:00
Oswald Buddenhagen
fb143abbfb de-duplicate code
Change-Id: Ic056acf739659215241c1cab6a462b1ab591dc78
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
2014-04-04 19:32:21 +02:00
Oswald Buddenhagen
a4ec90175c purge vestiges of opengl es 1 support
amends 0d5170256c.

Change-Id: Ifa178d38f602bb7c66ef13334673ff47e332af5b
Reviewed-by: Jørgen Lind <jorgen.lind@digia.com>
Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
2014-04-04 19:32:21 +02:00
Thiago Macieira
7d4bc536a2 Don't fileFixify PRECOMPILED_HEADER twice
fileFixify must not be called twice on the same file path, since it will
convert an absolute path from the shadow build to an absolute path in
the source dir. The first fileFixify occurs in MakefileGenerator::init,
along with the fixifying of INCLUDEPATH.

Change-Id: I607870573a80eaf834ea5f540bbe1451ec983114
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
2014-04-04 19:32:21 +02:00
Joerg Bornemann
826ab028a8 vcxproj generator: append version suffix only to library targets
Task-number: QTBUG-38066
Change-Id: I2f1635f2cb34acb388c380fc2fc3fbe4df04bb03
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
2014-04-03 18:31:51 +02:00
Joerg Bornemann
10a0ac759e Windows XP target support for MSVC >= 2012
To enable windows xp support, we must do two things:
1. linker flag must be /SUBSYSTEM:CONSOLE,5.01 or
   /SUBSYSTEM:WINDOWS,5.01. For x64, the version is 5.02.
2. Do not use Windows Kit 8. Win SDK v7.1A is recommended. Prepend the
   right include paths and lib paths to INCLUDE and LIB before
   building.

The Windows XP target support is enabled by passing "-target xp" to
configure.

Task-number: QTBUG-29939

Change-Id: I84c8439606cc2a9d27d64947702846faa4f1e4a2
Reviewed-by: Lucas Wang <wbsecg1@gmail.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
2014-04-03 18:31:45 +02:00
Joerg Bornemann
f412f2b5ee move platform toolset retrieval to VcprojGenerator
In a subsequent commit we will need access to more information of the
project object. This is merely a refactoring.

Change-Id: I40e501d037eb7d0295e1057e7b86e404e88e6ca3
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
2014-04-03 18:31:38 +02:00
Iikka Eklund
d6f58e5e17 Merge "Merge remote-tracking branch 'origin/stable' into dev" into refs/staging/dev 2014-04-02 07:36:48 +02:00
Joerg Bornemann
83de197a57 qmake: use the manifest embedding feature of the MSVC linker
Since VS 2012 the linker supports the /MANIFEST:embed option, which can
be used to embed the automatically generated manifest without calling
mt.exe. Using this feature simplifies our generated makefiles, esp. in
the case of incremental linking.

Task-number: QTBUG-37363
Change-Id: I2c2d8d2abf36c1b9e7b41bc15244344aab8f5b6e
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
2014-04-01 15:56:37 +02:00
Maurice Kalinowski
0c7241ccf2 Add documentation for WINRT_MANIFEST
Basically a copy of the inline documentation inside the prf file.

Task-number: QTBUG-37788
Change-Id: Ie6df1597297223be778c748aad525f5521232cb7
Reviewed-by: Leena Miettinen <riitta-leena.miettinen@digia.com>
2014-03-31 12:09:43 +02:00
Tasuku Suzuki
a0dc3e608f qmake: change a linker option in .pc file from -llibhoge to -lhoge
Change-Id: Ib4d01bf190eec753f1b5e37e8e5871514e43ac71
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
2014-03-26 05:18:48 +01:00
Joerg Bornemann
b73d6be6a0 qmake: add replacement function getenv
This is useful for querying environment variables which have
parentheses in their name. Such jewels exist on Windows.
The usual $$(VARNAME) syntax fails for those.

Change-Id: I1d2766cabdc7f637caa9ae6408967685e02f5029
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
2014-03-20 08:35:24 +01:00
Oswald Buddenhagen
00fe7bd975 make property name doc match reality
it's QT_INSTALL_CONFIGURATION, not QT_INSTALL_SETTINGS.
probably the most useless of all properties, but anyway.

Change-Id: Ia1e739ab4ed59e2bcd3199914caed2b3db9070ee
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
2014-03-15 10:44:34 +01:00