Commit Graph

767 Commits

Author SHA1 Message Date
Oswald Buddenhagen
70f8567429 remove pointless path trimming
there is no reason why there should be unexpected leading or trailing
whitespace in an extra compiler's .depends list.

Change-Id: I46be75063180131e135fc6eea0238a482073618a
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
2015-02-17 18:27:37 +00:00
Oswald Buddenhagen
e3a7237d82 fix quoting issues. all of them. (*)
instead of quoting more or less random variable contents early,
consistently quote everything only right before it is needed. this way
we can be sure that everything is correctly quoted, but not over-quoted.

this removed the need for the insanity that unescapeFilePath() and
similar ad-hoc contraptions were.
this had the somewhat counter-intuitive effect that it was possible to
remove escapeFilePath() calls from PBX::writeSettings() calls - these
were actually only unescaping.

[ChangeLog][qmake][Important Behavior Changes] A lot of quoting issues
have been fixed. As a side effect, qmake has become more sensitive to
over-quoted file names in project files.

(*) ok, maybe not. close enough.

Task-number: fatal: out of memory
Change-Id: I8c51cfffb59ccd156b46bd5c56754c480667443a
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
2015-02-17 18:27:29 +00:00
Oswald Buddenhagen
c0d67bb5c9 fix filename handling in replaceExtraCompilerVariables()
fixing and escaping is now a tri-state option:
- none (this removes the need to unescape the result right afterwards in
  some cases)
- local shell (for system())
- target shell (for Makefile)

Change-Id: I5b78d9b70630fe4484dc964eff5f62793da35764
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
2015-02-17 18:27:25 +00:00
Fawzi Mohamed
6ccf0a326e Use relative path for QMAKE_BUNDLE_DATA
Use of FileFixifyAbsolute with non-default in_dir and out_dir
is not defined (and produces bogus results).
Using FileFixifyRelative when handling QMAKE_BUNDLE_DATA as a relative
path is fine.

Change-Id: I49902dc9f5b8029d092a4419c0cff5483e419c30
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
2015-02-17 17:28:57 +00:00
Joerg Bornemann
f90c186058 fix vcxproj generation for CONFIG-=flat, part II
Commit 8ee2e497 introduced a regression for CONFIG-=flat vcxproj files.
Files with custom build steps (e.g. foo.h with Q_OBJECT) were written
into top-level filters ("Header Files" instead of
"Header Files\my\sub\dir").
The assumption that the parameter filtername always equals
VCFilter::name was wrong.

Change-Id: Id5178550310d06b73e42f18597a27012ddd89bb7
Task-number: QTBUG-44413
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
2015-02-13 12:34:37 +00:00
Joerg Bornemann
405bdee0c9 save one call of filterByName
We already have saved this information in the loop above.

Change-Id: Ic0e0a66b01e9ee001932d7d798d848abc746ef95
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
2015-02-13 12:34:34 +00:00
Joerg Bornemann
b8a162ee97 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").
Function filterByName must be called with the substring before the
backslash.

Change-Id: Ic259e6316ab0727828773b13e0d8ad0cc7f0808f
Task-number: QTBUG-41746
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
2015-02-13 12:34:31 +00:00
Joerg Bornemann
7af4d5da90 Revert "fix vcxproj generation for CONFIG-=flat"
This reverts commit e5a8134765.
A much simpler fix for QTBUG-41746 is about to follow.

Change-Id: I1eea1785e00b4d7d470108d8dc3272a2af438ef4
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
2015-02-13 12:34:27 +00:00
Joerg Bornemann
e29496e5cf vcxproj: fix handling of files that are excluded from build
OutputFilterData::info was never initialized.
This amends 04d3a89e.

Change-Id: Iddab1a615d10e226465ae1da5863bc8602ddb37c
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
2015-02-13 12:34:23 +00:00
Jani Heikkinen
83a5694dc2 Update copyright headers
Qt copyrights are now in The Qt Company, so we could update the source
code headers accordingly. In the same go we should also fix the links to
point to qt.io.

Outdated header.LGPL removed (use header.LGPL21 instead)

Old header.LGPL3 renamed to header.LGPL3-COMM to match actual licensing
combination. New header.LGPL-COMM taken in the use file which were
using old header.LGPL3 (src/plugins/platforms/android/extract.cpp)

Added new header.LGPL3 containing Commercial + LGPLv3 + GPLv2 license
combination

Change-Id: I6f49b819a8a20cc4f88b794a8f6726d975e8ffbe
Reviewed-by: Matti Paaso <matti.paaso@theqtcompany.com>
2015-02-11 06:49:51 +00:00
Sune Vuorela
99f8e817fe Make .la file generation reproducible in qmake
qmake seems to be adding current date/time to the .la files for no
reason, so let's stop do that.

This way, two invocations of qmake actually gives bit for bit similar
output of .la files.

Change-Id: I93c7c4075cc1e05214849eec8629f41ce01e5914
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
2015-02-05 21:17:29 +00:00
Oswald Buddenhagen
009df82f1a make quoting in the prl writer more robust
Change-Id: Idd9f64ac608b7e4ed840d5d9925bf741e03d78ab
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
2015-02-05 14:26:54 +00:00
Oswald Buddenhagen
a06f37c075 fix conditional nesting botch-up in RES_FILE construction
it makes no sense to test for OBJECTS_DIR emptiness when we are going to
use DESTDIR instead.

Change-Id: I0f7115fc8a9fe2a996417d5f50bd0165773129fa
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
2015-02-05 14:26:52 +00:00
Oswald Buddenhagen
6bb69b9b0e don't resolve DESTDIR against source dir in RES_FILE construction
that makes no sense at all. and OBJECTS_DIR is not resolved, either.

Change-Id: Ie76b9de6bb11ae42945255f2e168943066d2f60d
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
2015-02-05 14:26:49 +00:00
Oswald Buddenhagen
ea4a84074e don't fail to normalize RES_FILE for no apparent reason
Change-Id: I43d2e45a2743cd8d78229b5ae2bd5f63d92d74f8
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
2015-02-05 14:26:47 +00:00
Oswald Buddenhagen
8d71fcabb1 prune pointless INCLUDEPATH fixing
MakefileGenerator::init() fixifies the variable, so there is no point in
the windows generator adjusting path separators as well.

