summaryrefslogtreecommitdiffstats
path: root/qmake/generators/win32
Commit message (Collapse)AuthorAgeFilesLines
* Make it possible to suppress the automatic version number in DLLsThiago Macieira2012-11-061-1/+2
| | | | | | | | | | | | qmake automatically appends the library's major version number to the DLL file name on Windows, as DLL naming doesn't include the version number on a suffix like on Unix systems. This flag makes it so qmake skips adding. This will allow us to insert Qt's major version number at a different position. Change-Id: I25d471038841fb0c5a34ef6b3bd6266aa33cebd1 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
* qmake: fix reversed defines in vcxproj filesJoerg Bornemann2012-10-131-1/+1
| | | | | Change-Id: I9fbb4b563428bb23974d59050f4c71e8d1983ff3 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
* qmake: fix .pc install target dir separators on windowsJ-P Nurmi2012-10-101-1/+1
| | | | | | | Task-number: QTBUG-26455 Change-Id: I578345b1676d0d2e812e0ab2e48468b4a8013ee9 Reviewed-by: Miikka Heikkinen <miikka.heikkinen@digia.com> Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* Fail when Windows CE SDK not foundAndreas Holzammer2012-09-271-0/+11
| | | | | | | | Add failing when crosscompile for Windows CE and no matching SDK is found. Change-Id: I359e792fe46bab46729788666679a16cb94f340e Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
* Bring subproject dependencies in line with Makefile generatorsAndy Shaw2012-09-272-171/+204
| | | | | | | | | | When generating the solution file it should extract the dependencies from the pro file as this will bring it in line with the Makefile generators. Task-number: QTBUG-22561 Change-Id: I8d5b6607712f2c77c87ef093480e64b9633817d8 Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* qmake: fix overescaped defines in vcxproj filesJoerg Bornemann2012-09-261-3/+19
| | | | | | | | Task-number: QTBUG-27345 Change-Id: I00848d611163afb549191f41adff628622a899e0 Reviewed-by: Andy Shaw <andy.shaw@digia.com> Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* qmake: Fix gcc warning about anonymous type linkageKai Koehne2012-09-261-1/+1
| | | | | | | | Fix "warning: anonymous type with no linkage used to declare variable '<anonymous struct> dotNetCombo []' with linkage". Change-Id: Iaff0d460df53fd6d0732d39bf633688805f5c653 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
* qmake: support for Visual Studio 2012 project files addedJoerg Bornemann2012-09-254-1/+34
| | | | | | | | | | The differences to VS 2010 project files are the version number (surprise!) and the PlatformToolSet tag which sets the version of the toolchain. Change-Id: If26f08fad1a69d7e6cd28cc5e860ff964f19b264 Reviewed-by: Andy Shaw <andy.shaw@digia.com> Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* Change copyrights from Nokia to DigiaIikka Eklund2012-09-2216-386/+386
| | | | | | | | 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>
* Use QStringList::join(QChar) overload where applicable [qmake]Marc Mutz2012-09-215-25/+25
| | | | | | | | | | This is an automated change performing the following replacements: join\("(.)"\) -> join('\1') join\(QLatin1String\("(.)"\)\) -> join(QLatin1Char('\1')) join\(QStringLiteral\("(.)"\)\) -> join(QLatin1Char('\1')) Change-Id: I9c9964703dedfdab6e7bfac80be22bd5570e2e49 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
* fix QMAKE_MANIFEST for shadow buildsOswald Buddenhagen2012-09-181-1/+3
| | | | | Change-Id: Iea71f4a4d483e9465b3a7f0ce4560b2e9fa6cd63 Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* properly C-quote the manifest file name in the rc fileOswald Buddenhagen2012-09-181-1/+11
| | | | | Change-Id: I8c8eb85d412becc8c4029c2aa393abf6f8e949b6 Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* rewrite *_manifest.rc unconditionallyOswald Buddenhagen2012-09-181-1/+1
| | | | | | | | | | the file has no dependency tracking, so changes to the source would get missed and cause hard to debug build issues. and as nothing does dependency tracking on that file, this change doesn't even cause a noticable performance regression. Change-Id: I108b490b71a43018e0c7ef5d7c0b11d79a8e726b Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* qmake: Include own header firstSergio Ahumada2012-09-171-1/+2
| | | | | | | cpp files should include their own headers first (but below config.h) Change-Id: I10ef37854843ae6438d68f96ce5ee83eede33db5 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.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>
* port qmake to qt creator's qmake language evaluatorOswald Buddenhagen2012-09-111-3/+3
| | | | | | | | | | | | | | | | | | | | | 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>
* introduce qmake variable abstractionsOswald Buddenhagen2012-09-078-250/+265
| | | | | | | | 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>
* make QMakeMetaInfo a little less inefficient with libtool .la filesOswald Buddenhagen2012-09-051-1/+1
| | | | | | | | | 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>
* remove handling of QMAKE_FILETAGSOswald Buddenhagen2012-09-032-19/+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>
* 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>
* micro-optimize: use POD-initializable lists of variable namesOswald Buddenhagen2012-08-283-10/+10
| | | | | Change-Id: I3732fef509b358949ef90002dbfc1960360afef8 Reviewed-by: Daniel Teske <daniel.teske@nokia.com>
* remove dead variable assignmentsOswald Buddenhagen2012-08-281-1/+0
| | | | | | Change-Id: I032e9116ca1b7250497f56ea26103f2173f0fc09 Reviewed-by: Daniel Teske <daniel.teske@nokia.com> 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>
* 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>
* 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>
* 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>
* Add the filters for extra compilers for vcxproj filesAndy Shaw2012-08-071-0/+8
| | | | | | | | | | | The files were grouped into the relevant filters but the filters themselves were not added. This now ensures the filters are added to the vcxproj files so they appear grouped correctly. Task-number: QTBUG-26755 Change-Id: I7d2c6fa96dcbb0496fd9d1bb1d01e7dd660052f4 Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
* Remove references to Borland and bmakeAndy Shaw2012-08-015-255/+4
| | | | | | | | | 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>
* run processPrlFiles() over QMAKE_LIBS_PRIVATE as wellOswald Buddenhagen2012-07-311-1/+1
| | | | | | | | | | | | there is no reason why private libs should not have prls resolved. the two variables are resolved independently, so it's possible that (even more) libraries will appear duplicated on the linker command line, but that seems easiest for the time being. Change-Id: I9070ba53808a0661fa72949db8111106b7aca487 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-21/+12
| | | | | | | | 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>
* remove apparently useless codeOswald Buddenhagen2012-07-311-6/+1
| | | | | | | | | it wouldn't actually *do* anything, as l is not a reference. i cannot figure out the original intention, so let's just drop it. Change-Id: Ic0a3457a1872cde827259ee5530959120456e934 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com> Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
* merge QMAKE_LIBDIR into QMAKE_LIBS earlyOswald Buddenhagen2012-07-277-74/+25
| | | | | | | | | | | | dealing with the directories separately doesn't buy us anything. it's easier to mix them into the libs, as that contains some paths, too, both in projects and in prl files. this brings the windows generators in line with the unix ones. Change-Id: I1f58f7edd8e21d28bfabf04384bac2e315aaf446 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com> Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
* unifiy initialization of QMAKE_LIBS{,_PRIVATE} among windows generatorsOswald Buddenhagen2012-07-274-9/+3
| | | | | | Change-Id: Ib24ec6e290bfb277232c2483768c1b863f961462 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com> Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
* clean up fixTargetExt()Oswald Buddenhagen2012-07-273-10/+4
| | | | | | | | | there doesn't appear to be a point in having the function virtual; the part in the mingw generator can be inlined somewhere else just fine. Change-Id: I50d66d505095b43fce601928c6240a684389a4b7 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com> Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
* de-virtualize some more functionsOswald Buddenhagen2012-07-271-3/+3
| | | | | | | | they are not re-implemented anywhere Change-Id: I444a967bb39ec6b5994747c9fa3f605b4c53ce4f Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com> Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
* remove support for rvct_linker config from MinGW generator againOswald Buddenhagen2012-07-241-11/+3
| | | | | | | | | yet another symbian remnant (building windows arm executables for the simulator). This reverts commit 5c88141ed0b25d8ab9318bf4cb5dda54b90b2ce1. Change-Id: I6eb147c0e2710eba09a4339fa4a08a5b08f8dab3 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
* $$QMAKE_LIBDIR contents belong into $(LIBS), not $(LFLAGS)Oswald Buddenhagen2012-07-241-3/+3
| | | | | | | | unlike for the unix linker, this does not matter for the windows linker, but keeping it consistent has advantages. Change-Id: Ib9b9efa18c31d87c026d3cac5a8737f4612ad1c0 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
* dispose of MSVCPROJ_LIBSOswald Buddenhagen2012-07-246-31/+13
| | | | | | | | | | | | | | | this way QMAKE_LIBS{,_PRIVATE} can be treated the same as in all other generators, which allows us to: - make the windows generators' findLibraries() be more like the unix version - dispose of QMAKE_INTERNAL_PRL_LIBS handling while reading prl files (because the output always goes to QMAKE_LIBS) - as a side effect, QMAKE_LIBS_PRIVATE are not subjected to prl file resolution any more, which is again consistent with unix - the correctness of that needs to be assessed separately. Change-Id: Ie9bc04d117eff6a7cde846677f98acf3c64aa6ee Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
* remove apparently pointless call to findLibraries()Oswald Buddenhagen2012-07-241-1/+0
| | | | | | | | | | | the function was already called long before. if it really needs to be called again, it's a) probably affecting the other windows generators as well and b) the actual problem should be fixed instead. This reverts commit d50c3c6624b2343e42d0df4b72212d9ced8f3682. Change-Id: Iaa2007640fbc9acdc50ba3b0681efeb0d184f224 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
* use QT_INSTALL_LIBS directly instead of messing with QMAKE_LIBDIROswald Buddenhagen2012-07-181-1/+4
| | | | | | | this is what this code assumes anyway Change-Id: I667412b101c18325321a568cc22d25ef07418ffb Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
* remove QTDLL_POSTFIX stuffOswald Buddenhagen2012-07-182-11/+2
| | | | | | | | | the libinfix provides a way cleaner solution to that. i don't expect it to be still actually used anyway. Change-Id: I051522ec3abb3d92c529b5462b8514a706aa2ba1 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com> Reviewed-by: Miikka Heikkinen <miikka.heikkinen@digia.com>
* automatically fix separators in QMAKE_{DIST,}CLEANOswald Buddenhagen2012-07-161-2/+3
| | | | | | | it's a tad insane to expect the user to do that Change-Id: I75c68f2a28656c9ba2e3fabcc79718b899b29ce7 Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
* fixed ce makefileenvironmentBjoern Breitmeyer2012-07-061-3/+1
| | | | | | | | XQMakeSpec is not available after configure but the QMakeSpec contains the correct value Change-Id: I6cd4da8b0d6c95565f31842c17611ffd361bc010 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
* don't use a different de-duplication algo for the library list in mingw prl ↵Oswald Buddenhagen2012-07-052-17/+0
| | | | | | | | | | | | | | files i have no idea why that was done (the commit message says "not sure why it works elsewhere"), but it makes no sense whatsoever, specifically doing it only on mingw. probably some workaround, as usual. the de-duplication is broken by design anyway. This reverts commit 7a6302c2baf6861fdaf65992b71a7676859860c2. Change-Id: I6edecaa062570e59eccd24d50919ba132e65a403 Reviewed-by: Marius Storm-Olsen <marius.storm-olsen@nokia.com>
* qmake: remove support for X.sources in DEPLOYMENT variablesJoerg Bornemann2012-07-031-3/+2
| | | | | | | | | | This has been deprecated in Qt 4.8.0. Use X.files instead. Task-number: QTBUG-3216 Task-number: QTBUG-25106 Change-Id: I581321591291118a13403e92da5997497e12c3fd Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>