summaryrefslogtreecommitdiffstats
path: root/qmake/generators/mac
Commit message (Collapse)AuthorAgeFilesLines
...
* | Merge remote-tracking branch 'origin/5.6' into devLiang Qi2016-02-111-9/+9
|\| | | | | | | | | | | | | | | | | | | Conflicts: src/corelib/io/qfilesystemwatcher_win.cpp src/corelib/plugin/plugin.pri src/plugins/platforms/cocoa/qcocoaaccessibility.mm tests/auto/corelib/tools/qlocale/tst_qlocale.cpp Change-Id: Id6824631252609a75eff8b68792e4d10095c8fc1
| * qmake: use QString::replace() overloaded with QLatin1StringAnton Kudryavtsev2016-02-041-9/+9
| | | | | | | | | | | | | | | | | | instead of QStringLiteral, QString, const char*. Results: reduce .rodata, prevent re-creation of QString. Change-Id: Ie2e3089974c42e6733457bbe58521bccd1da3a53 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
* | qmake: use reserve to optimize memory allocation.Anton Kudryavtsev2016-02-011-1/+4
| | | | | | | | | | Change-Id: I6ace338512c24fd9dc11c767a28f0a63454076fa Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
* | qmake: eradicate Q_FOREACH loops [already const]Marc Mutz2016-01-281-1/+1
| | | | | | | | | | | | | | | | (or trivially marked const) ... by replacing them with C++11 range-for loops. Change-Id: I1522e220a57ecb1c5ee0d4281233b3c3931a2ff8 Reviewed-by: Lars Knoll <lars.knoll@theqtcompany.com>
* | qmake: eradicate Q_FOREACH loops [needing qAsConst()]Marc Mutz2016-01-281-4/+4
| | | | | | | | | | | | | | | | | | ... by replacing them with C++11 range-for loops. To avoid detaches of these mutable Qt containers, wrap the container in qAsConst(). Change-Id: If086bea06fe26232a7bb99fad8b09fce4dc74c27 Reviewed-by: Lars Knoll <lars.knoll@theqtcompany.com>
* | qmake: eradicate Q_FOREACH loops [const-& returns]Marc Mutz2016-01-281-1/+1
| | | | | | | | | | | | | | | | | | | | | | ... by replacing them with C++11 range-for loops. The functions QMakeProject::values(), QMakeMetaInfo::values() and QHashIterator::value() all return by const-reference, so they can be passed to range-for without further changes. Change-Id: Ic3b39ed8ff8cd7a6f287f1aa9d61a1acd67d7aaa Reviewed-by: Lars Knoll <lars.knoll@theqtcompany.com>
* | Merge remote-tracking branch 'origin/5.6' into devLiang Qi2016-01-261-3/+3
|\| | | | | | | | | | | | | | | | | | | | | | | Conflicts: src/android/jar/src/org/qtproject/qt5/android/QtActivityDelegate.java src/dbus/qdbusconnection_p.h src/dbus/qdbusintegrator.cpp src/dbus/qdbusintegrator_p.h tests/auto/corelib/io/qdir/qdir.pro tests/auto/corelib/io/qiodevice/tst_qiodevice.cpp Change-Id: I3d3fd07aed015c74b1f545f1327aa73d5f365fcc
| * QMake: replace QStringLiteral with QLatin1StringAnton Kudryavtsev2016-01-211-3/+3
| | | | | | | | | | | | | | ... in string comparisons. It's more efficient. Change-Id: I5d54ab7777a0838455eaaac671e735eb37bfe243 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
* | Updated license headersJani Heikkinen2016-01-212-34/+24
|/ | | | | | | | | | | | | From Qt 5.7 -> tools & applications are lisenced under GPL v3 with some exceptions, see http://blog.qt.io/blog/2016/01/13/new-agreement-with-the-kde-free-qt-foundation/ Updated license headers to use new GPL-EXCEPT header instead of LGPL21 one (in those files which will be under GPL 3 with exceptions) Change-Id: I42a473ddc97101492a60b9287d90979d9eb35ae1 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com> Reviewed-by: Lars Knoll <lars.knoll@theqtcompany.com>
* Xcode generator: only replace the suffix in the library pathRichard Moe Gustavsen2015-11-091-2/+9
| | | | | | | | | | | | | | | | | | | | The Xcode generator iterates trought all libraries and replaces their suffix (e.g "_debug") with a placeholder that lets Xcode switch between different library versions depending on the target. The current way we do this fails when the name of a library happens to contain the string "_debug" (e.g "qmldbg_debugger"). Since we replace every occurrence of suffix in the path, we end up replacing that part as well. The result will be linking errors. This patch ensures that we only replace the last occurrence of the suffix in the file path. Task-number: QTBUG-48961 Change-Id: I9fafbe0ea0ad8b9cfd13448d6b28801106e645ec Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com> Reviewed-by: Ulf Hermann <ulf.hermann@theqtcompany.com> Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@theqtcompany.com>
* Distinguish between Objective-C and Objective-C++ sourcesTor Arne Vestbø2015-10-091-14/+18
| | | | | | | | | | | | | | | | | | | | | | | | | | | Instead of lumping both Objective-C (.m) and Objective-C++ (.mm) sources into the same pile, passing them on to the same compiler as for C++ (CXX), with the C++ flags (CXXFLAGS), we follow Apple's lead and treat them as variants of the C and C++ languages separately, so that Objective-C sources are built with CC and with CFLAGS, and Objective-C++ sources with CXX, and CXXFLAGS. This lets us remove a lot of duplicated flags and definitions from the QMAKE_OBJECTIVE_CFLAGS variable, which in 99% of the cases just matched the C++ equivalent. The remaining Objective-C/C++ flags are added to CFLAGS/CXXFLAGS, as the compiler will just ignore them when running in C/C++ mode. This matches Xcode, which also doesn't have a separate build setting for Objective-C/C++ flags. The Makefile qmake generator has been rewritten to support Objective-C/C++ fully, by not assuming that we're just iterating over the C and C++ extensions when dealing with compilation rules, precompiled headers, etc. There's some duplicated logic in this code, as inherent by qmake's already duplicated code paths, but this can be cleaned up when C++11 support is mandatory and we can use lambda functions. Task-number: QTBUG-36575 Change-Id: I4f06576d5f49e939333a2e03d965da54119e5e31 Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@theqtcompany.com>
* make .prl processing less convolutedOswald Buddenhagen2015-10-021-2/+2
| | | | | | | | | | | | | don't look up the files and normalize the paths multiple times, as this is inefficient and hard to understand. on the way, processPrlFile() got unnested, and libExists() got nuked. note that a missing QMAKE_PRL_TARGET will be now complained about, which really should never happen. Change-Id: Ibcd77a7f963204c013548496ecd2d635e1a4baba Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com> Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
* remove overuse of trimmed()Oswald Buddenhagen2015-10-011-1/+1
| | | | | | | | 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>
* Fix lookup of Info.plist from mkspecs when shadow-buildingTor Arne Vestbø2015-08-251-1/+5
| | | | | | | Task-number: QTBUG-47450 Change-Id: I87c45154deecd09a5c75f09e607177fa42459e95 Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@theqtcompany.com> Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
* pbuilder_pbx: disable bit code for Xcode projectsRichard Moe Gustavsen2015-06-161-0/+4
| | | | | | | | | | | | | | | | With Xcode7, Apple added support for compiling apps to bit code instead of binary (*). But this is only supported when the deployment target is at least 6.0. And in Qt-5.5, the deployment target is still set to 5.1.1. The result is that every Qt application will fail building once people move to Xcode7. Instead of bumping the deployment target (which we plan to do for Qt-5.6), we choose to switch off bit code for now. *: https://developer.apple.com/library/prerelease/ios/documentation/IDEs/Conceptual/AppDistributionGuide/AppThinning/AppThinning.html Change-Id: I23001563439a7726506b7cd2dc77a82533b8a27b Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@theqtcompany.com>
* Merge remote-tracking branch 'origin/5.4' into 5.5Liang Qi2015-06-011-1/+1
|\ | | | | | | | | | | | | | | Conflicts: qmake/generators/mac/pbuilder_pbx.cpp src/corelib/global/qglobal.h Change-Id: I2c0f7544bf194f2d0f59218fd583c822901487b0
| * xcode generator: use absolute path when creating PBXFileReferences for librariesRichard Moe Gustavsen2015-05-151-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Currently, the Xcode generator uses "sourceTree = <absolute>" for all PBXFileReferences. But the paths we use for referencing libraries are relative. This patch will change this, so that we always use absolute paths to be consequent. This will fix a crash in Xcode that happens when opening projects generated by Qt. Change-Id: I3a372b93598a777c96ba353205cf19710a5923f5 Task-number: QTBUG-45966 Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@theqtcompany.com> Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
* | remove vestiges of -prebind magicOswald Buddenhagen2015-05-221-4/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | since commit 22edeb3f4 (private; anno 2002), the generator would extract -prebind and translate it into a PREBINDING property in the pbx file. the writeout to the pbx file got lost in the rewrite for Xcode 3.2 (commit 66f6e5b1; anno 2012). this isn't particularly bad, as prebinding is obsolete since OS X 10.3.4. we now go the last mile and remove the handling of the flag. that means that remaining projects which still use it (meaninglessly) will get a warning from Xcode, which is kinda what we want. QMAKE_LFLAGS should have never been part of the library iteration loop. it was added there in the prebind handling commit, so we can get rid of it again now. Change-Id: Id7dee2b1e248bb2bd7aa7a3e66f82057921afffd Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@theqtcompany.com>
* | xcode generator: don't change output_dir when opening a pbx file directlyRichard Moe Gustavsen2015-05-151-4/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | ProjectBuilderMakefileGenerator::openOutput should only change back Option::output_dir when creating a pbx file inside an Xcode project. Since the pbx file will be placed inside a different directory than output_dir when creating an Xcode project, MakefileGenerator::openOutput() will redirect output_dir to be inside the Xcode project as well. Since we don't want this redirection, we change output_dir back to what it was once the call returns. But we should only do this when creating the whole Xcode project, since only then we create a pbx file that is different from output_dir in the first place. A bug with this is seen when making qt_makeqmake.mak (which is a helper makefile inside the Xcode project). That file will only regenerate the pbx file (and not the whole Xcode project), which means that we don't enter the fileName.isEmpty() section, which means that output_dir should stay as it is. Task-number: QTBUG-45826 Change-Id: I03d5c3dec395ff4768f9272fd1981c6fd35efb1e Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@theqtcompany.com>
* | make fileFixify() calling convention somewhat saneOswald Buddenhagen2015-04-211-10/+10
| | | | | | | | | | | | | | | | | | | | 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>
* | unhack Xcode shadow buildingOswald Buddenhagen2015-04-211-34/+26
| | | | | | | | | | | | | | | | | | explicitly use the correct directories instead of temporarily changing into the output dir. this makes the code less obfuscated. Change-Id: Ia935987f486151ae556910703cc20945c7610ffc Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@theqtcompany.com> Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
* | Revert "Use relative path for QMAKE_BUNDLE_DATA"Oswald Buddenhagen2015-04-211-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | turns out that a relative path makes some versions of Xcode crash. so use an absolute path again. fileFixify() has been fixed for shadow builds to make this possible. This reverts commit 6ccf0a326ef415b7c9c8d80e9ede0da85e2fb52b. Task-number: QTBUG-45424 Change-Id: Ica87c6c29f990f56e42c399b6d9b1c7eacdd13a7 Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com> Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@theqtcompany.com>
* | Add XCTest logger backend to QtTestLibTor Arne Vestbø2015-03-271-0/+104
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Will be active when running test apps through Xcode's 'test' action, and reports QtTestLib test objects and functions to Xcode as XCTest cases. This allows running tests on both iOS Simulator and iOS devices from the command line, through xcodebuild, without relying on any 3rd party tools. It also integrates Qt test failures and passes into the Xcode IDE, which may be useful for closer investigation of test failures. The feature is limited to Xcode 6.x. Change-Id: I33d39edbabdbaebef48d2d0eb7e08a1ffb72c397 Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@theqtcompany.com>
* | Xcode: Completely filter out environment variables in build logTor Arne Vestbø2015-03-161-0/+2
| | | | | | | | | | | | | | | | 17d690952b missed a few instances that should have showEnvVarsInLog = 0. Change-Id: I8f1106426447670b0057aeb421efc09bf117e969 Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@theqtcompany.com> Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@theqtcompany.com>
* | iOS: Use Xcode project to filter out environment variables instead of shellTor Arne Vestbø2015-03-091-0/+4
| | | | | | | | | | | | | | | | | | Xcode has a setting for script phases to filter out the environment variables, so we don't need to use grep. Change-Id: Ica1c64321385ab3e3b47cf6f8f4d4191bd963540 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com> Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@theqtcompany.com>
* | Xcode: Generate scheme manually, instead of letting Xcode do itTor Arne Vestbø2015-03-061-0/+46
| | | | | | | | | | | | | | | | | | | | | | A scheme is required to be able to run tests through Xcode, even from the command line, but Xcode doesn't auto-generate the schemes until launched as an application. Xcode also auto-generates schemes for all our targets, but we only need one for the primary application target. Change-Id: Ia42f3825aba3ffde3be93be55e165d6284434853 Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@theqtcompany.com> Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@theqtcompany.com>
* | fix fixPathToTargetOS() nestingOswald Buddenhagen2015-02-171-2/+2
| | | | | | | | | | | | | | first replaceExtraCompilerVariables(..., NoShell), then fix the final result. Change-Id: If8cebeaa59f48d91b33b5a74e6a48a0d2d049643 Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
* | replace incorrect uses of fixPathToLocalOS() (mostly)Oswald Buddenhagen2015-02-171-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
* | fix quoting issues. all of them. (*)Oswald Buddenhagen2015-02-172-68/+39
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
* | fix filename handling in replaceExtraCompilerVariables()Oswald Buddenhagen2015-02-171-1/+2
| | | | | | | | | | | | | | | | | | | | | | 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>
* | Use relative path for QMAKE_BUNDLE_DATAFawzi Mohamed2015-02-171-1/+1
| | | | | | | | | | | | | | | | | | | | 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>
* | Update copyright headersJani Heikkinen2015-02-112-14/+14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
* | xcode: remove special treatment of YACCSOURCES and LEXSOURCESOswald Buddenhagen2015-02-041-23/+2
| | | | | | | | | | | | | | | | | | | | 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>
* | prune pointless assignments of QString::replace() and remove() resultsOswald Buddenhagen2015-02-021-11/+10
| | | | | | | | | | | | | | they operate in-place. Change-Id: Iab6f2f6a9f6f67b9d70feb77ec719e424909022d Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
* | remove dead variablesOswald Buddenhagen2015-02-021-3/+0
| | | | | | | | | | Change-Id: I6c48a2e64027c432a87767782669c30a8876b0d6 Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
* | remove pointless fixForOutput() callOswald Buddenhagen2015-02-021-1/+0
| | | | | | | | | | | | | | | | | | | | 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>
* | remove bogus path fixingOswald Buddenhagen2015-02-021-2/+2
| | | | | | | | | | | | | | commands come already fully expanded and quoted from the project. Change-Id: I239d5c305f5f65d32c832bc09bfd1c322051e149 Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
* | prune vestiges of IMAGES and QMAKE_IMAGE_COLLECTIONOswald Buddenhagen2015-02-021-1/+0
| | | | | | | | | | | | | | | | 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>
* | values(foo).first() => first(foo)Oswald Buddenhagen2015-02-021-6/+6
| | | | | | | | | | Change-Id: Ic5bb8ae3166c76299881970f83d20206bec704bc Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
* | avoid direct use of QLibraryInfo as much as possibleOswald Buddenhagen2015-02-021-2/+2
|/ | | | | Change-Id: Ic1f5f5167181b15bc67bf4c6a1001532d0058b45 Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
* centralize/unify/sanitize INCLUDEPATH "enrichment"Oswald Buddenhagen2015-01-111-6/+2
| | | | | | | | | | | | | | | | | | | | | | | 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>
* remove pointless pwd fallbacksOswald Buddenhagen2015-01-111-2/+0
| | | | | | | | 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>
* Xcode: Make sure QMAKE_PRE_LINK dependencies are complete for multi-arch buildsTor Arne Vestbø2014-11-121-2/+17
| | | | | | | | | | | | | | | 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>
* xcodegenerator: use a copy resource phase if possibleFawzi Mohamed2014-10-301-16/+24
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Since commmit 0127962e4772d6c758b954b2fe1d4b676d366b4c 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>
* Update license headers and add new license filesMatti Paaso2014-09-242-37/+21
| | | | | | | | | - Renamed LICENSE.LGPL to LICENSE.LGPLv21 - Added LICENSE.LGPLv3 - Removed LICENSE.GPL Change-Id: Iec3406e3eb3f133be549092015cefe33d259a3f2 Reviewed-by: Iikka Eklund <iikka.eklund@digia.com>
* Xcode generator: always create 'Copy Bundle Resources' phaseRichard Moe Gustavsen2014-09-201-11/+11
| | | | | | | | | | | | | | | 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>
* Xcode: Reference files by absolute path, and name them by basename onlyTor Arne Vestbø2014-07-312-24/+21
| | | | | | | | | | | | | | | 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>
* Xcode: Don't show QMAKE_INTERNAL_INCLUDED_FILES from Qt (prf/pri)Tor Arne Vestbø2014-07-301-2/+11
| | | | | | | | | | | | | | 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>
* remove pointless 'group' parameterOswald Buddenhagen2014-07-301-4/+4
| | | | | | | the c'tor always determines the group itself anyway. Change-Id: Ia8f1e747aaefdab164beae34851aa99cec9b790a Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
* Xcode: Fix QMAKE_PRE_LINK dependency handlingTor Arne Vestbø2014-07-231-3/+3
| | | | | | | | | | | 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>