Change-Id: I9331631125ee16ce4d64e38153f3c67f2f78b16b
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
2015-02-04 16:33:13 +00:00
Oswald Buddenhagen
6dfda9b994 fix versioned lib lookup with normalized full paths
this is admittedly a rather improbable use case, so unlikely to have any
real world effect.

Change-Id: If98f0de90043525f0555f8ddf98f8b4352e5a0a7
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
2015-02-04 16:33:00 +00:00
Oswald Buddenhagen
924659b22f don't re-implement QDir::mkpath()
Change-Id: Ic5cd5d3048c19047f22641698acbf678301d366e
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
2015-02-04 16:32:53 +00:00
Oswald Buddenhagen
7d04d82319 rename fileVarGlue() => fixFileVarGlue()
... because it also fixes the path, and we'll need the "plain" name later.

Change-Id: I86da8f53e44a68005c413c4b78b1b1682746e22e
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
2015-02-04 16:32:51 +00:00
Oswald Buddenhagen
5629187697 xcode: remove special treatment of YACCSOURCES and LEXSOURCES
we (supposedly) fully support QMAKE_EXTRA_COMPILERS, so there is no need
for any special casing here.

Change-Id: I4e9d389320a3e5ad0acbf73823ff1e6f7b9c370f
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@theqtcompany.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
2015-02-04 16:32:48 +00:00
Oswald Buddenhagen
a7fe3309d6 inline initOld()
the separation serves no purpose except confusing.

Change-Id: I6a0d04b2162a4eee7a200345e94baa272120ea5b
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
2015-02-02 11:15:06 +00:00
Oswald Buddenhagen
39882d88d0 inline outputVariables()
it's debugging code which is used only once (if even uncommented).

Change-Id: Ie57347017dd24f4acecff2a7132f82898dea3122
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
2015-02-02 11:15:04 +00:00
Oswald Buddenhagen
5932fc4ab8 prune dead fixFilename() function
Change-Id: I84bafecccec286094701874b2780b45d08797524
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
2015-02-02 11:15:02 +00:00
Oswald Buddenhagen
77980b78ab prune dead fixifySpecdir() function
Change-Id: I3bc7f8de86213b1e1d99bdb2749589dbe3851eee
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
2015-02-02 11:15:01 +00:00
Oswald Buddenhagen
aa30f49d6a prune pointless assignments of QString::replace() and remove() results
they operate in-place.

Change-Id: Iab6f2f6a9f6f67b9d70feb77ec719e424909022d
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
2015-02-02 11:14:59 +00:00
Oswald Buddenhagen
2b31356ac9 optimize filePrefixRoot()
more efficient use of string functions.

Change-Id: I3d95d6379eaab025b18449b706f93631a2132aad
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
2015-02-02 11:14:57 +00:00
Oswald Buddenhagen
eb9db750e9 remove dead variables
Change-Id: I6c48a2e64027c432a87767782669c30a8876b0d6
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
2015-02-02 11:14:55 +00:00
Oswald Buddenhagen
a5c197bee7 remove pointless fixForOutput() call
the path is processed, and afterwards fixForOutput()ed again. the first
call makes no sense (even if it registered some variables that are gone
in the second call, that would be pointless exactly because they are gone).

Change-Id: I251f1e4858bec36f3a7a9427c2ba78031b35a2d3
Reviewed-by: Andy Shaw <andy.shaw@digia.com>
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
2015-02-02 11:14:53 +00:00
Oswald Buddenhagen
835566685c remove bogus path fixing
commands come already fully expanded and quoted from the project.

Change-Id: I239d5c305f5f65d32c832bc09bfd1c322051e149
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
2015-02-02 11:14:51 +00:00
Oswald Buddenhagen
23ab0d3e6a prune vestiges of IMAGES and QMAKE_IMAGE_COLLECTION
this stuff apparently pre-dates rcc.

Change-Id: Iaa58419476c3d20e2801e91dc1881880c741fdc6
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
2015-02-02 11:14:49 +00:00
Oswald Buddenhagen
f9b882b584 remove QMAKE_FAILED_REQUIREMENTS optimization from unix generator
no other generator does it. if it actually buys anything, it should be
re-instantiated differently.

Change-Id: I8431702ac7d558d65fd28a7f9e36bb49db2eb253
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
2015-02-02 11:14:48 +00:00
Oswald Buddenhagen
3b9f103155 make fallback handling for QMAKE_BUNDLE_EXTENSION sane
the logic was such that if the bundle name already had the specified
extension which was not the default extension, the default extension
would be appended, too. i don't think that was the intention ...

now we simply put the default into QMAKE_BUNDLE_EXTENSION if its empty -
the variable is not used anywhere else where it would be expected to
preserve its emptiness, so this is safe.

Change-Id: Ied34d10f9fe60756bddc0037dcb2f1d3bbfd3e12
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
2015-02-02 11:14:45 +00:00
Oswald Buddenhagen
4b486cb88c values(foo).first() => first(foo)
Change-Id: Ic5bb8ae3166c76299881970f83d20206bec704bc
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
2015-02-02 11:14:43 +00:00
Oswald Buddenhagen
365eb89713 remove weird qt_dll hack
there is no reference to it anywhere.

Change-Id: I72403be6c8294d9b2e64075ebd428eba24d97097
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
2015-02-02 11:14:41 +00:00
Oswald Buddenhagen
9999ada1bf don't verify compilers twice
Change-Id: Iad214f8a14c29b633752935e31125a6f4b512f4b
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
2015-02-02 11:14:40 +00:00
Oswald Buddenhagen
84c80538af remove pointless double initialization guards
this isn't some fuzzy logic, the call sequence is well determined.

Change-Id: I1696b49ed687da83d2969efcfe23ac6565630020
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
2015-02-02 11:14:37 +00:00
Oswald Buddenhagen
12b7b2c643 nuke gbuild generator
it never left the rudimentary stage. should it ever be re-added, it
needs to be done basically from scratch anyway.

