summaryrefslogtreecommitdiffstats
path: root/qmake/generators/makefile.h
Commit message (Collapse)AuthorAgeFilesLines
* don't pass qmake configure arguments to sub-projectsOswald Buddenhagen2017-01-061-1/+1
| | | | | | | | | | | | | the arguments after '--' are by definition meant only for the top-level project, as that's where configure is invoked from. passing them to sub-projects just adds noise to the make output and misleads users. note that this specifically does not support qmake -r, which will break if the subprojects rely on the arguments being absent. this isn't a problem, because the qt build doesn't support qmake -r anyway. Change-Id: I7ecff6212ce3137526005fc324a4a7ae45e3345e Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* qmake: Mark MakefileGenerator::Compiler as Q_MOVABLE_TYPEMarc Mutz2016-08-151-0/+3
| | | | | Change-Id: I6469ffe3027c8519e80b71f5014f7bd9474e836b Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
* Merge remote-tracking branch 'origin/5.6' into 5.7Liang Qi2016-06-201-0/+2
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | And blacklisted a few tests in tst_QUdpSocket. Conflicts: src/android/jar/src/org/qtproject/qt5/android/QtNative.java src/corelib/global/qglobal.cpp src/corelib/global/qsystemdetection.h src/corelib/io/qfileselector.cpp src/plugins/platforms/eglfs/deviceintegration/eglfs_kms_egldevice/qeglfskmsegldeviceintegration.cpp tests/auto/network/socket/qudpsocket/BLACKLIST Task-number: QTBUG-54205 Change-Id: I11dd1c90186eb1b847d45be87a26041f61d89ef6
| * qmake: Fix missing newlines in generated vcxproj filesMat Sutcliffe2016-06-161-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | A bug in the Windows C Runtime causes text mode pipes to drop newlines sometimes. This bug was hidden because of another bug in rcc which caused newlines to be redundantly duplicated. When the latter bug was fixed (commit 53d5811b) the former bug was exposed, causing invalid vcxproj files to be generated. The Windows bug is described here: https://connect.microsoft.com/VisualStudio/feedback/details/1902345 The workaround is to avoid text mode, and do the conversion of "\r\n" to "\n" ourselves (which we were already doing anyway). Change-Id: I792599a4cd7822f109fa921f02207fb1b144b1d1 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
* | Merge remote-tracking branch 'origin/5.6' into devLiang Qi2016-01-261-0/+4
|\| | | | | | | | | | | | | | | | | | | | | | | 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
| * Work around MinGW-make's magic prefixing of paths.Frederik Gladhorn2016-01-211-0/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When building QNX on MS-Windows, make magically adds the Msys root as prefix to variables whose values look like paths; this applies to both environment variables and variables given values on the command-line. When we don't actually want to install under the Msys root, this is unwelcome "help". So (for MinGW's make) support a magic prefix of our own, @msyshack@, that'll make a path value for INSTALL_ROOT not look like a path to make; we can then strip it off when we come to use it. Change-Id: I951ad3c8fe3e5cfb49e6e361d7fff779f3a9d716 Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@theqtcompany.com> Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com> Reviewed-by: Frederik Gladhorn <frederik.gladhorn@theqtcompany.com>
* | Updated license headersJani Heikkinen2016-01-211-17/+12
|/ | | | | | | | | | | | | 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>
* MakefileGenerator::processSources() doesn't need to be virtual.Edward Welbourne2015-11-131-1/+1
| | | | | | | | Only VcprojGenerator over-rode it; and did so with a replacement identical to the one on the base, so there was no point to it. Change-Id: I5b899372247809c82b1cae25817e06c5849cd10d Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
* merge MingwMakefileGenerator::findLibraries() into Win32MakefileGeneratorOswald Buddenhagen2015-10-021-0/+2
| | | | | | | | as a side effect, this makes the extensions used for searching libraries configurable under windows (QMAKE_LIB_EXTENSIONS). Change-Id: I3e64304fcadbfe74d601b50a70a73180c894503e Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
* merge processPrlFiles() into findLibraries()Oswald Buddenhagen2015-10-021-3/+2
| | | | | | | | seems pointless to tear apart the functions, on the way duplicating some boilerplate. Change-Id: Ide3697ca1c931e8de607ac48c21cecce4781fe13 Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
* make fileFixify() calling convention somewhat saneOswald Buddenhagen2015-04-211-9/+16
| | | | | | | | | | 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>
* remove pointless argument to build_args()Oswald Buddenhagen2015-04-211-1/+1
| | | | | | | it's always empty. Change-Id: Icd97b5ac5b77c119174fdce2671f69c88c607428 Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
* fix quoting issues. all of them. (*)Oswald Buddenhagen2015-02-171-4/+8
| | | | | | | | | | | | | | | | | | | | | | 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-17/+22
| | | | | | | | | | | 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>
* Update copyright headersJani Heikkinen2015-02-111-7/+7
| | | | | | | | | | | | | | | | | | 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>
* rename fileVarGlue() => fixFileVarGlue()Oswald Buddenhagen2015-02-041-1/+1
| | | | | | | ... 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>
* prune dead fixifySpecdir() functionOswald Buddenhagen2015-02-021-1/+0
| | | | | Change-Id: I3bc7f8de86213b1e1d99bdb2749589dbe3851eee Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
* remove pointless double initialization guardsOswald Buddenhagen2015-02-021-1/+1
| | | | | | | this isn't some fuzzy logic, the call sequence is well determined. Change-Id: I1696b49ed687da83d2969efcfe23ac6565630020 Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
* Update license headers and add new license filesMatti Paaso2014-09-241-19/+11
| | | | | | | | | - Renamed LICENSE.LGPL to LICENSE.LGPLv21 - Added LICENSE.LGPLv3 - Removed LICENSE.GPL Change-Id: Iec3406e3eb3f133be549092015cefe33d259a3f2 Reviewed-by: Iikka Eklund <iikka.eklund@digia.com>
* qmake: generate make dist target for subdir projectsJ-P Nurmi2014-06-021-2/+2
| | | | | | | | | | | | | 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>
* qmake: share the default variablesJ-P Nurmi2014-05-271-0/+1
| | | | | | | | | 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>
* qmake: fix const correctnessJ-P Nurmi2013-12-101-10/+10
| | | | | | | | | 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>
* adequately shell-escape generated sed commandsOswald Buddenhagen2013-11-231-0/+1
| | | | | Change-Id: I39c8c4ab3da69bd21beace56f5cf3070301ac015 Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* de-duplicate code for writing dummy makefilesOswald Buddenhagen2013-08-271-0/+1
| | | | | | | | | | 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>
* Merge remote-tracking branch 'gerrit/release' into stableSamuel Rødal2013-03-211-1/+1
|\ | | | | | | | | | | | | | | | | | | | | | | Conflicts: configure mkspecs/features/qt_module_headers.prf mkspecs/features/qt_tool.prf src/angle/angle.pro src/tools/bootstrap/bootstrap.pro tests/auto/widgets/kernel/qwidget/tst_qwidget.cpp Change-Id: Ide5759fe419a50f1c944211a48f7c66f662684e0
| * fix parallelized "jom install"Oswald Buddenhagen2013-03-151-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | unlike unix' mkdir -p, windows' md complains if the directory already exists. the workaround is a quite complex command, so the so far used concept for assembling the command line from pieces was replaced with a single template. for symmetry, adapt the makefile existence check to the new concept as well. QMAKE_CHK_EXISTS and QMAKE_MKDIR_CMD were added, with hard-coded fallbacks (ugly). QMAKE_CHK_FILE_EXISTS and QMAKE_CHK_EXISTS_GLUE (introduced in 5.0.0) are simply deleted again. QMAKE_CHK_DIR_EXISTS and QMAKE_MKDIR remain for legacy reasons, as qmake emits them into the Makefiles, and custom commands may rely on their presence. Task-number: QTBUG-28132 Change-Id: I3d049cb5d26947e5c3d102d0c2da33afb2a95140 Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com> Reviewed-by: Janne Anttila <janne.anttila@digia.com> Reviewed-by: Kai Koehne <kai.koehne@digia.com>
* | Make .prl file generation work for iOS again.Morten Johan Sørvig2013-03-061-1/+1
|/ | | | | | | | | | | | | d28073d9 creates a distinction between "mac" and "macx". The latter is not set on iOS, which caused MakefileGenerator::target_mode to be set to TARG_UNIX_MODE. Check for the "mac" active config instead of "macx". Rename TARG_MACX_MODE -> TARG_MAC_MODE. Change-Id: I7192788c33f5723034ba76da2492379dd454f0ab Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com> Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
* consolidate generation of metafile install targetsMark Brand2013-01-251-0/+2
| | | | | | | | | Metafiles such as .prl and .pc files contain paths that have to be adjusted during installation. The same code is used for unix and windows so move it into the base class. Change-Id: I82db89ec83820a4fa0214ba15e7cd63438f6dc91 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
* Update copyright year in Digia's license headersSergio Ahumada2013-01-181-1/+1
| | | | | Change-Id: Ic804938fc352291d011800d21e549c10acac66fb Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* Change copyrights from Nokia to DigiaIikka Eklund2012-09-221-24/+24
| | | | | | | | Change copyrights and license headers from Nokia to Digia Change-Id: If1cc974286d29fd01ec6c19dd4719a67f4c3f00e Reviewed-by: Lars Knoll <lars.knoll@digia.com> Reviewed-by: Sergio Ahumada <sergio.ahumada@digia.com>
* introduce qmake variable abstractionsOswald Buddenhagen2012-09-071-10/+18
| | | | | | | | this is preparation for adapting to a new evaluator. Change-Id: I6fc59f5525735754a00afa6629fbfe257e84db97 Reviewed-by: Daniel Teske <daniel.teske@nokia.com> Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
* micro-optimize: use POD-initializable lists of variable namesOswald Buddenhagen2012-08-281-2/+2
| | | | | Change-Id: I3732fef509b358949ef90002dbfc1960360afef8 Reviewed-by: Daniel Teske <daniel.teske@nokia.com>
* remove unused checkMultipleDefinition()Oswald Buddenhagen2012-08-281-1/+0
| | | | | Change-Id: I533c2091333942f145063ad04f4420b7a2de0a37 Reviewed-by: Daniel Teske <daniel.teske@nokia.com>
* revamp preparation of command line for qmake calls in makefilesOswald Buddenhagen2012-08-141-1/+1
| | | | | | | | | | | | | instead of re-assembling a list from the variables, take the original command line minus some explicitly stripped out options. this is way less code and poses no synchronization problem between the two parts. as a "side effect", variables obtained from $QMAKEFLAGS won't multiply with each makefile nesting level, as the generated command line won't replicate data obtained from the environment. Change-Id: I5d1ce0f11efb338f60405529f9818910103b1b0e Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
* Remove references to Borland and bmakeAndy Shaw2012-08-011-2/+2
| | | | | | | | | Remove references to an old compiler that has not been supported for a long time. Also remove Borland specific configuration flags which have no meaning elsewhere. Change-Id: I3634a52b78f737ea972073e14c2b6669dcd0ae63 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
* inline MakefileGenerator::processPrlVariable()Oswald Buddenhagen2012-07-311-1/+0
| | | | | | | | the visitor-pattern like approach is not needed any more Change-Id: I990db681cbeee91d89ecba97745a8104595247e7 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com> Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
* make the windows prl processing more like the unix variantOswald Buddenhagen2012-07-311-1/+1
| | | | | | | | it's more elegant, and more similar code is better. Change-Id: I2b8b036cb70a932fd171e23cf7d3389188401924 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com> Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
* Fix qmake hash function to use XORRafael Roquetto2012-07-251-1/+1
| | | | | | | | | Use XOR instead of OR in order to avoid saturating all bits when computing the hash value. Change-Id: I50b1a044eb827239dae1c04732ca6a065f6233b4 Reviewed-by: Andreas Holzammer <andreas.holzammer@kdab.com> Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
* automatically fix separators in QMAKE_{DIST,}CLEANOswald Buddenhagen2012-07-161-0/+1
| | | | | | | it's a tad insane to expect the user to do that Change-Id: I75c68f2a28656c9ba2e3fabcc79718b899b29ce7 Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
* assume windows shell iff dir separator is backslashOswald Buddenhagen2012-06-271-1/+1
| | | | | Change-Id: I411a4d6691e18b818ee7d1ced7f126f97af0902f Reviewed-by: Mark Brand <mabrand@mabrand.nl>
* revamp handling of qmake target modeOswald Buddenhagen2012-06-271-0/+2
| | | | | | | | | | | the project evaluator becomes oblivious of the target mode. the mode is set up in spec_post.prf according to the spec. $$QMAKE_TARGET contains the feature suffixes to search, and is also contained in $$CONFIG. the target_mode variable itself becomes private to the Makefile class. Change-Id: I3c06d9dab536b753343cec6c5c491d3203e50bd8 Reviewed-by: Mark Brand <mabrand@mabrand.nl>
* clean up specdir()Oswald Buddenhagen2012-06-261-1/+2
| | | | | | | | | the only callers which used non-default arguments are gone now, so remove the arguments entirely. this also enables us to re-enable result caching. Change-Id: I62f76e17e531a4eeafddb9b29716ca0a0eb3dbea Reviewed-by: Thiago Macieira <thiago.macieira@intel.com> Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
* fix -spec/-xspec argument re-assemblyOswald Buddenhagen2012-06-261-0/+1
| | | | | | | | | | the specs in Option are now only fixifiable absolute paths if an actual path was passed on the command line - otherwise these are just names, and we should pass them on verbatim. Change-Id: I5b3535dadf2d6b2b3116331e6636f6e363a5361f Reviewed-by: Thiago Macieira <thiago.macieira@intel.com> Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
* revamp automatic makefile generation for sub-projectsOswald Buddenhagen2012-06-191-1/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | instead of making the "real" targets depend on the makefiles, add conditional makefile generation to the targets themselves. this causes makefile generation to follow the recursion order determined by the project, which is important when dealing with prl and module pri files. a side effect of this is that qmake and make calls are interleaved now, which is entirely different from a 'qmake -r' run. on the downside, calling make with multiple targets which operate on the same subprojects without prior makefile generation will make a mess, as the qmake calls will be racing. this should be no problem, as qmake does not generate recursive targets where this would be useful - at least by default. it is not sufficient to just order the creation of the makefiles non-recursively (e.g., by using gnu-specific order-only-prerequisites), as an interrupted and subsequently resumed build would happily skip the nested makefiles. workable alternative approaches would be walking the entire tree in a pre-pass to ensure makefile presence (which is incredibly slow) or creating additional stamp files only after recursing and having the makefiles depend on them (which is ugly). Task-number: QTBUG-23376 Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com> Change-Id: I88d3e7610215677d362026de316513d3bea04b06
* introduce $$QMAKE_CHK_EXISTS_GLUEOswald Buddenhagen2012-06-191-1/+1
| | | | | | | instead of hard-coding platform differences, use a variable. Change-Id: I20e98811ad5f07429148c6f88aedbabc3ba58fff Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
* unobfuscate makefiles re $(CHK_DIR_EXISTS)Oswald Buddenhagen2012-06-191-0/+1
| | | | | | | | no need to define an obscure variable for it. just inline it. the assignments are left in for compatibility with hand-written commands. Change-Id: I9bc3914e2c4116f3b8fe00a421ca0f036bb7e214 Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
* make 'qmake_all' target of SUBDIRS projects properly recursiveOswald Buddenhagen2012-06-191-1/+1
| | | | | | | | | so far it would rebuild the makefiles one level down only, which is somewhat arbitrary and not really helpful. Change-Id: I5fe01f379ecc4b210610a674d7df7dfc18131eef Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com> Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
* introduce ability to build projects for the host systemOswald Buddenhagen2012-06-191-1/+1
| | | | | | | | | | | | | | | | | when qmake runs into the new option(host_build) command, it will restart the project evaluation with a host spec. the new default host spec is called default-host (gasp!). it is overridden with the pre-exising -spec / -platform option, while the new -xspec / -xplatform option overrides the pre-existing default spec. specifying -spec but not -xspec will set the xspec, too, so the behavior is backwards-compatible. same for the XQMAKESPEC override read from .qmake.cache and the environment variable. the cleaner solution would be adding -hostspec, to be symmetrical with the override semantics, but that would deviate from configure in turn. Change-Id: I4297c873780af16ab7928421b434ce0f1d3820da Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
* remove support for QMAKE_PLATFORM_DIROswald Buddenhagen2012-03-081-3/+0
| | | | | | | | | | this was a somewhat magic support for sysroots, automatically rewriting a number of path-holding variables. this was (as usual) completely undocumented, extremely fragile, and we are coming up with something better now anyway. Change-Id: I045910f532cb3efc839ea81c7a48f8db695e4092 Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
* Remove "All rights reserved" line from license headers.Jason McDonald2012-01-301-1/+1
| | | | | | | | | | As in the past, to avoid rewriting various autotests that contain line-number information, an extra blank line has been inserted at the end of the license text to ensure that this commit does not change the total number of lines in the license header. Change-Id: I311e001373776812699d6efc045b5f742890c689 Reviewed-by: Rohan McGovern <rohan.mcgovern@nokia.com>