summaryrefslogtreecommitdiffstats
path: root/qmake/generators
Commit message (Collapse)AuthorAgeFilesLines
...
* | untangle handling extra compiler .clean memberOswald Buddenhagen2015-02-171-13/+17
| | | | | | | | | | | | | | | | | | it's easy when it is a simple list of files (or just absent). however, it can also contain expandos, and in this case it's definitely not a good idea to treat it partly (but not really) as a single shell command. Change-Id: I7ef32a56f276b06579fc7094357c5f7612eaf205 Reviewed-by: Joerg Bornemann <joerg.bornemann@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>
* | remove pointless fixPathToTargetOS() callsOswald Buddenhagen2015-02-175-19/+13
| | | | | | | | | | | | | | | | | | | | 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>
* | replace incorrect uses of fixPathToLocalOS() (mostly)Oswald Buddenhagen2015-02-1710-67/+68
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
* | remove pointless path trimmingOswald Buddenhagen2015-02-171-1/+1
| | | | | | | | | | | | | | | | 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>
* | fix quoting issues. all of them. (*)Oswald Buddenhagen2015-02-1714-473/+514
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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-177-68/+89
| | | | | | | | | | | | | | | | | | | | | | 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-1131-217/+217
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
* | Make .la file generation reproducible in qmakeSune Vuorela2015-02-051-2/+1
| | | | | | | | | | | | | | | | | | | | | | 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>
* | make quoting in the prl writer more robustOswald Buddenhagen2015-02-051-10/+25
| | | | | | | | | | Change-Id: Idd9f64ac608b7e4ed840d5d9925bf741e03d78ab Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
* | fix conditional nesting botch-up in RES_FILE constructionOswald Buddenhagen2015-02-051-6/+6
| | | | | | | | | | | | | | | | 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>
* | don't resolve DESTDIR against source dir in RES_FILE constructionOswald Buddenhagen2015-02-051-1/+1
| | | | | | | | | | | | | | that makes no sense at all. and OBJECTS_DIR is not resolved, either. Change-Id: Ie76b9de6bb11ae42945255f2e168943066d2f60d Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
* | don't fail to normalize RES_FILE for no apparent reasonOswald Buddenhagen2015-02-051-1/+1
| | | | | | | | | | Change-Id: I43d2e45a2743cd8d78229b5ae2bd5f63d92d74f8 Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
* | prune pointless INCLUDEPATH fixingOswald Buddenhagen2015-02-041-5/+0
| | | | | | | | | | | | | | | | 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>
* | fix versioned lib lookup with normalized full pathsOswald Buddenhagen2015-02-041-1/+1
| | | | | | | | | | | | | | | | 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>
* | don't re-implement QDir::mkpath()Oswald Buddenhagen2015-02-041-35/+1
| | | | | | | | | | Change-Id: Ic5cd5d3048c19047f22641698acbf678301d366e Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
* | rename fileVarGlue() => fixFileVarGlue()Oswald Buddenhagen2015-02-042-4/+4
| | | | | | | | | | | | | | ... 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>
* | 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>
* | inline initOld()Oswald Buddenhagen2015-02-022-40/+35
| | | | | | | | | | | | | | the separation serves no purpose except confusing. Change-Id: I6a0d04b2162a4eee7a200345e94baa272120ea5b Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
* | inline outputVariables()Oswald Buddenhagen2015-02-022-13/+7
| | | | | | | | | | | | | | it's debugging code which is used only once (if even uncommented). Change-Id: Ie57347017dd24f4acecff2a7132f82898dea3122 Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
* | prune dead fixFilename() functionOswald Buddenhagen2015-02-022-17/+0
| | | | | | | | | | Change-Id: I84bafecccec286094701874b2780b45d08797524 Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
* | prune dead fixifySpecdir() functionOswald Buddenhagen2015-02-022-8/+0
| | | | | | | | | | Change-Id: I3bc7f8de86213b1e1d99bdb2749589dbe3851eee Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
* | prune pointless assignments of QString::replace() and remove() resultsOswald Buddenhagen2015-02-026-31/+27
| | | | | | | | | | | | | | they operate in-place. Change-Id: Iab6f2f6a9f6f67b9d70feb77ec719e424909022d Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
* | optimize filePrefixRoot()Oswald Buddenhagen2015-02-021-4/+6
| | | | | | | | | | | | | | more efficient use of string functions. Change-Id: I3d95d6379eaab025b18449b706f93631a2132aad Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
* | remove dead variablesOswald Buddenhagen2015-02-023-6/+1
| | | | | | | | | | 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-022-6/+6
| | | | | | | | | | | | | | 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-026-19/+2
| | | | | | | | | | | | | | | | 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>
* | remove QMAKE_FAILED_REQUIREMENTS optimization from unix generatorOswald Buddenhagen2015-02-021-3/+0
| | | | | | | | | | | | | | | | 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>
* | make fallback handling for QMAKE_BUNDLE_EXTENSION saneOswald Buddenhagen2015-02-021-6/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | 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>
* | values(foo).first() => first(foo)Oswald Buddenhagen2015-02-025-35/+31
| | | | | | | | | | Change-Id: Ic5bb8ae3166c76299881970f83d20206bec704bc Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
* | remove weird qt_dll hackOswald Buddenhagen2015-02-021-4/+0
| | | | | | | | | | | | | | there is no reference to it anywhere. Change-Id: I72403be6c8294d9b2e64075ebd428eba24d97097 Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
* | don't verify compilers twiceOswald Buddenhagen2015-02-021-2/+1
| | | | | | | | | | Change-Id: Iad214f8a14c29b633752935e31125a6f4b512f4b Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
* | remove pointless double initialization guardsOswald Buddenhagen2015-02-0213-36/+7
| | | | | | | | | | | | | | this isn't some fuzzy logic, the call sequence is well determined. Change-Id: I1696b49ed687da83d2969efcfe23ac6565630020 Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
* | nuke gbuild generatorOswald Buddenhagen2015-02-023-498/+0
| | | | | | | | | | | | | | | | | | 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>
* | avoid direct use of QLibraryInfo as much as possibleOswald Buddenhagen2015-02-023-6/+4
| | | | | | | | | | Change-Id: Ic1f5f5167181b15bc67bf4c6a1001532d0058b45 Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
* | turn off nmake inference rule generation on detected conflictsJoerg Bornemann2015-01-282-6/+48
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
* | Merge remote-tracking branch 'origin/5.4' into devFrederik Gladhorn2015-01-216-43/+31
|\| | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
| * centralize/unify/sanitize INCLUDEPATH "enrichment"Oswald Buddenhagen2015-01-116-30/+24
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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-114-8/+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>
| * fix file separators in 'clean' targetsOswald Buddenhagen2015-01-091-2/+3
| | | | | | | | | | | | Task-number: QTBUG-39690 Change-Id: Ibbed847258a3a7e21d6d10b9400af0001d10c6f8 Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
| * fix distclean for dynamic libraries againOswald Buddenhagen2015-01-091-3/+4
| | | | | | | | | | | | Task-number: QTBUG-40264 Change-Id: I1d28d2ef96c5c53274ca21c0ea3f416f0d9628dd Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
* | remove dead codeJoerg Bornemann2015-01-131-17/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
* | use QSet<T> instead of QHash<T, void*>Joerg Bornemann2015-01-131-10/+10
| | | | | | | | | | Change-Id: Ifdc4d7c8e5fcb86834b2ee2c9db73decfffb4ff6 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
* | remove unsupported winrt mkspecsAndrew Knight2014-12-166-109/+10
| | | | | | | | | | | | | | | | | | 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>
* | Merge remote-tracking branch 'origin/5.4' into devSimon Hausmann2014-12-102-1/+17
|\| | | | | | | | | | | | | | | Conflicts: doc/global/template/style/online.css mkspecs/android-g++/qmake.conf Change-Id: Ib39ea7bd42f5ae12e82a3bc59a66787a16bdfc61
| * qmake: Add .qmake.stash/super to QMAKE_DISTCLEAN when owned by projectTor Arne Vestbø2014-12-031-0/+16
| | | | | | | | | | | | | | | | | | | | | | | | 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>
| * fix rc compilation in vcxproj filesJoerg Bornemann2014-12-021-1/+1
| | | | | | | | | | | | | | | | | | | | 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>
* | Handling of qmake variable defining the manifest file on MinGWEric Lemanissier2014-12-094-2/+23
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>