Change-Id: I76858c8a2c90235f228f7a6e5a178a10a2669d37
Reviewed-by: Rolland Dudemaine <rolland@ghs.com>
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
2015-02-02 11:14:34 +00:00
Oswald Buddenhagen
afd40dd123 avoid direct use of QLibraryInfo as much as possible
Change-Id: Ic1f5f5167181b15bc67bf4c6a1001532d0058b45
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
2015-02-02 11:14:27 +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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
Sérgio Martins
ce5a877a8b Windows: Support .pdb file names with spaces.
Task-number: QTBUG-3314
Change-Id: I50a8739f134644e3561f1f7e2e04dac469da38b6
Reviewed-by: Jake Petroules <jake.petroules@petroules.com>
Reviewed-by: Nicolas Arnaud-Cormos <nicolas@kdab.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
2014-03-14 18:17:48 +01:00
Mat Sutcliffe
0de55b6c9f Honor the value of the PlatformToolset environment variable.
The Windows SDK 7.1 command prompt sets this value to "WindowsSDK7.1"
through its SetEnv.cmd batch script. The MSVC Express Editions do not
include a 64bit compiler toolchain, but the Windows SDK does, so this
change makes it easier to build qmake projects for x86_64 when using
the Express Editions, by running qmake from the SDK command prompt.
See also:
  http://msdn.microsoft.com/en-us/library/9yb4317s%28v=vs.100%29.aspx
  http://msdn.microsoft.com/en-us/library/ff660764%28v=vs.100%29.aspx

Task-number: QTBUG-31185
Change-Id: I49d3e159ed67f64490a3d57c5471d540d76ae13f
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
2014-02-28 18:02:14 +01:00
Joerg Bornemann
71e9d8bd4b fix Windows RT build in amd64 host shell
When running a amd64 VS shell we must not call the x86_amd64
cross-compiler, because it won't be able to start.
Instead we're calling the native amd64 compiler now.

Change-Id: I6968cde3b24c1938b6e0d82f513e49724455f3cc
Reviewed-by: Andrew Knight <andrew.knight@digia.com>
Reviewed-by: Oliver Wolff <oliver.wolff@digia.com>
2014-02-25 16:36:54 +01:00
Samuel Gaist
42789d04a3 Use QMAKE_TARGET_BUNDLE_PREFIX to build bundle identifier
Currently the bundle identifier is build using com.yourcompany +
QMAKE_BUNDLE. This patch adds the handling of
QMAKE_TARGET_BUNDLE_PREFIX to build the bundle prefix.

Task-number: QTBUG-19006

Change-Id: I014279da6dbef393b0df36f6d4995e40ab105316
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
Reviewed-by: Liang Qi <liang.qi@digia.com>
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
2014-02-19 21:44:15 +01:00
Frederik Gladhorn
dbafabb019 Merge remote-tracking branch 'origin/stable' into dev
Conflicts:
	src/corelib/global/qglobal.h

Change-Id: I03d8b6e07135056baaa1d97c3c63fbe8b25583d9
2014-02-17 11:39:16 +01:00
Joerg Bornemann
9b59e51c50 fix warning when generating VS 2013 project
/FS forces the compiler to synchronize pdb file writes.
This option is not needed when building with Visual Studio itself.
Still, qmake needs to know it when parsing the compiler flags.

Task-number: QTBUG-36535
Change-Id: Id5b68c4028844e0b95904e08b5121310a4ff13d6
Reviewed-by: Andy Shaw <andy.shaw@digia.com>
2014-02-12 17:55:51 +01:00
Andrew Knight
2a9944e281 WinRT qmake vcproj: Fix icon locator
This was broken for shadow builds. Adding the output directory to the
manifest file name fixes the problem.

Change-Id: I9e5b47a08f80f7afcfd76e13784fbaec912e50ad
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
2014-02-11 18:53:10 +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
Andrew Knight
f13f10ee0d qmake WinRT: Default to x86 for lib path
If VCPROJ_ARCH is not recognized or unset, make "arch" default to x86,
or link won't find the libs.

Change-Id: If2cbda37a80c0fa43e1464775c036cebf10f931a
Reviewed-by: Oliver Wolff <oliver.wolff@digia.com>
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
2014-02-07 15:29:50 +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
Andrew Knight
604849018d qmake: Add DISTCLEAN_DEPS variable
This variable works like CLEAN_DEPS, but applies to the distclean target.

Change-Id: Ia30e8932b9acd6529298728dd5d0e038b0208d66
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
2014-01-30 22:09:42 +01:00
Joerg Bornemann
26c33dc892 set empty PDB file name in release config of VS 2012 vcxproj files
In release configs qmake sets DebugInformationFormat to None.
If ProgramDataBaseFileName is left unset, then VS 2012 will always
rebuild the complete project. Therefore, qmake now inserts an empty
ProgramDataBaseFileName tag if DebugInformationFormat is None.

Task-number: QTBUG-35570
Change-Id: Ifb91b0bbcf6614621bfe3b12429e2624bd16e77a
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
2014-01-30 17:48:50 +01:00
Frederik Gladhorn
c30fc6949a Merge remote-tracking branch 'origin/release' into stable
Change-Id: I4680723bef393a15d5aa63b9dd7d5fbb599bd9fa
2014-01-27 18:58:04 +01:00
Oswald Buddenhagen
e20147d1d0 ensure that output path is normalized
Task-number: QTBUG-35131
Change-Id: I39b345db649470a926e25eb2a9b38794205b9212
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
2014-01-23 17:00:30 +01:00
Joerg Bornemann
2a2936b335 fix VS 2010 project file generation for release mode
VS 2010 doesn't denote "no debug info" as "None" but as empty tag.
This fixes a regression introduced by
7c3efdfb6a.

[ChangeLog][qtbase][qmake] fix VS 2010 project file generation

Task-number: QTBUG-35610
Change-Id: I18ae69a842d0b679a781f8d24c026d422da3a857
Reviewed-by: Andy Shaw <andy.shaw@digia.com>
2014-01-22 19:22:14 +01:00
Morten Johan Sørvig
0839c4779f Replace @BUNDLEIDENTIFER@ in Info.plist
Change-Id: I34aa77fc51b1ae4d7941f01fcb20236250454d19
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
2014-01-22 14:00:35 +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
Thiago Macieira
08841c1c2f Don't scan system includes for dependencies and don't list them
Assume that C and C++ headers found in system paths will not change,
so we don't need to tell Make about them, nor do we need to scan their
contents either.

The previous qmake behavior matched gcc's -M switch; it now matches
the -MM switch:

       -M  Instead of outputting the result of preprocessing, output a
           rule suitable for make describing the dependencies of the
           main source file.

       -MM Like -M but do not mention header files that are found in
           system header directories, nor header files that are
           included, directly or indirectly, from such a header.

