summaryrefslogtreecommitdiffstats
path: root/qmake/generators/win32/msvc_vcproj.cpp
Commit message (Collapse)AuthorAgeFilesLines
* Merge remote-tracking branch 'origin/stable' into devFrederik Gladhorn2014-01-101-2/+4
|\ | | | | | | Change-Id: I99af0bef7f1c931533a324ebcfb27c40ee871a5e
| * fix detection for multiple VS installationsJoerg Bornemann2014-01-081-2/+4
| | | | | | | | | | | | | | | | | | | | | | | | In the case of multiple VS installations, a static variable wasn't initialized. That led to wrong values in subsequent calls of the detection function. [ChangeLog][qtbase][qmake] fix detection for multiple VS installations Task-number: QTBUG-35530 Change-Id: I3fc23bc99679fff640f39578a7074d16fe923334 Reviewed-by: Andy Shaw <andy.shaw@digia.com>
* | qmake vcproj: Support setting the SDK versionAndrew Knight2014-01-071-0/+2
| | | | | | | | | | | | | | | | | | | | | | This adds the required members to allow setting the SDK version, and uses them when creating WinRT projects. Task-number: QTBUG-35328 Change-Id: I500ea77c41e27cbcc850462034c0eba8c5d1f124 Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com> Reviewed-by: Oliver Wolff <oliver.wolff@digia.com>
* | qmake vcproj: Correct VCProject Version stringsAndrew Knight2014-01-071-2/+2
| | | | | | | | | | | | | | These strings are one version too large. Change-Id: If83649725ccf087075610255516ebf7a51338359 Reviewed-by: Oliver Wolff <oliver.wolff@digia.com>
* | qmake vcproj generator: Don't generate WinMD by default on WinRTAndrew Knight2014-01-071-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | Visual Studio will default to generating metadata, even if it is not written to the vcproj. Since there is no metadata file, the build will fail. This change keeps a saner default for this option when generating WinRT project files. Task-number: QTBUG-35328 Change-Id: Ie693e270ef0b9d9677d53af0c60905f048235bc5 Reviewed-by: Oliver Wolff <oliver.wolff@digia.com>
* | qmake vcproj generator: Honor the preferred MSVC version in the mkspecAndrew Knight2014-01-071-4/+9
| | | | | | | | | | | | | | | | | | | | | | | | Some cross-compiling mkspecs may require a different MSVC version than the one found in the path (or the default version). This change allows the preferred MSVC version to be selected from the mkspec's MSVC_VER variable when found. Task-number: QTBUG-35328 Change-Id: I19e03101e3921dfd5026421aef4630e11b9f131e Reviewed-by: Oliver Wolff <oliver.wolff@digia.com> Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* | qmake vcxproj: Provide saner defaults for certain WinRT optionsAndrew Knight2013-12-111-2/+6
|/ | | | | | | | | | | The default values for PCH, the -ZW switch, and CharacterSet aren't ideal for WinRT projects, so adjust these accordingly. Task-number: QTBUG-35328 Change-Id: I78021d0785fa84e15b1f17264daa599a9418f92e Reviewed-by: Maurice Kalinowski <maurice.kalinowski@digia.com> Reviewed-by: Oliver Wolff <oliver.wolff@digia.com> Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* complete implementation of force_debug_infoOswald Buddenhagen2013-12-031-1/+1
| | | | | | | | | that means further detaching the generation and installation of debug info from the thing calling itself A Debug Build. Task-number: QTBUG-32412 Change-Id: I4d79d1ae4806c8e4a2d6a7ccd030fb88385dd7d4 Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* fix VS version selectionJoerg Bornemann2013-10-311-31/+16
| | | | | | | | | | | | | | | | On machines where multiple versions of VS are installed, the VS version for the vc(x)proj generator is selected by the entries in the PATH variable. The first VS installation that's found in PATH is used. The former logic printed a warning if multiple VS installations were in PATH and also fell back to the lowest version if a VS version was registered with multiple install paths. That's the case for VC 2012 express and prevented its usage. Task-number: QTBUG-34357 Change-Id: Ia5c66a1aea0c40e4b7460b3aa6c7daee6673da44 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com> Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* Fix msvc project dependencies as specificed by .dependsChris Gilbert2013-10-291-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Previously, the full path to the qmake project file was specified as the key for projGuids when inserting the project GUID into this hash table. The only place that items are inserted into projGuids is in VcprojGenerator::collectDependencies at: projGuids.insert(val.first, newDep->target); In this case, val.first contains the full path for the given project being processed at this point. (e.g.: c:\testproject\testproject.pro) Further in sln/vcproj generation, projGuids is queried with the contents of <TARGET>.depends so that users may specify another qmake project as a dependency for a given target. This occurs in two places, in two ways: 1) In VcprojGenerator::collectDependencies() at: QString depend = dep.toQString(); if (!projGuids[depend].isEmpty()) { ... In this case QString depend contains whatever is put into <TARGET>.depends. Typically this is the plain name of the project you depend on. (e.g.: testproj) 2) In VcprojGenerator::writeSubDirs(QTextStream &t) by proxy of extraSubdirs which is a QStringList of the project depends should the mapping in case 1 fail. This case works much like the above case, attempting to use each QString entry of the extraSubdirs list as a key in projGuids. If either of the above two attempts are successful, the msvc solution is configured in a way that creates a project dependency, ensuring correct compilation order and other related behavior. The fix here stores the target project (e.g.: testproject) as opposed to the full project path, as that is what is expected in the <TARGET>.depends statements contained in the qmake project. Change-Id: Iee05661a64d7a3e4467c5ade48d801fbbfe981b5 Reviewed-by: Andy Shaw <andy.shaw@digia.com> Reviewed-by: Chris Gilbert <cgilbert@knaldtech.com>
* fix setting of output directory of SUBDIRS with -tp vsOswald Buddenhagen2013-10-111-1/+1
| | | | | | | | | | amends ec145129c. Investigated-by: Nikolai Tasev Task-number: QTBUG-32375 Change-Id: Iff27c03c0bb4f739dad9d10bae9576946948041b Reviewed-by: Andy Shaw <andy.shaw@digia.com> Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* *.sln not generated correctly for VS2012 and VS2010Katja2013-10-091-4/+4
| | | | | | | | | | msbuild fails to build project since sln not generated correctly Task-number: QTBUG-33446 Change-Id: If92ea743b1b407446873210090aa8591a491abad Reviewed-by: Andy Shaw <andy.shaw@digia.com> Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com> Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* clarify intended operator precedenceOswald Buddenhagen2013-10-071-1/+1
| | | | | Change-Id: I176bf225d4cb388f1d328ac140741fe32667e89c Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* qmake: added WMAppManifest generation for winphone targetKamil Trzcinski2013-09-171-0/+67
| | | | | | | | | | | | | | | Platform specific qmakespec needs to enable: autogen_wmappmanifest and winphone. Manifest will be generated once and only for the application template. The Manifest will generated from following variables: * PRODUCTID - the GUID (application specific) * PUBLISHERID - GUID (publisher specific) * TARGET - short application name (executable) * AUTHOR * PUBLISHER * DESCRIPTION - application description Change-Id: I225c24dc256c57451775e37658080e88b842a7d8 Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* qmake: added file deployment support for winrt and winphone targetsKamil Trzcinski2013-09-151-58/+88
| | | | | | | | | | | | | The user needs to specify the DEPLOYMENT variable. The syntax is the same as previously used for DEPLOYMENT. For more info please refer to the qmake documentation. The change adds a new itemgroup, "Deployment Files". All files in this itemgroup are marked as DeploymentContent and are then packaged with the application either as XAP or the WinRT specific file format. Change-Id: Icf85887287c1c97eb782704340eaa3f8dde6719e Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* qmake: added VCPROJ_ARCH variable.Kamil Trzcinski2013-09-151-4/+13
| | | | | | | | | | | | It's a generic way to configure the Visual Studio Solution architecture. It's added to support different project architectures, ARM specifically. It may be a good idea to replace the Win32 and x64 with VCPROJ_ARCH=Win32 and VCPROJ_ARCH=x64 defined in corresponding qmakespecs. Change-Id: I9b23f7393bf248a629c425187d6dd8859092c45c Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com> Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* qmake: added WinRT and WinPhone configuration switchKamil Trzcinski2013-09-151-0/+6
| | | | | | | | | qmakespec for either WinRT or WinPhone have to specify QMAKE_PLATFORM with winrt and/or winphone. Change-Id: I87e0063881e6edd65de14adb006949247ce49904 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com> Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* Don't compile MD4, MD5, SHA-2 and SHA-3 into qmakeThiago Macieira2013-08-151-1/+1
| | | | | | | | We just need one digest algorithm, any algorithm, to generate a somewhat unique identifier. SHA-1 will suffice. Change-Id: I3cb26bf866d616df3ef32feace10934f19daa1a6 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
* add support for Visual Studio 2013Joerg Bornemann2013-07-041-0/+12
| | | | | | | | | | Add mkspec win32-msvc2013 and make VS 2013 known to configure and qmake. Change-Id: I6e63a4d679727a8a3f068f377956185996d72bce Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com> Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com> Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* Only add the res_file to the generated files if there is no rc_fileAndy Shaw2013-07-021-1/+2
| | | | | | | | | | If both the rc_file and res_file was added to the project then in MSVC 2012 it would cause an error complaining of a duplicated resource. Task-number: QTBUG-29826 Change-Id: Ib3401b423208cd8c90895038c9cbadd80c39b542 Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* basic manifest tool support in vc(x)proj generatorJoerg Bornemann2013-06-251-0/+14
| | | | | | | | | | | The removal of embed_manifest_dll or embed_manifest_exe from CONFIG now disables the embedding of manifests in VS project files. Task-number: QTBUG-5301 Change-Id: I031318883edca6f9b63a7981ef6c44e3f123f6fd Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com> Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* Changed project dependencies for solution filesAndrew Patterson2013-06-051-17/+27
| | | | | | | | | | Reorganized project dependency output in solution files for vc 2005+ Task-number: QTBUG-30993 Change-Id: I4764f3d98be40b3e217130522bb89a43bbf3669e Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com> Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* qmake/vcxproj: do not set ProgramDataBaseFileNameJoerg Bornemann2013-05-071-1/+0
| | | | | | | | | | Visual Studio's default value is perfectly fine. Task-number: QTBUG-29757 Change-Id: Ic334287539bb849f3b74d255d3991a09008cd357 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com> Reviewed-by: Andy Shaw <andy.shaw@digia.com>
* qmake/vcxproj: remove unused codeJoerg Bornemann2013-05-071-2/+0
| | | | | Change-Id: I5ac0ae534a7b3205d61cf2980594b74c1ed926a7 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
* qmake/nmake: do not remove NDEBUG from DEFINESJoerg Bornemann2013-04-091-5/+1
| | | | | | | | | | | In ebc4fb45 all NDEBUG defines were removed from DEFINES to adjust the nmake generator's behavior to the vcproj generator. Turns out that the vcproj generator did it wrong. The user must be able to specify NDEBUG in DEFINES. Change-Id: Iaaf3915ac79acbbd1e7a3172ad3951d0d686041b Reviewed-by: Kai Koehne <kai.koehne@digia.com> Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
* Merge remote-tracking branch 'gerrit/release' into stableSamuel Rødal2013-03-211-3/+4
|\ | | | | | | | | | | | | | | | | | | | | | | 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 setup of output directory for subprojects in IDE generator backendsOswald Buddenhagen2013-03-151-3/+4
| | | | | | | | | | | | | | | | | | | | | | unlike before, the output dir is now important already during the project evaluation phase, as finding .qmake.conf depends on it if .qmake.cache is also present. ChangeLog: fixed qmake -tp vc (and configure without -no-vcproj) Change-Id: Ifdb95f3b38a70c0d08e71238059292e761dcfa53 Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com> Reviewed-by: Andy Shaw <andy.shaw@digia.com>
* | purge vestiges of QMAKE_LFLAGS_QT_DLLOswald Buddenhagen2013-02-131-4/+0
|/ | | | | Change-Id: Ia86b9cee1044ab915854e0e231e1b3d5d66e1f7d Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* Revert "qmake vcxproj generator: map TARGET_EXT to $(TargetExt)"Joerg Bornemann2013-01-241-1/+0
| | | | | | | | | | | | | | | 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-181-1/+1
| | | | | Change-Id: Ic804938fc352291d011800d21e549c10acac66fb Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* support include paths for the Windows resource compilerJoerg Bornemann2012-12-101-0/+11
| | | | | | | | | | | 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>
* Bring subproject dependencies in line with Makefile generatorsAndy Shaw2012-09-271-170/+195
| | | | | | | | | | 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 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-251-0/+12
| | | | | | | | | | 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-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>
* Use QStringList::join(QChar) overload where applicable [qmake]Marc Mutz2012-09-211-11/+11
| | | | | | | | | | 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>
* 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>
* introduce qmake variable abstractionsOswald Buddenhagen2012-09-071-112/+113
| | | | | | | | 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>
* 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>
* qmake vcxproj generator: map TARGET_EXT to $(TargetExt)Joerg Bornemann2012-08-071-0/+1
| | | | | | | | Task-number: QTBUG-26782 Change-Id: Ib143fa6b8674c4d09d798a9301bb209b886e791d Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com> Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
* merge QMAKE_LIBDIR into QMAKE_LIBS earlyOswald Buddenhagen2012-07-271-7/+2
| | | | | | | | | | | | 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-271-3/+0
| | | | | | Change-Id: Ib24ec6e290bfb277232c2483768c1b863f961462 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com> Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
* dispose of MSVCPROJ_LIBSOswald Buddenhagen2012-07-241-7/+3
| | | | | | | | | | | | | | | 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>
* 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>
* purge "dumping all variables" debug loopsOswald Buddenhagen2012-06-271-10/+0
| | | | | | | | | the as-we-go dump is sufficient (and usually necessary to actually find the problem). if only the summary is interesting, the -E option can be used now. Change-Id: I9e34c6db9dcb99b38013c4d0cb80b8cb88ca36b5 Reviewed-by: Mark Brand <mabrand@mabrand.nl>
* const correctness for variables()Oswald Buddenhagen2012-06-271-2/+2
| | | | | Change-Id: Id11453ccbae3ffa32580badadada945d342d727a Reviewed-by: Mark Brand <mabrand@mabrand.nl>
* don't overuse variables()Oswald Buddenhagen2012-06-271-14/+14
| | | | | Change-Id: Ib2da88e5e29c0bfecc39a9c06e82a34a4bd0b1e6 Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>