summaryrefslogtreecommitdiffstats
path: root/qmake
Commit message (Collapse)AuthorAgeFilesLines
* qmake: Include own header firstSergio Ahumada2012-09-172-2/+3
| | | | | | | cpp files should include their own headers first (but below config.h) Change-Id: I10ef37854843ae6438d68f96ce5ee83eede33db5 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
* remove support for non-lowercased $$eXpaNd() functionsOswald Buddenhagen2012-09-131-9/+0
| | | | | | | | | | we have been warning about such functions for a while now, now execute. the qmake language is (generally) case-sensitive, so this wasn't all that useful anyway. Change-Id: I1388ac2d5a1104389aeb3347e739a0d5e69e138d Reviewed-by: Qt Doc Bot <qt_docbot@qt-project.org> Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
* delete grossly outdate changelog fileOswald Buddenhagen2012-09-131-99/+0
| | | | | | Change-Id: Ibd35690e82849457a10d8d2f99564d2e0bde257b Reviewed-by: Qt Doc Bot <qt_docbot@qt-project.org> Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
* bump qmake versionOswald Buddenhagen2012-09-131-1/+1
| | | | | | | | the world has awaited this moment for a long time. very patiently. Change-Id: Iba8697e7eebb5cdd43caadb64cd89126de395e66 Reviewed-by: Qt Doc Bot <qt_docbot@qt-project.org> Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
* replace qmake_version() with a simple string literalOswald Buddenhagen2012-09-136-24/+6
| | | | | | Change-Id: I12e715aab23e01267e8a1434a3a965276c1a6182 Reviewed-by: Qt Doc Bot <qt_docbot@qt-project.org> Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
* don't pretend that break()/next()/return() are functionsOswald Buddenhagen2012-09-136-37/+77
| | | | | | | | | | | | | | it's a pretty braindead thing to implement control flow statements as (built-in) functions. as a "side effect", this fixes return() value handling for lists. (cherry picked from qtcreator/f53ed6c4b3feca59a94d4f0de8b1a7411122e30e) (cherry picked from qtcreator/f529e22ec38fb9a656d74394e484d2453cf42c69) Change-Id: I59c8efa0e4d65329327115f7f8ed20719e7f7546 Reviewed-by: Qt Doc Bot <qt_docbot@qt-project.org> Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com> Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
* improve parse error recovery pathsOswald Buddenhagen2012-09-131-4/+7
| | | | | | | | | | to reduce collateral damage from parse errors. (cherry picked from qtcreator/00c0d0d5e42d28e03c2846c17d3acbcd8420859d) Change-Id: Ic59700d657069d3b15372509b4bff966057d27a9 Reviewed-by: Qt Doc Bot <qt_docbot@qt-project.org> Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com> Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
* compile without CamelCase headersOswald Buddenhagen2012-09-112-5/+5
| | | | | | | | for faster bootstrapping without a full syncqt run Change-Id: I648f0a8fb09be021590c46e8e5e15667a316c817 Reviewed-by: Qt Doc Bot <qt_docbot@qt-project.org> Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
* give location information for QMAKE_SUBSTITUTES conditionalsOswald Buddenhagen2012-09-112-4/+4
| | | | | | Change-Id: I9b6bee252d4ed4bf263394ace29a4fb3b324a8cd Reviewed-by: Daniel Teske <daniel.teske@nokia.com> Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
* port qmake to qt creator's qmake language evaluatorOswald Buddenhagen2012-09-1127-4102/+7252
| | | | | | | | | | | | | | | | | | | | | this is a monster commit which does the following things: - import the evaluator as-is from qt creator into qmake/library/ - integrate it into qmake's makefiles - overwrite proitems.h with actual special types - remove the parts of Option which are redundant with QMakeGlobals - make QMakeProperty a singleton owned by Option::globals. the dynamic handling so far made no sense. - make QMakeProject a subclass of QMakeEvaluator, with relatively few extensions the changes to existing qmake code outside project.* and option.* are minor. implementing the changes gradually would mean changing a lot of code which will be just replaced in the next commit, so i'm not wasting my time on it. Change-Id: I9746650423b8c5b3fbd8c3979a73228982a46195 Reviewed-by: Qt Doc Bot <qt_docbot@qt-project.org> Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
* Fix semantics of the src dir in the include search paths with MinGWSimon Hausmann2012-09-101-0/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This issue originates from https://bugs.webkit.org/show_bug.cgi?id=95736 Suppose we have main.cpp somedirectory/someheader.h -- which has #include "anotherheader.h" anotherheader.h With unix generator, the directory where main.cpp is located is included, unless no_include_pwd is set. Hence the look-up of anotherheader.h from within someheader.h will work. With MSVC this works because MSVC looks "in the directories of any previously opened include files in the reverse order in which they were opened." (from http://msdn.microsoft.com/en-us/library/36k2cdd4.aspx) Unfortunately the build breaks with MinGW, because it lacks support for including the source directory in the include search path just like the unix generator does. This patch adds the same functionality to the MinGW generator as well as an auto-test. Change-Id: Iea8bb06e34862c51b8fd4eca2ee26668e24a319a Reviewed-by: Qt Doc Bot <qt_docbot@qt-project.org> Reviewed-by: Sergio Ahumada <sergio.ahumada@nokia.com> Reviewed-by: Jonathan Liu <net147@gmail.com> Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
* Removing duplicate includesSergio Ahumada2012-09-091-1/+0
| | | | | | | Do not include a header more than once Change-Id: Ia2e5d66e72988ad833cf5177a3f8aa988bf510e9 Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
* Check for C++ operators that should be 'const'Sergio Ahumada2012-09-081-2/+2
| | | | | | | | Make sure all C++ class comparison operators are const. Change-Id: Ib4a66f2afe6c62f437dae1ecde94287d3db8442d Reviewed-by: Thiago Macieira <thiago.macieira@intel.com> Reviewed-by: David Faure <faure@kde.org>
* fix c string comparisonOswald Buddenhagen2012-09-071-1/+1
| | | | | | | Change-Id: If9cc96e240047cfe301804d57a33b937afadef72 Reviewed-by: Qt Doc Bot <qt_docbot@qt-project.org> Reviewed-by: J-P Nurmi <j-p.nurmi@nokia.com> Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
* introduce qmake variable abstractionsOswald Buddenhagen2012-09-0736-1195/+1678
| | | | | | | | 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>
* restore support for QMAKE_LIBDIR_FLAGSOswald Buddenhagen2012-09-051-5/+7
| | | | | | | | unexpectedly, this internal variable is documented. grumble. Change-Id: I272c1f553b56f253d2f59f875de78d5bc279186a Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com> Reviewed-by: Daniel Teske <daniel.teske@nokia.com>
* remove pretenses of supporting projects on stdinOswald Buddenhagen2012-09-056-28/+13
| | | | | | | | | | this may have worked a decade ago, but now it only produces funny Makefiles (and needs hacking main.cpp). the feature doesn't seem *too* important, so just clean it out. Change-Id: I50a60b0e30341f0b523e4a5731c770c9c1013f8b Reviewed-by: Daniel Teske <daniel.teske@nokia.com> Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
* make QMakeMetaInfo a little less inefficient with libtool .la filesOswald Buddenhagen2012-09-056-13/+10
| | | | | | | | | don't read the spec from scratch for every library just to get QMAKE_LFLAGS_RPATH. we can perfectly use our current project for that purpose. Change-Id: I4e408b3fd5de81652181df032aa53cd8f2f8f806 Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
* pre-initialize more invariant propertiesOswald Buddenhagen2012-09-051-6/+4
| | | | | Change-Id: I0add2e7ead5a3d63124ef7ff85362895dd64bd23 Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
* remove QMAKE_MKSPECS property from qmake -query's viewOswald Buddenhagen2012-09-052-6/+3
| | | | | | | | | | it's a dynamic property which is something between meaningless and misleading when used outside a project file. also, experience from creator shows that people would consistently abuse it (not handling it as the list it is). Change-Id: Id52cd40da5c38c0c74535d0701fdae53dfa39cad Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
* remove handling of QMAKE_FILETAGSOswald Buddenhagen2012-09-033-26/+0
| | | | | | | | it was unused for a decade. and broken, of course. Change-Id: I9713d595d95c5b074ef96dfe9b1c314b9198bd7e Reviewed-by: Daniel Teske <daniel.teske@nokia.com> Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
* remove unnecessary QMAKESPEC fallback codeOswald Buddenhagen2012-09-031-5/+0
| | | | | | | | QMAKESPEC is now always set Change-Id: Ib3f7356a9260d42315747095e28db6604b2dcfe9 Reviewed-by: Daniel Teske <daniel.teske@nokia.com> Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
* remove pretenses of manual dependenciesOswald Buddenhagen2012-09-031-5/+5
| | | | | | | | now that "make depend" actually works again, just clean out the gunk. Change-Id: Ia1858a2474c9a4544ae16c53349aa7ae09e0c685 Reviewed-by: Daniel Teske <daniel.teske@nokia.com> Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
* unbreak "make depend" for shadow buildsOswald Buddenhagen2012-09-031-6/+13
| | | | | | Change-Id: Ib79ba79e41cfeac9350852395b03c331dc4fe2a3 Reviewed-by: Daniel Teske <daniel.teske@nokia.com> Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
* unify c*flags in the hand-written makefiles somewhatOswald Buddenhagen2012-09-033-15/+17
| | | | | Change-Id: I7a7139fd71bce879b3ee4d9e26e30d2ca63da69e Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
* fix assignment of MSVCPROJ_TARGETOswald Buddenhagen2012-09-031-4/+1
| | | | | | | i'm only guessing what was intended here. Change-Id: I72bfa3b5fad63f5b144d34762152e4dd851197ac Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
* beautify string operationsOswald Buddenhagen2012-08-282-5/+4
| | | | | Change-Id: I895a1ae26ee0c884c404bf585261d1a7e8a8242c Reviewed-by: Daniel Teske <daniel.teske@nokia.com>
* micro-optimize: use POD-initializable lists of variable namesOswald Buddenhagen2012-08-2810-42/+42
| | | | | Change-Id: I3732fef509b358949ef90002dbfc1960360afef8 Reviewed-by: Daniel Teske <daniel.teske@nokia.com>
* remove unused checkMultipleDefinition()Oswald Buddenhagen2012-08-282-24/+0
| | | | | Change-Id: I533c2091333942f145063ad04f4420b7a2de0a37 Reviewed-by: Daniel Teske <daniel.teske@nokia.com>
* remove dead variable assignmentsOswald Buddenhagen2012-08-284-5/+0
| | | | | | Change-Id: I032e9116ca1b7250497f56ea26103f2173f0fc09 Reviewed-by: Daniel Teske <daniel.teske@nokia.com> Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
* Remove automatic drive letter lowercasing from Option::fixString()v5.0.0-beta1Miikka Heikkinen2012-08-281-3/+0
| | | | | | | | | | This enforced lowercasing causes subtle errors, like changing the drive letter case when doing $$files(), which makes it difficult to do any string matching against the result later. Task-number: QTBUG-26985 Change-Id: I4973e3ac3e851e24af944295edf290cc98f02fb6 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
* qmake: fix manifest resource for non-trivial target namesJoerg Bornemann2012-08-231-1/+1
| | | | | | | | | The Microsoft Resource Compiler bails out if the rc file contains non-trivial file name references. In particular it doesn't like dashes in file names. We're now always quoting the file name. Change-Id: I67b8d2c13010a0b2ec26cac915ebd1be95f1c274 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
* qmake: fix embedding of generated manifests in debug modeJoerg Bornemann2012-08-221-5/+4
| | | | | | | | | | | The existence of the manifest backup is used as a marker to decide whether to embed the manifest in a second link step or not. If it's present, the embedding took place in the first link step. If it's not present, we must link again incrementally. That logic was implemented faulty. Change-Id: I10154dbbbe70c7981795ac66d46a166907ba13ec Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
* qmake: fix generated rc file for embedding manifestsJoerg Bornemann2012-08-221-2/+2
| | | | | | | | | The rc file is in the same directory as the manifest file. Therefore the include must consist of the filename and must not include the file's path. Change-Id: I4f5ac11b131f39ea8c425aca93fcf82d150c0204 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
* qmake: object_with_source feature removedJoerg Bornemann2012-08-171-6/+1
| | | | | | | | | | | By putting object_with_source into CONFIG one could force qmake to output each object file into the same directory as its source file came from. This was a rather nasty work-around from Qt 3 times to support source files with the same file name in a project. Unfortunately this doesn't play nicely with shadow builds. Change-Id: Ie79e14d36ba6eac4219edc14ea75ab6a96f9ea96 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
* unbreak "aux" template for mingw & msvcOswald Buddenhagen2012-08-172-13/+2
| | | | | | | | we cannot just completely stub it out, as then there are no dependencies on whatever targets we actually *want* to be built. Change-Id: I32a92fa937d099c153a0082feae5d23e3998ba48 Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
* beautify "aux" targetOswald Buddenhagen2012-08-171-8/+10
| | | | | | | it works better when it castrates the app template, rather than staticlib Change-Id: If52960fb48d770e8ec096c66b579539512b8d299 Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
* qmake: support incremental linking when embedding manifestsJoerg Bornemann2012-08-162-5/+72
| | | | | | | | | | | | | | | | | | | | When embedding manifests we modified the EXE/DLL after linking using the manifest tool. This breaks the incremental linking feature of MSVC. The MS way to embed a manifest without breaking incremental linking is: - let the linker create the manifest file, - create a resource that contains the manifest file, - invoke the linker again to embed the resource. The embed_manifest_{exe|dll}.prf files have been removed. All manifest logic is now in qmake's nmake makefile generator. With QMAKE_MANIFEST one can specify a custom manifest file that gets embedded without disturbing incremental linking. Task-number: QTBUG-22718 Change-Id: Idb9d2644a0577b2002cbdd2d62b695b9171b1bd5 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
* revamp preparation of command line for qmake calls in makefilesOswald Buddenhagen2012-08-144-55/+22
| | | | | | | | | | | | | 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>
* make command line parser use qt containersOswald Buddenhagen2012-08-142-54/+44
| | | | | | | way more legible code Change-Id: I7ba5a66f1f0bc7ae78ba0537ef8e5c780506a149 Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
* take parsing of qmake mode out of parseCommandLine()Oswald Buddenhagen2012-08-141-26/+24
| | | | | | | | it wouldn't do anything particularly useful when parsing QMAKEFLAGS, so take it out of the common path. Change-Id: I60f1215c4645707e1f99932dd19160e1d1c9d953 Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
* remove rather pointless parameter from parseCommandLine()Oswald Buddenhagen2012-08-142-4/+5
| | | | | Change-Id: I97998555c41e8eab2438ac355950abf9dace24a0 Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
* Sync .pr[oi] with the Makefiles so qmake builds againMarius Storm-Olsen2012-08-132-4/+9
| | | | | Change-Id: Ief766ac61f98859b84fc61b03b8c1292d3c06525 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
* support installs with target dirOswald Buddenhagen2012-08-081-8/+42
| | | | | | | | | this adds a .base "member" to the install "structure". if specified, only this much is stripped from the front of each element of .files, rather than the entire path, to obtain the target filename. Change-Id: Ic39fcf71c4ad874ffabbbad113be9cdc6e3f7260 Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
* reshuffle assembly of install commands as wellOswald Buddenhagen2012-08-081-24/+16
| | | | | | | | don't make a single string, but a string list which is join()ed in the end. this is a tad slower, but the code is way easier to work with. Change-Id: I1ff7168c2770998761a6081be8080c743ddc94a1 Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
* reshuffle assembly of uninstall commandsOswald Buddenhagen2012-08-081-12/+9
| | | | | | | | | make a proper stringlist of commands, and join it in reverse order only at the end. the reversal ensures that we can cleanly fold up directory hierarchies we may build. Change-Id: I9a241361588a6965283aec5258e1d622b35514e0 Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
* remove pointless appending of trailing dir separator under unixOswald Buddenhagen2012-08-081-2/+0
| | | | | Change-Id: Ia9b181db57ac2ee93cd412d58fe6ecbc5637a2f0 Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
* Rename msvc11 to msvc2012Andreas Holzammer2012-08-071-2/+2
| | | | | | | | | Microsoft has named their new Visual Studio again after the old naming schema. Change-Id: Ib1b971807fa89d90b10892a2d78570058e564f3a Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com> Reviewed-by: Nicolas Arnaud-Cormos <nicolas@kdab.com>
* qmake vcxproj generator: map TARGET_EXT to $(TargetExt)Joerg Bornemann2012-08-073-2/+12
| | | | | | | | Task-number: QTBUG-26782 Change-Id: Ib143fa6b8674c4d09d798a9301bb209b886e791d Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com> Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
* qmake: un-copy-and-pastify vcxproj generator a bitJoerg Bornemann2012-08-072-60/+70
| | | | | | | Reusing already built strings improves readability and performance. Change-Id: I8555fb860561ff214ae123efeda78fc770b6459f Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>