This goes hand-in-hand with our use of -isystem to pass system paths
to the compiler.

Change-Id: I3346b6da496fe6495ac89c5286d066b343116f0e
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
2014-01-20 02:42:31 +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
J-P Nurmi
5c3faa52d7 qmake: cleanup DISTFILES
Do not include the project file twice or other
.pr? files outside the project tree.

Task-number: QTBUG-21910
Change-Id: I62af842282ccdc5b9099d9227d5395ebe3f0698c
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
2014-01-17 14:32:19 +01:00
J-P Nurmi
24634002e3 qmake: prepare TARGET/VERSION/DISTFILES for sub targets
This is a preparation step for 'make dist' target for subdir projects.
UnixMakefileGenerator needs these variables while extending
writeSubTargets() and writeDefaultVariables() for 'make dist'.

Partial cherry-pick of
https://qt.gitorious.org/qt/jpnurmi-qt/commit/8c4ef19

Task-number: QTBUG-21910
Change-Id: I02a616a98448bc3041ef0f4fd034bfb4c2199e41
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
2014-01-17 10:24:41 +01:00
Oswald Buddenhagen
882bf3475c expand tabs and related whitespace fixes in *.{cpp,h,qdoc}
the diff -w for this commit is empty.

Started-by: Thiago Macieira <thiago.macieira@intel.com>
Change-Id: I77bb84e71c63ce75e0709e5b94bee18e3ce6ab9e
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2014-01-13 22:46:50 +01:00
Frederik Gladhorn
7917dfbf1c Merge remote-tracking branch 'origin/stable' into dev
Change-Id: I99af0bef7f1c931533a324ebcfb27c40ee871a5e
2014-01-10 18:27:49 +01:00
Joerg Bornemann
e1f89037c3 fix memory leaks in MSVC generators
Change-Id: I11bfc8259ac4e175c9ecc37d64f1d2e5037f15aa
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
2014-01-10 17:14:29 +01:00
Joerg Bornemann
46b397d67f fix detection for multiple VS installations
In the case of multiple VS installations, a static variable wasn't
initialized. That led to wrong values in subsequent calls of the
detection function.

[ChangeLog][qtbase][qmake] fix detection for multiple VS installations

Task-number: QTBUG-35530
Change-Id: I3fc23bc99679fff640f39578a7074d16fe923334
Reviewed-by: Andy Shaw <andy.shaw@digia.com>
2014-01-08 13:05:55 +01:00
Andrew Knight
d5e52ecf6d qmake vcproj: Support setting the SDK version
This adds the required members to allow setting the SDK version, and uses
them when creating WinRT projects.

Task-number: QTBUG-35328

Change-Id: I500ea77c41e27cbcc850462034c0eba8c5d1f124
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
Reviewed-by: Oliver Wolff <oliver.wolff@digia.com>
2014-01-07 10:55:47 +01:00
Andrew Knight
fe73b92ed0 qmake vcproj: Correct VCProject Version strings
These strings are one version too large.

Change-Id: If83649725ccf087075610255516ebf7a51338359
Reviewed-by: Oliver Wolff <oliver.wolff@digia.com>
2014-01-07 10:55:44 +01:00
Andrew Knight
f59dfe3e63 qmake vcproj generator: Add app manifest for WinRT projects
When creating a MSVC project file for WinRT/WinPhone, the package
manifest and all referenced icons should be automatically added as
content items.

Task-number: QTBUG-35328

Change-Id: Id7f34388c5ba6746392ddadbb795ef47bef34af6
Reviewed-by: Oliver Wolff <oliver.wolff@digia.com>
2014-01-07 10:55:40 +01:00
Andrew Knight
2984ef35c5 qmake vcproj generator: Don't generate WinMD by default on WinRT
Visual Studio will default to generating metadata, even if it is not
written to the vcproj. Since there is no metadata file, the build will
fail. This change keeps a saner default for this option when generating
WinRT project files.

Task-number: QTBUG-35328

Change-Id: Ie693e270ef0b9d9677d53af0c60905f048235bc5
Reviewed-by: Oliver Wolff <oliver.wolff@digia.com>
2014-01-07 10:55:37 +01:00
Andrew Knight
503fd267da qmake vcproj generator: Honor the preferred MSVC version in the mkspec
Some cross-compiling mkspecs may require a different MSVC version than
the one found in the path (or the default version). This change allows
the preferred MSVC version to be selected from the mkspec's MSVC_VER
variable when found.

Task-number: QTBUG-35328
Change-Id: I19e03101e3921dfd5026421aef4630e11b9f131e
Reviewed-by: Oliver Wolff <oliver.wolff@digia.com>
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
2014-01-07 10:55:34 +01:00
Simon Hausmann
d776937df9 Merge "Merge remote-tracking branch 'origin/stable' into dev" into refs/staging/dev 2013-12-23 22:44:13 +01:00
Thiago Macieira
154b539465 Move the SUBLIBS target from qmake away from between clean/distclean
Right now, the sublib targets, if any, show up between clean and
distclean targets. That's silly.

I doubt anyone is using sublib targets anyway, but...

Change-Id: I2beffc69f68fa7626ff4aa4a7cc1169b2c6c69a7
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
2013-12-23 15:20:13 +01:00
J-P Nurmi
8fb497d1f4 qmake: do not include GENERATED_SOURCES to dist
Task-number: QTBUG-21910
Change-Id: I4cc3f75f5ee4672f89b0b965055a02ac24c16cc8
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
2013-12-20 00:35:23 +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
Thiago Macieira
18a36fd6ec PCH stands for "precompiled header", not "prefix"
Change-Id: Ied8148be931992247e446719a0eaeec0dc868330
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
2013-12-13 09:30:06 +01:00
Andrew Knight
fc5e948ea8 qmake vcxproj: Provide saner defaults for certain WinRT options
The default values for PCH, the -ZW switch, and CharacterSet aren't
ideal for WinRT projects, so adjust these accordingly.

Task-number: QTBUG-35328
Change-Id: I78021d0785fa84e15b1f17264daa599a9418f92e
Reviewed-by: Maurice Kalinowski <maurice.kalinowski@digia.com>
Reviewed-by: Oliver Wolff <oliver.wolff@digia.com>
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
2013-12-11 10:47:15 +01:00
J-P Nurmi
438a52e1a0 qmake: remove bogus comment
the respective code was removed in 375edf7

