Commit Graph

151 Commits

Author SHA1 Message Date
Oswald Buddenhagen
e0470ba2fe remove pointless code from prl processing
the code had a dead variable assignment and no side effects.

Change-Id: I9add8f1776f23a29c103b46dc725b9f386a4495a
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
2015-10-01 16:19:45 +00:00
Oswald Buddenhagen
ffe7f408ea remove bizarre prl substitution code
it appears to have been some weird attempt at back-mapping file names to
-l arguments, which has been made ineffective with the partial #if 0.
i can't even describe what it did at this point.

Change-Id: Ie31cbbe7fab8b21b039bfff5877397af07731f1b
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
2015-10-01 16:19:41 +00:00
Oswald Buddenhagen
cbbeed519b remove magic patching up of libraries specified by file name
the assumption is that if somebody bothers to actually specify a file
name, they'll most probably go all the way to specify the *correct* file
name. otherwise, they'll use -L/-l flags to specify the libs in a
cross-platform way and rely on qmake's magic.

this code was initially added for the purpose of invoking
findHighestVersion() under windows. this has been off by default for a
while now.

at some point, the code did also swap qt for qt-mt and vice versa if the
specified one was missing. this is obviously gone for a while as well.

the unix code was pretty much broken since day one: there was a regex
match on lib<stub>.* against <stub> itself, which obviously could not
have ever succeeded. consequently, the subsequent code ran into a path
that tried the file name with a trailing dot (instead of a new
extension), which never produced anything meaningful.

[ChangeLog][qmake][Important Behavior Changes] The library lookup has
been simplified. It may be necessary to be more explicit in some edge
cases now.

Change-Id: I5804943f1f7a16d38932b31675caabbda33eada7
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
2015-10-01 16:19:33 +00:00
Oswald Buddenhagen
f734599629 unify handling of library prefixes and extensions
make sure that all specs define QMAKE_{PREFIX,EXTENSION}_{SH,STATIC}LIB,
and adjust the code to make halfways consistent use of these variables,
in particular on windows; Win32MakefileGenerator::getLibTarget() is gone
as a result, as is QMAKE_CYGWIN_SHLIB. still, tons of hardcoded "lib"
references remain in the unix generator, because no-one cares.

Change-Id: I6ccf37cc562f6584221c94fa27b2834412e4e4ca
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
2015-10-01 16:19:30 +00:00
Oswald Buddenhagen
d98a23eb7c remove references to $$QMAKE_CYGWIN_EXE
it would cause the unix generator to set TARGET_EXT, but that wasn't
used anywhere. so remove the dead code. if it ever gets re-introduced,
it will be as QMAKE_EXTENSION_EXE.

Change-Id: I44ce3e612651fd229177e37ab6c8879cd8c474b7
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
2015-10-01 16:19:25 +00:00
Oswald Buddenhagen
6c4d7667e4 remove support for {rvct,arm,ti}_linker
rvct and armcc support are remnants from symbian, while the ti linker
support was never completed in the first place.

Change-Id: I5c9d7f0ce67de24c348cbee4af618a499fe06f16
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
2015-10-01 16:19:20 +00:00
Oswald Buddenhagen
c111e1553e remove overuse of trimmed()
there is no reason to expect the various list elements to be
space-encumbered, or to tolerate it if they were.

Change-Id: I1a2e5c8d30456b640408503334c55f9262792db5
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
2015-10-01 16:19:15 +00:00
Joerg Bornemann
7a1bc0d3ff fix race in debug_and_release builds of static libs for Unix
Consider a debug_and_release build of a static library.
Set DESTDIR to different values for debug/release.
Let TARGET be the same for debug/release.
Now qmake would generate code in Unix Makefiles like this:
  rm mylib.a
  ar mylib.a ...objects...
  rm debug/mylib.a
  mv mylib.a debug/mylib.a
and for release analogous. This clashes when building in parallel.

This patch resolves this conflict by reducing the commands to:
  rm debug/mylib.a
  ar debug/mylib.a ...objects...

We believe that every ar implementation that's in use for Qt
is able to operate on files in subdirectories.

[ChangeLog][Important Behavior Changes][qmake][Unix] QMAKE_POST_LINK
steps of static libraries are now required to operate on $(TARGET) in
$(DESTDIR) instead of $$OUT_PWD. This matches the Windows backends.

Task-number: QTBUG-48287
Change-Id: I192f488ed74c56bc32862426d9e9d4237d9b8135
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
2015-09-22 14:12:32 +00:00
Oswald Buddenhagen
78f6229222 fix relative rpaths on linux
$ORIGIN (or $LIB) needs to be escaped to survive the trip through
make and the shell.

this shouldn't break anything, as there was simply no way to get it
right so far.

