summaryrefslogtreecommitdiffstats
path: root/qmake/generators/win32
Commit message (Collapse)AuthorAgeFilesLines
* consolidate generation of metafile install targetsMark Brand2013-01-251-16/+1
| | | | | | | | | 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>
* qmake: Don't let an empty $$VERSION cause a garbled version in .rc filesDebao Zhang2013-01-251-1/+1
| | | | | Change-Id: I7f0560979e645da216674cc70c73c5ea9c053aa6 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
* Revert "qmake vcxproj generator: map TARGET_EXT to $(TargetExt)"Joerg Bornemann2013-01-243-12/+2
| | | | | | | | | | | | | | | This reverts commit e81d7fd1e57fe2ce11cbe07636f890973116f7ab. The insane logic that prepends the version number of a lib to TARGET_EXT instead of appending it to TARGET breaks every vcxproj with a library version. Fixing this properly will require much more work and testing on all supported Windows platforms. Forward-port of 8869b3b3 in qt/qt.git. Task-number: QTBUG-29286 Change-Id: Ib96de9c6f41995af013b146a00c850c9da3a9d8d Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
* Update copyright year in Digia's license headersSergio Ahumada2013-01-1816-16/+16
| | | | | Change-Id: Ic804938fc352291d011800d21e549c10acac66fb Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* qmake: Add application icon support for windowsDebao Zhang2013-01-103-11/+21
| | | | | | | | | | | A new qmake's variable RC_ICONS is introduced to specify the icons. The first one will be used as the application's icon. Change-Id: I4218db795837d470087dff8526eb0e4cb81ce5ed Reviewed-by: Orgad Shaneh <orgads@gmail.com> Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com> Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com> Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* fix DLL manifest resource ids for debug buildsJoerg Bornemann2012-12-181-2/+3
| | | | | | | | | | The resource id must be 2 for DLLs. This was broken for the "debug with incremental linking" case. Task-number: QTBUG-28682 Task-number: QTBUG-28683 Change-Id: Id8c48a1dec30e341de949213c63c1c9b73956dac Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
* fix duplicate TRANSLATION entry in generated RC fileJoerg Bornemann2012-12-171-4/+0
| | | | | | | Task-number: QTBUG-28625 Change-Id: I9bd6098c7557ca008211acef172f5c51a6766998 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
* qmake: fix manifest embedding for DLLsJoerg Bornemann2012-12-111-1/+3
| | | | | | | | | | | | Manifests must be embedded into DLLs with the resource id 2, not 1. This fixes a regression introduced in commit c9406bcf. Task-number: QTBUG-28524 Change-Id: I93b1dfe4614d0535f47fd881b8688a23e83e845f Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com> Reviewed-by: Ismo Haataja <ismo.haataja@digia.com> Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* support include paths for the Windows resource compilerJoerg Bornemann2012-12-103-5/+37
| | | | | | | | | | | In RC_INCLUDEPATH one can add include paths for the Windows resource compiler. Task-number: QTBUG-13776 Change-Id: If1d9ed44097adb7789df03e4ccd4e3b7df9e8d08 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com> Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* qmake: fix extra compilers in vcxprojs for single config modeJoerg Bornemann2012-12-101-0/+10
| | | | | | | | | | | | In single config mode extra compilers were not written to Visual Studio project files, because they were not added to the fake project object we're using to write a single config project. Task-number: QTBUG-27505 Change-Id: Ie57b648861573496252f1383dc77e0729e244947 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com> Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* qmake: add ProductVersion to automatically generated resourceJoerg Bornemann2012-12-061-0/+1
| | | | | | | | | | ProductVersion is set to the same value as FileVersion. Task-number: QTBUG-27428 Change-Id: Ia01e14112d3a0e74b9fbe5fc8d9c4f9ae690db34 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com> Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* MSVC: don't use the variable name LINK in generated makefilesJoerg Bornemann2012-12-063-4/+4
| | | | | | | | | | | Rename LINK to LINKER. The MSVC linker uses the environment variable LINK to pass additional command line arguments. We must not hide this variable. Task-number: QTBUG-28332 Change-Id: Id78476d1cf4a73175b9f47292c67f38a43ae5ba4 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
* Remove duplicate libraries added via prl files in WindowsMiikka Heikkinen2012-11-301-0/+17
| | | | | | | | | | | The LIBS statement generated into Makefiles contained duplicate libraries when application was linking static libraries. Fixed by adapting the logic from unixmake.cpp's version of processPrlFiles() to remove duplicates. Change-Id: I12e152900233d0376b7d7ac6cd18a92850a6d640 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
* MinGW: Don't add version number '0' to the library nameKai Koehne2012-11-191-1/+1
| | | | | | | | | | This fixes linking on MinGW after the library renaming, and is also in line with the logic in the nmake generator. Change-Id: Ie25ce6c1d2b8f292c4e454db1cad9bcbbee7a05d Suggested-by: Erik van Pienbroek Task-number: QTBUG-27137 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
* 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>