Change-Id: Ie31ef4bc8970b5396f50f1c4963f378df816242a
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
2013-12-10 12:25:02 +01:00
J-P Nurmi
0a19b9ec70 qmake: fix const correctness
Partial cherry-pick of
https://qt.gitorious.org/qt/jpnurmi-qt/commit/8c4ef19

Task-number: QTBUG-21910
Change-Id: Ieb833a977fc00d2637f8419278698c82b6086e2f
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
2013-12-10 12:24:59 +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
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
Tor Arne Vestbø
923d498029 Add PBXCopyFilesBuildPhases to main target, not preprocessing step
Otherwise the 'Wrapper' destination of the PBXCopyFilesBuildPhase
will be empty, and the files end up outside of the application
bundle.

Task-number: QTBUG-34457

Change-Id: I799db28185a6c5d3d940602914fd8ba14c538bf2
Reviewed-by: Caroline Chao <caroline.chao@digia.com>
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@digia.com>
2013-12-03 11:40:42 +01:00
Oswald Buddenhagen
c419cd1c30 make compiler use the project's pdb file
this avoids the nasty and conflicting vcXX0.pdb files in the build dirs.
VS will already do that.

Change-Id: I7bddaecf3f478edc78cd6654b5a1038db4fe04ff
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
2013-12-03 09:15:17 +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
Oswald Buddenhagen
ae5977d8e8 install pdb files also for executables
the restriction to dlls is entirely unjustified.

Change-Id: Ia518dd16189572dea9e8f4280c88801b1393694e
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
2013-12-03 09:14:24 +01:00
Oswald Buddenhagen
272fcac4d7 make CONFIG+=no_dll affect pdb files as well
this option suppresses the installation of target (leaving only
dlltarget). however, it still installed target's pdb file.

Change-Id: Ia686a647c101ca66e74944d23171e120fc74515a
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
2013-12-03 09:14:12 +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
Frederik Gladhorn
3061dc4abd Merge remote-tracking branch 'origin/release' into stable
Change-Id: I83ff8f4d7dffd7385013a1bd8a1732a89ee20d56
2013-11-26 10:51:34 +01:00
Oswald Buddenhagen
f604c94f18 make distclean actually remove the static library target
Task-number: QTBUG-3883
Change-Id: I288d830d6f73c69401ba81a70f35ee511e31bed5
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
2013-11-25 14:27:58 +01:00
Oswald Buddenhagen
ef510adea5 adequately shell-escape generated sed commands
Change-Id: I39c8c4ab3da69bd21beace56f5cf3070301ac015
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
2013-11-23 19:58:11 +01:00
Frederik Gladhorn
225526410b Merge "Merge remote-tracking branch 'origin/release' into stable" into refs/staging/stable 2013-11-22 16:47:35 +01:00
Andy Shaw
47e721100a Show all of the internal included files in the Supporting Files group
In XCode only the pro file was shown in the Supporting Files group as
it was the first one in the list. The others were not shown as it was
recreating the temporary QStringList each time instead of appending to
it.

Change-Id: Ifbc40a25156cf639eaa34b410f534726c41b6232
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
2013-11-22 12:53:04 +01:00
Oswald Buddenhagen
8259e45c1e install pdb files for dlltarget
Task-number: QTBUG-31129
Change-Id: I49ef3472d12b291999b4194b014b200df4b0f22d
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
2013-11-21 14:53:30 +01:00
Eskil Abrahamsen Blomfeldt
1a1f25781d Fix mkdir command in Windows shell for paths with forward-slashes
In particular this triggers in some cases of package building
where we are using a Qt version which for some reason has
forward slashes in its install prefix. Any mkdir command
run with this Qt build will fail because only backslashes are
recognized as path separators.

Task-number: QTBUG-34886
Change-Id: I2f957c6d348852ec555a67a35ae39921523b7b3e
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
2013-11-21 14:52:23 +01:00
Oswald Buddenhagen
2a6e8a7b7a fix more cases of mkdir_asstring() argument overquoting
Change-Id: I7dd4024fb6fceb47431b626b586a471b74789cdc
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
2013-11-21 14:52:06 +01:00
Oswald Buddenhagen
6a1e534627 fix overquoting in some mkdir calls
Change-Id: I2ed418064d43ab8cdab87af48e03d983c023ccf5
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
2013-11-20 12:40:06 +01:00
Andrew Knight
1be3ecaea3 qmake: add the store library path on WinRT
Starting with MSVC2013, a separate set of libs for Windows Store apps is
supplied, so make sure it is in the LIBPATH (and before the desktop libs).

Change-Id: I74f3f385c2db749010fbfe7e2d4c3d1228e4e603
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
2013-11-18 11:00:33 +01:00
Oswald Buddenhagen
8a5657b9f7 fix warnings about unused variables & parameters
Change-Id: Ia5816671267ea21dae0d90560b239c4498f9156c
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
2013-11-04 19:50:05 +01:00
Oswald Buddenhagen
9dd2b32e9a shrink #ifdef'd section
for better compile-time coverage

Change-Id: I594303cca6f22b68f99c0f35e0767032b90c9eae
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
2013-11-04 19:50:02 +01:00
Oswald Buddenhagen
2129a3e2d2 make-gcc-happy variable-may-be-uninitialized (but-is-not) commit
Change-Id: If214d3bce7fd23e2c30b6b9bc1bfec2e9fff3958
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
2013-11-04 19:50:00 +01:00
Oswald Buddenhagen
c91f12f9e9 fix initialization order warnings
Change-Id: Ia12973f7c4cabff77133ef4b9a840b76e8881759
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
2013-11-04 19:49:57 +01:00
Oswald Buddenhagen
14f261a28c kill dead code
Change-Id: I713c5504126fab40389ecb3a248b6c10048fc6c4
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
2013-11-04 19:49:52 +01:00
Richard Moe Gustavsen
7be6438bad xcode generator: warn if QMAKE_INFO_PLIST is not valid
Warn the user if QMAKE_INFO_PLIST is set, but file not found.
An iOS application will not run or deploy without an
Info.plist present, and the error message given by
xcodebuild is not very informative.