Change-Id: I86337c5994d10dae2e80dd2f858f74874b14bca7
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
2015-09-17 16:35:55 +00:00
Oswald Buddenhagen
554f365322 don't pretend that non-mac supports relative QMAKE_SONAME_PREFIX
unlike in DT_RPATH/DT_RUNPATH and DT_NEEDED, $ORIGIN & co. cannot appear
in DT_SONAME.

Change-Id: I4da23f8419806bdc05d6844ce3397ef43b82914c
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
2015-09-17 16:35:50 +00:00
Liang Qi
afab1546a7 Merge remote-tracking branch 'origin/5.5' into 5.6
Conflicts:
	qmake/doc/snippets/code/doc_src_qmake-manual.pro
	qmake/doc/src/qmake-manual.qdoc
	src/corelib/io/qstorageinfo_unix.cpp
	src/corelib/tools/qbytearray.cpp
	src/widgets/kernel/qwidgetwindow.cpp
	tests/auto/corelib/io/qprocess/tst_qprocess.cpp
	tests/auto/corelib/mimetypes/qmimedatabase/tst_qmimedatabase.cpp
	tests/auto/network/access/qnetworkreply/BLACKLIST

Change-Id: I9efcd7e1cce1c394eed425c43aa6fce7d2edf31c
2015-08-26 20:06:57 +02:00
Morten Johan Sørvig
4738b450d2 Mac: Remove invalid bundle identifier characters
Valid characters are (A-Z,a-z,0-9,-,.).

It is unlikely that we will see anything more exotic
than '_' in bundle/library names, go ahead and replace
that character only.

Task-number: QTBUG-46824
Change-Id: Ia97b7cd6247f40a970b4919363ffb66fb347186c
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@theqtcompany.com>
2015-08-18 13:34:58 +00:00
Oswald Buddenhagen
f5885f71fd fix quoting in plist creation
unlike everywhere else in this file, destdir is not pre-quoted here.

Task-number: QTBUG-47775
Change-Id: Ia5b0c56bbdd3eb095f81b0f615d68a338ffa52c5
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
2015-08-18 13:28:24 +00:00
Tor Arne Vestbø
e405665318 iOS: Refactor xcodebuild exclusive build logic into standalone makefile
Instead of going to qmake to generate the makefile that we want, we write
the makefile directly and include it from the generated makefile. This
leaves us with a single top level makefile for handling exclusive builds
through xcodebuild, and covers all the various build configurations in
a unified manner. It also allows for improved test device handling.

Change-Id: I66851f181ac4da2c8938645e0aa95ffa0fee33c7
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@theqtcompany.com>
2015-08-04 11:59:01 +00:00
Simon Hausmann
e2f66f9215 Merge remote-tracking branch 'origin/5.5' into dev
Conflicts:
	src/corelib/global/qnamespace.qdoc
	src/corelib/io/qwindowspipereader.cpp
	src/corelib/io/qwindowspipereader_p.h
	src/corelib/statemachine/qstatemachine.cpp
	src/corelib/statemachine/qstatemachine_p.h
	src/plugins/platforms/xcb/qxcbconnection.h
	tests/auto/network/access/qnetworkreply/tst_qnetworkreply.cpp
	tests/auto/tools/qmake/tst_qmake.cpp
	tests/manual/touch/main.cpp

Change-Id: I917d694890e79ee3da7d65134b5b085e23e0dd62
2015-06-03 10:23:56 +02:00
Oswald Buddenhagen
275709fb43 don't process .prl files recursively
they are self-contained, as they are the result of another project's
full resolution. consequently, recursing them just burns cycles, and
additionally introduces the risk of an endless loop if the file is
botched.

Task-number: QTBUG-12711
Change-Id: I401ee691c170092cc61fe05538cec4272ed8f922
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
2015-06-01 13:27:06 +00:00
Tor Arne Vestbø
34adfc1372 qmake: Place Info.plist in correct location for plugin bundles
Like application bundles on OSX, the plugin bundle has its Info.plist
in the Contents directory.

Change-Id: I216fa79857924beb0e9c5fcc4a8d06b197a3f383
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
2015-05-24 11:46:07 +00:00
Oswald Buddenhagen
12106b66b9 move symlinking loop into the symlink container emptiness conditional
it obviously makes no sense to set up the loop if the container is empty.
as we now have that conditional anyway ...

Change-Id: I6d95c0102734852443c188012bfcb076d879581e
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
2015-05-20 18:11:44 +00:00
Oswald Buddenhagen
6e3ba36a06 bundles: create Versions/Current only if versioned resources are present
QMAKE_FRAMEWORK_VERSION has a fallback to VER_MAJ (which derives from
VERSION), so it's pretty much always set, thus defeating the previous
check.

amends 6cb495de.

Task-number: QTBUG-46215
Change-Id: I2c5560c469617ebeab978e4de78df00baf38d49d
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
2015-05-20 18:11:41 +00:00
Oswald Buddenhagen
82449d7251 fix (un-)installation for TEMPLATE = aux
don't try to install the primary target, as it obviously doesn't exist.
however, we must not disarm bundle installation.