Change-Id: I54f0e06de320a43c9f3261fe88761c41e3ccd022
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
2013-11-01 18:07:08 +01:00
Joerg Bornemann
392054d311 fix VS version selection
On machines where multiple versions of VS are installed, the VS version
for the vc(x)proj generator is selected by the entries in the PATH
variable. The first VS installation that's found in PATH is used.

The former logic printed a warning if multiple VS installations were in
PATH and also fell back to the lowest version if a VS version was
registered with multiple install paths.
That's the case for VC 2012 express and prevented its usage.

Task-number: QTBUG-34357
Change-Id: Ia5c66a1aea0c40e4b7460b3aa6c7daee6673da44
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
2013-10-31 12:33:55 +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
Richard Moe Gustavsen
a959beeeec xcode generator: resolve QMAKE_INFO_PLIST from source dir
If QMAKE_INFO_PLIST is set, check if the file it
points to is located inside the project source dir
rather than the build dir.

Change-Id: I6fb176349dae8e841b5e2dfdb9f9cb87f51a1e76
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
2013-10-30 16:24:22 +01:00
Chris Gilbert
ae52bba5d4 Fix msvc project dependencies as specificed by .depends
Previously, the full path to the qmake project file was specified as the
key for projGuids when inserting the project GUID into this hash table.

The only place that items are inserted into projGuids is in
VcprojGenerator::collectDependencies at:

	projGuids.insert(val.first, newDep->target);

In this case, val.first contains the full path for the given project being
processed at this point. (e.g.: c:\testproject\testproject.pro)

Further in sln/vcproj generation, projGuids is queried with the contents
of <TARGET>.depends so that users may specify another qmake project as a
dependency for a given target.

This occurs in two places, in two ways:

1) In VcprojGenerator::collectDependencies() at:
	QString depend = dep.toQString();
	if (!projGuids[depend].isEmpty()) {
	...

In this case QString depend contains whatever is put into <TARGET>.depends.
Typically this is the plain name of the project you depend on.
(e.g.: testproj)

2) In VcprojGenerator::writeSubDirs(QTextStream &t) by proxy of
   extraSubdirs which is a QStringList of the project depends should the
   mapping in case 1 fail.

This case works much like the above case, attempting to use each
QString entry of the extraSubdirs list as a key in projGuids.

If either of the above two attempts are successful, the msvc solution is
configured in a way that creates a project dependency, ensuring correct
compilation order and other related behavior.

The fix here stores the target project (e.g.: testproject) as opposed to the
full project path, as that is what is expected in the <TARGET>.depends
statements contained in the qmake project.

Change-Id: Iee05661a64d7a3e4467c5ade48d801fbbfe981b5
Reviewed-by: Andy Shaw <andy.shaw@digia.com>
Reviewed-by: Chris Gilbert <cgilbert@knaldtech.com>
2013-10-29 19:59:17 +01:00
Joerg Bornemann
175489f102 fix /SAFESEH linker option for VS >= 2010
In VS 2010 and newer the /SAFESEH linker option is not passed as
additional option but is represented by the property
ImageHasSafeExceptionHandlers.

Task-number: QTBUG-34392
Change-Id: I3bd19078e695716050dd20736b6bc589bcb1cefd
Reviewed-by: Andy Shaw <andy.shaw@digia.com>
2013-10-29 16:17:55 +01:00
Konstantin Ritt
d5a16e4a3c Add QMAKE_PKGCONFIG_VERSION variable to allow version overriding
Change-Id: Ibba50c74f308d81e0058e4dacec7ed84e738473e
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
2013-10-28 00:37:15 +01:00
Tor Arne Vestbø
910573f8e6 xcode: Move Qt preprocessor steps to separate target
Xcode resolves dependencies at the beginning of each target, so if a
Qt preprocessor such as moc or rcc updates a cpp file Xcode will not
rebuild the cpp file until the next build.

We solve this by moving the Qt proceprocesor handling to a separate
aggregate build tool target, which the main application target then
depends on.

Change-Id: I8f9225b9603dc5f279b1cb60976fe709bd97963e
Reviewed-by: Andy Shaw <andy.shaw@digia.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@digia.com>
2013-10-25 14:51:30 +02:00
Andrew Knight
07ee43142b qmake: Support MSVC2013 for WinRT builds
Change-Id: I1c102f0b029616997d72933a90c0f9a2a3a9e222
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
Reviewed-by: Oliver Wolff <oliver.wolff@digia.com>
2013-10-25 09:00:37 +02:00
Tor Arne Vestbø
1cdbe4752b qmake: Expose qmake arguments as QMAKE_ARGS
Allows project files or mkspecs to call qmake recursively using system()
with the right arguments, which we use to fix the ios default_post.prf.

Change-Id: I90d69e2b156bb0f0af1279188b11f81c84c24fb8
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
2013-10-24 20:20:59 +02:00
Konstantin Ritt
7627f6739b Skip extra PKGCONFIG variables with empty value
The fallback value is an empty string anyways.

Change-Id: I77a2d3ad275321cb8b2e059fb6359f921cbc697c
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
2013-10-22 00:22:17 +02:00
Tor Arne Vestbø
b5fe1ed172 qmake: Add support for QMAKE_{PRE,POST}_LINK in the Xcode generator
Change-Id: I038cf0aebb74d7ecfe6cb3ed868287042342eb7e
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@digia.com>
2013-10-17 13:25: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
40d4c1b2ed make sure that installed meta files are always postprocessed
the problem is that there is no sed command on windows ... so build it
into qmake and invoke that from the generated makefiles. cmake does the
same, after all. ^^

Task-number: QTBUG-33794
Change-Id: Ib7077e18acbc5edd79f714c5779a5ed31ea6c093
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
2013-10-11 21:04:04 +02:00
Oswald Buddenhagen
58de01b54b fix setting of output directory of SUBDIRS with -tp vs
amends ec145129c.

Investigated-by: Nikolai Tasev
Task-number: QTBUG-32375
Change-Id: Iff27c03c0bb4f739dad9d10bae9576946948041b
Reviewed-by: Andy Shaw <andy.shaw@digia.com>
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
2013-10-11 21:03:21 +02:00
Tor Arne Vestbø
40ad539787 qmake: Allow QMAKE_MAC_XCODE_SETTINGS to be limited to debug or release
The Xcode generator does not support exclusive builds, but still
generates projects that contain both debug and release configurations,
each with hard-coded differences such as whether or not to strip or
to generate debug symbols.

As a stop-gap solution we allow projects and mkspecs to add extra
settings that are limited to a given build. Long term we want to
rewrite the Xcode generator to support exclusive builds, but that
is a much bigger task.

Change-Id: I85056164bb1b3c8c6e0cf66410348cca7138eca5
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
2013-10-11 18:49:03 +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
Katja
8d2c6206fd *.sln not generated correctly for VS2012 and VS2010
msbuild fails to build project since sln not generated correctly

Task-number: QTBUG-33446
Change-Id: If92ea743b1b407446873210090aa8591a491abad
Reviewed-by: Andy Shaw <andy.shaw@digia.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
2013-10-09 13:52:58 +02:00
Oswald Buddenhagen
86163308e4 clarify intended operator precedence
Change-Id: I176bf225d4cb388f1d328ac140741fe32667e89c
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
2013-10-07 21:01:31 +02:00
Oswald Buddenhagen
1627ddbbed add default branch to switch in platformToolSetVersion()
Change-Id: Icf399ffd7e41aca207ea3b4b08b9e3dead7c821a
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
2013-10-07 21:01:31 +02:00
Joerg Bornemann
7c3efdfb6a make it possible to disable debug information in vcxproj files
Task-number: QTBUG-32885

Change-Id: I53a2208935a1c52bc7ca757651df6a0125979787
Reviewed-by: Andy Shaw <andy.shaw@digia.com>
2013-10-01 11:10:44 +02:00
Tor Arne Vestbø
2ff3cbbb56 Xcode: Quote variable names with invalid characters in them
Allows us to have scoped variables such as eg FOO[arch=armv7].

We could quote all variables, but Xcode doesn't, and we try to stay
close to the native behavior.

Change-Id: Ia6634a33e42031fe7e69c4f680803fa347e5de4a
Reviewed-by: Andy Shaw <andy.shaw@digia.com>
2013-09-24 02:50:37 +02:00
Sergio Ahumada
642ebccaad Merge "Merge remote-tracking branch 'origin/stable' into dev" into refs/staging/dev 2013-09-21 02:59:14 +02:00
Tor Arne Vestbø
8aefa4dc46 qmake: Don't create OBJECTS_DIR and friends for TEMPLATE = subdirs
A bunch of empty and never-to-be-used directories makes the build tree
noisy and harder to navigate.

Change-Id: Iebef91c82d58a8d6a0047fb5439d50eb6806f557
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
2013-09-21 01:25:19 +02:00
Tor Arne Vestbø
e582d742cc Sanitize QMAKE_EXTRA_COMPILERS paths in makefiles
There was a mismatch of how we sanitized paths for dependencies of the
target and how those dependencies were sanitized (or not sanitized),
resulting in the target depending on 'some/path/foo.o' while the
extra compiler target was named 'some/path//foo.o', with an extra
slash. This confused 'make' enough to decide that it didn't know
how to build the dependencies for the target.