Change-Id: I3074150f749220d77c1210a4978e71aff9c9a3a9
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
2015-05-08 15:35:05 +00:00
Oswald Buddenhagen
6cb495dee3 make QMAKE_FRAMEWORK_VERSION work independently of TEMPLATE
QMAKE_BUNDLE_DATA itself does as well, and it can refer to versioned
resources.

Change-Id: I3d9bf23c2ff81dbb1cd929f3f0e0ce1e67f3258a
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
2015-04-27 18:58:47 +00:00
Oswald Buddenhagen
6e2e0e061f automatically distclean internally generated artifacts
specifically, .prl, .pc, and .la files, and QMAKE_SUBSTITUTES outputs.

Change-Id: I27685125668f0ec2aa81a8f003d3605accf2ab36
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
2015-04-23 19:16:54 +00:00
Oswald Buddenhagen
0ce189d20f fix distclean target for plugins under unix
Change-Id: I5ebaba8575dfac9597e1ead92d42955ff626e1b1
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
2015-04-23 19:16:52 +00:00
Oswald Buddenhagen
c4d82dbfc0 make diff between aux and app TEMPLATEs smaller
people may use extra compilers which refer to CXXFLAGS & co., so set
them up "as normal".

Change-Id: I858ca63370a7aed66e04f5417da078b896feefc4
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
2015-04-23 09:49:14 +00:00
Oswald Buddenhagen
4c96367410 make fileFixify() calling convention somewhat sane
instead of allowing arbitrary input and output base paths, restrict them
to the project input and output dirs (in any permutation), which are the
only cases ever used anyway.
this permits much clearer call sites, and allows later optimizations.

Change-Id: I48d149a4417af5c858e66ec57c476a5bc6b17f17
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
2015-04-21 12:06:20 +00:00
Liang Qi
ce9519593a Merge remote-tracking branch 'origin/5.4' into 5.5
Conflicts:
	mkspecs/android-g++/qmake.conf
	qmake/generators/unix/unixmake2.cpp
	src/gui/image/qimage_conversions.cpp

Change-Id: Ib76264b8c2d29a0228438ec02bd97d4b97545be0
2015-03-31 10:03:31 +02:00
John Brooks
3f8e3373e1 Fix QMAKE_INFO_PLIST regression with relative paths
In de5553aa, qmake was fixed to resolve QMAKE_INFO_PLIST based on the
current pwd to fix QTBUG-21267. This fix was lost as part of 8c138054
in 5.4.

This fixes the error:

"WARNING: Could not resolve Info.plist ..."

when using qmake for shadow builds on OS X.

[ChangeLog][qmake][OS X/iOS] Fixed QMAKE_INFO_PLIST path resolution
for shadow builds

Change-Id: Icb42b2b3a44856f9b9a86a008081a3353951640d
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
2015-03-13 03:48:29 +00:00
Oswald Buddenhagen
95d385466d centralize setup of shell-related variables in spec_post.prf
it makes no sense to let every spec do that separately, as it's fixed
by the generator+shell.

putting it into a file which is loaded regardless of the spec also
allows us to remove the hardcoded fallbacks from qmake.

if somebody overrode the values in their spec for some weird reasons,
they'll need to override spec_post.prf.

shell-{unix,win32}.conf are now dummies and print warnings.

Task-number: QTBUG-37269
Change-Id: I66c24fb4072ce4d63fdbfc57618daa2a48fa1d80
Reviewed-by: Jochen Seemann <seemann.jochen@gmail.com>
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
2015-03-06 19:08:40 +00:00
Oswald Buddenhagen
5527411437 remove pointless fixPathToTargetOS() calls
it makes no sense to call it on paths that are fixified right before or
after, as fileFixify() calls it itself.

and verifyExtraCompiler() calls normalizePath() on its file argument.

Change-Id: I8fb21e129fd29428d1855de73483087842bc1bdd
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
2015-02-17 18:27:47 +00:00
Oswald Buddenhagen
e0962270d7 replace incorrect uses of fixPathToLocalOS() (mostly)
in most cases, it actually means normalizePath() (because the file name is
used with qt i/o functions afterwards).
this affects QMakeLocalFile::local() as well, so many not immediately
obvious places are affected as well.
there was also one case of fixPathToTargetOS() falling into this category.
this is mostly a no-op, as the qt functions are agnostic to the path
separator.

in some other cases (in particular in the vcproj generator), it actually
means fixPathToTargetOS().
this is mostly a no-op as well, as the two functions are equal except on
msys anyway.

in the <meta file>FileName() functions, the use of a fixPath*() function
is bogus in the first place - fileFixify() already does
fixPathToTargetOS(), and this is correct when the file name is used
verbatim in a make command (which it is). otherwise it's irrelevant.

Change-Id: I26712da8f888c704f8b7f42dbe24c941b6ad031d
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
2015-02-17 18:27:44 +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
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
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
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
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
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
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
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
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
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