Change-Id: I181b86c291286cbbbb1f7b4c3b929a5f1dc163a3
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
2013-09-21 01:25:19 +02:00
Tor Arne Vestbø
15e9c3301c Strengthen check for combined QMAKE_EXTRA_COMPILER with variable output
The pattern ${QMAKE_ needs to be at the beginning of the line, or not
start with a $ (which would make it a regular qmake variable).

Also, it's fine that the variable is of the QMAKE_VAR_foo type, as
these variables are resolved at generator time, but are constant
and do not depend on the inputs. This means we have to replace
extra variables in the output.

Change-Id: I21ad24ae770f2137e2d5d92a20ee54e2f3f4ca06
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
2013-09-21 01:25:19 +02:00
Kamil Trzcinski
898b8d05c5 qmake: added WMAppManifest generation for winphone target
Platform specific qmakespec needs to enable: autogen_wmappmanifest and winphone. Manifest will be generated once and only for the application template.

The Manifest will generated from following variables:
* PRODUCTID - the GUID (application specific)
* PUBLISHERID - GUID (publisher specific)
* TARGET - short application name (executable)
* AUTHOR
* PUBLISHER
* DESCRIPTION - application description

Change-Id: I225c24dc256c57451775e37658080e88b842a7d8
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
2013-09-17 23:09:24 +02:00
Frederik Gladhorn
8c6755aeec Merge remote-tracking branch 'origin/stable' into dev
Conflicts:
	src/corelib/tools/qstring.cpp

Change-Id: Ifc6cd3a0f1cf14cc0fe6cf30afb0c7f40cfdbc3e
2013-09-16 14:52:40 +02:00
Kamil Trzcinski
4bbbe06bef qmake: added file deployment support for winrt and winphone targets
The user needs to specify the DEPLOYMENT variable. The syntax
is the same as previously used for DEPLOYMENT. For more info
please refer to the qmake documentation. The change adds
a new itemgroup, "Deployment Files". All files in this
itemgroup are marked as DeploymentContent and are then
packaged with the application either as XAP or the WinRT
specific file format.

Change-Id: Icf85887287c1c97eb782704340eaa3f8dde6719e
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
2013-09-15 18:18:46 +02:00
Kamil Trzcinski
083b5b503c qmake: added support for WindowsMetadataFile
In order to be able to use the linker's /WINMD
and /WINMDFILE options

Change-Id: I2673e20aa073c6b807e8c9f191fd408c7976efc4
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
2013-09-15 16:16:07 +02:00
Kamil Trzcinski
6008eb525e qmake: added CompileAsWinRT switch to the VCCLCompilerTool (the cl /ZW option)
Change-Id: I2a67779bcb38af85a2c43d3e9a15aa3ba45b4788
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
2013-09-15 16:15:44 +02:00
Oliver Wolff
1d4e1e12d8 Use correct toolset version for winphone builds
Change-Id: I9ecd9f632d0201e060de5cce4782912efdc6bd32
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
2013-09-15 16:14:49 +02:00
Kamil Trzcinski
7c8ef213b5 qmake: enable default reference for all winphone targets
The change adds a new ItemGroup with a single library reference:
platform.winmd.

Change-Id: I0c7f4c46654b520afb79b6c6f49b5f2d1af400d3
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
2013-09-15 16:14:40 +02:00
Kamil Trzcinski
48ba0389ee qmake: added VCPROJ_ARCH variable.
It's a generic way to configure the Visual Studio Solution
architecture. It's added to support different project
architectures, ARM specifically. It may be a good idea
to replace the Win32 and x64 with VCPROJ_ARCH=Win32
and VCPROJ_ARCH=x64 defined in corresponding qmakespecs.

Change-Id: I9b23f7393bf248a629c425187d6dd8859092c45c
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
2013-09-15 16:14:28 +02:00
Kamil Trzcinski
036cfadcc6 qmake: added WinRT and WinPhone configuration switch
qmakespec for either WinRT or WinPhone have to specify
QMAKE_PLATFORM with winrt and/or winphone.

Change-Id: I87e0063881e6edd65de14adb006949247ce49904
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
2013-09-15 16:13:59 +02:00
Andrew Knight
ede5be6ea0 Create clean makefiles for winrt builds
Change-Id: I33b74b98e04c1a9ca15ae07fad88f88dd4ce0669
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
2013-09-15 13:25:25 +02:00
Tor Arne Vestbø
3e3297242a Xcode: Resolve extra compiler (e.g qrc) dependencies
The Xcode generator relies on the generic makefile generator for extra
compilers such as qrc and moc, by generating makefiles that are then
executed as separate build steps in the Xcode build.

These makefiles are generated by entering a special mode in the Xcode
generator, in which case we _do_ want to resolve dependencies, so that
e.g. the files referenced inside a qrc file are added as dependencies
to the makefile rule that generates the qrc-cpp file.

Change-Id: I96bdcb165e9774a6328ae1980986fa2c6b00c6d9
Reviewed-by: Andy Shaw <andy.shaw@digia.com>
2013-09-13 21:43:38 +02:00
Sergio Ahumada
2346ae1675 Merge remote-tracking branch 'origin/stable' into dev
Change-Id: I9ee4176f0a0078908d49896508826154c9f71530
2013-09-07 16:18:32 +02:00
Andy Shaw
0278310f9e Ensure the input file is first in the list of dependencies
When building a project in VS then it would cause a rebuild
under certain situations even though a rebuild is not
actually required.

The root problem exists in VS in the following configuration:
1. A file has a custom build tool specified
2. The custom build tool has additional dependencies
3. The input file is specified in the additional dependencies
4. There are files in the additional dependency list

This is the situation with form files in Qt that have include hints
specified in Qt Designer. The include hints get specified in the
additional dependencies for the custom build tool.

What happens is that VS will process files in the additional
dependency list differently based on where they appear in the list
relative to the input file.

If a dependency appears before the input file, VS will require the
file as a build input. If you just specify a file name, VS looks in
the project directory (and only the project directory) for that file.

You have to specify the path (relative or absolute) to get VS to look
elsewhere. If VS does not find the dependency, VS thinks the project
is out of date (since the missing dependency is a required build
input) and will rebuild the input file.

If the dependency appears after the input file and the file doesn't
exist, VS does not include the dependency as a build input. Since the
file is not a build input, no rebuild is required.

Change-Id: I5af460d21ad049ed7819746fd60c98677b810692
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
2013-09-03 08:23:08 +02:00
Oswald Buddenhagen
b7f7edfae4 de-duplicate code for writing dummy makefiles
as a side effect, this fixes the generators that were more bitrotted
(nmake and even more mingw).

Task-number: QTBUG-30644 #close
Change-Id: Iefa3f07125884412d091aa12b44935e5b1fb858a
Reviewed-by: Rafael Roquetto <rafael.roquetto@kdab.com>
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
2013-08-27 19:12:06 +02:00
Joerg Bornemann
788bde071a remove support for Qtopia's QOM_OBJECT macro
That's not been in use for quite a while.

Change-Id: If5a18a54d32f330fe37655516d4b83e5d3d30afc
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
2013-08-26 12:21:40 +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
Thiago Macieira
d5ed6936be Don't compile MD4, MD5, SHA-2 and SHA-3 into qmake
We just need one digest algorithm, any algorithm, to generate a
somewhat unique identifier. SHA-1 will suffice.

Change-Id: I3cb26bf866d616df3ef32feace10934f19daa1a6
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
2013-08-15 01:30:54 +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
Stephen Kelly
1dcdc506f3 Fix SONAME handling on android
Set the SONAME to the library name without the major
version number appended, as android does not have the versioned
symlinks.

Change-Id: I41c504869019a393a3f112b2f7fc81c7ad5afa1c
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
Reviewed-by: BogDan Vatra <bogdan@kde.org>
2013-08-13 19:48:15 +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
Oswald Buddenhagen
9e4dcbac05 mac frameworks: link target alias to Current version
by convention, $target.framework/$target links to
Versions/Current/$target, not Versions/$version/$target.
Versions/Current already links to $version.
so this adds one indirection, but is otherwise the same.

Change-Id: If3d1a3713712f4221ec31883977e50bce6f91764
Reviewed-by: Jake Petroules <jake.petroules@petroules.com>
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
2013-07-22 19:52:06 +02:00
Oswald Buddenhagen
1cbb228a10 fix target strip-ing inside mac bundles
this went unnoticed so far, because the mac qmakespecs don't define a
strip command to start with.

Change-Id: Iac3e7ffa6f400373552134a44b9713aaf5f44589
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
2013-07-22 19:52:06 +02:00
Oswald Buddenhagen
944e1d7b6a make unescapeFilePath() less inefficient
replace() doesn't detach if there is nothing to do.

Change-Id: I845b585c766f44a670ca3af1fc11ba03e7317622
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
2013-07-22 19:52:06 +02:00
Oswald Buddenhagen
cc0c394682 escape paths coming from prl files
qmake has the rather bizarre logic that QMAKE_LIBS* is escaped rather
early (instead of right before being written out the the Makefile).
consequently, we need to explicitly escape the paths from the prl files
as well.

Task-number: QTBUG-32326
Change-Id: Ieaf81113d3ca3cf5d8a1ef87c83c5721d6b473ee
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
2013-07-22 19:52:06 +02:00
Oswald Buddenhagen
f216caa52c unbreak use of not-overquoted ICON entries
amends 0e548b5856.

Change-Id: I88a5b8c681f7508aecf02b913e64816b712d97a2
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
2013-07-22 19:52:06 +02:00