summaryrefslogtreecommitdiffstats
path: root/qmake
Commit message (Collapse)AuthorAgeFilesLines
* Fix dependency resolution for extra compilers in VS projectsJoerg Bornemann2020-01-094-29/+17
| | | | | | | | | | | | | | | | De-duplicate the code that calls the extra compiler's depend_command by using the central function callExtraCompilerDependCommand. This one actually tries to resolve dependencies unlike the removed code that blindly resolved relative paths to the build directory. This fixes dependencies reported by uic which need to be resolved against what is in DEPENDPATH. Fixes: QTBUG-80579 Change-Id: If482e50ff3eff716fefffee82004acc076b3a547 Reviewed-by: Kai Koehne <kai.koehne@qt.io> (cherry picked from commit 9d7ed92f6e63cd2d1a1388874e54b37b5cfd01b7) Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
* De-duplicate code for calling extra compiler depend_commandJoerg Bornemann2020-01-092-80/+60
| | | | | | | | | | | Flesh out copy-and-pasted code into a function and adjust the coding style on the go. This refactoring is needed for a subsequent fix. Change-Id: I9b8a87d6dd5c33cc1ed9f613fe85daca52309369 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io> (cherry picked from commit af7e0e735777d7f7d1606049e5261106a092665a)
* Ignore non-existent .ui file dependenciesJoerg Bornemann2019-11-062-0/+10
| | | | | | | | | | | | | | | | Commit 80dea664 broke .ui files with global includes that are not part of the project, because we blindly added every file path that falls out of 'uic -d' as dependency. Introduce the extra compiler CONFIG flag dep_existing_only to bring back the old behavior that ignores non-existent dependencies and set it for uic. Change-Id: I6eaa82817c932a98ebac6d08115a9815d4b9dd21 Fixes: QTBUG-78144 Reviewed-by: Kai Koehne <kai.koehne@qt.io> (cherry picked from commit 90779d96adfa51a3fc00b6c0d93168b4bbfcf983) Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
* Fix assert in VS project generatorJoerg Bornemann2019-10-161-2/+4
| | | | | | | | | | | | We must check whether outputs or inputVars are non-empty before accessing them. This amends commit 68866b1a. Task-number: QTBUG-79178 Change-Id: Iecf6dc705bac9bef5133ae2e5ceeace5f859f175 Reviewed-by: Oliver Wolff <oliver.wolff@qt.io> (cherry picked from commit d3d5eadf2432ddc874eabbb2d2f56c4b9ff8830f)
* Include likely-adjusted uiLanguages for the system localeEdward Welbourne2019-10-102-1/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | QLocale::uiLanguages() on the system locale uses whatever the system locale's query(QSystemLocale::UILanguages,...) returns. On Android, this is just a list of locales. However, for non-system locales, we also include some results of removing likely sub-tags from the locale name, where equivalent. Thus zh-CN would also get zh and zh-Hans-CN added to it; however, if the system locale is zh-Hans-CN, the shorter forms are omitted. So post-process the system locale list in the same way, albeit tweaked to avoid duplicates and rearranged so that we can insert likely-adjusted entries between what they adjust and what followed it. Added QLocalePrivate::rawName() in the process, since it looks likely to be useful in other contexts (and I needed its value): it just joins such tags as are non-Any. This, however, uses QByteArrayList, so added that (it's small) to the bootstrap library and qmake. This follows up on commit 8796e3016fae1672e727e2fa4e48f671a0c667ba. [ChangeLog][QtCore][QLocale] The system locale's UI languages list now includes, as for that of an ordinary locale, the results of adding likely sub-tags from each locale name, and of removing some, where this doesn't change which locale is specified. This gives searches for translation files a better chance of finding a suitable file. Fixes: QTBUG-75413 Change-Id: Iaafd79aac6a0fdd5f44aed16e445e84a2267c9da Reviewed-by: Thiago Macieira <thiago.macieira@intel.com> Reviewed-by: Paul Wicking <paul.wicking@qt.io> Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> (cherry picked from commit 0118e2e9151ae3e1e1cd72f24e8c129eaa69dc4f)
* Merge remote-tracking branch 'origin/5.12.5' into 5.12Qt Forward Merge Bot2019-09-073-46/+77
|\ | | | | | | Change-Id: I41a252fdbf22551aadb0b1a6e9ecf3f95f99fbd4
| * Don't add default lib dirs to LIBRARY_SEARCH_PATHS in xcode projectsv5.12.5Joerg Bornemann2019-09-031-1/+4
| | | | | | | | | | | | | | | | | | | | Having hard-coded absolute paths in the xcode project breaks switching between iOS and simulator builds. Fixes: QTBUG-77804 Change-Id: Ib655bfc774b92c413a7b94ba4d005b6e1c4d2905 (cherry picked from commit 97465b1540ebd095225679b5dd400b2d4d54e678) Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
| * Fix library suffix replacement for xcode projectsJoerg Bornemann2019-08-312-43/+69
| | | | | | | | | | | | | | | | | | | | | | | | In xcode projects we replace the _debug part of referenced libraries with the variable $(QT_LIBRARY_SUFFIX). This only worked for libraries passed with -l. Make the library suffix replacement work for libraries passed as absolute paths too. Fixes: QTBUG-77804 Change-Id: Iac2dbd2f67c3fa0f415ac43cbab5a906657164e5 Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
| * Do not prepend QMAKE_PREFIX_STATICLIB to TARGET for TEMPLATE auxJoerg Bornemann2019-08-281-2/+4
| | | | | | | | | | | | | | | | | | | | This was introduced by accident in 4da47d0f. Fixes: QTBUG-77429 Change-Id: Ic3d9052e1fc83dab5ed3b8725629588208b0d7bb Reviewed-by: Oliver Wolff <oliver.wolff@qt.io> (cherry picked from commit 2a4cf923f4022760f9ed0f5dc50f8b849433b3f9) Reviewed-by: Kai Koehne <kai.koehne@qt.io>
* | Remove broken wild card list from QMake's help outputJoerg Bornemann2019-08-242-6/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The description of the project mode looked like this: -project Put qmake into project file generation mode In this mode qmake interprets files as files to be built, defaults to *; *; *; *.ts; *.xlf; *.qrc The list of wildcards is incomplete. Unfortunately the file extensions are defined in QMAKE_EXT_* variables in mkspecs, and the help display code has no access to that data. This went unnoticed for quite some time, and fixing this is too involved considering the gain. Replace the text above with the static text below: -project Put qmake into project file generation mode In this mode qmake interprets [files] as files to be added to the .pro file. By default, all files with known source extensions are added. Change-Id: I815a50957c05dccc45e1cd6657f568599d1911f6 Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
* | Fix classical strcmp misuse in VS project generatorJoerg Bornemann2019-08-241-12/+3
|/ | | | | | | | | The conditions were wrong, they must compare against zero. Also, use qstricmp to avoid the platform #ifdef. Change-Id: I7e5ef1b9ae8e2e1d3d9ce90a645ee568b370ab57 Reviewed-by: Oliver Wolff <oliver.wolff@qt.io> Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
* Fix qinstall on Windows for directories containing read-only filesJoerg Bornemann2019-08-151-6/+36
| | | | | | | | Initial patch by: Vlad Lipskiy <eswcvlad@yahoo.com> Fixes: QTBUG-77299 Change-Id: I803b809d1f23d844252b701cb070f6e4ba34eca1 Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
* Fix escaping of < and > in QMake's XML generatorJoerg Bornemann2019-08-121-3/+7
| | | | | | | | | Having those characters in QMAKE_EXTRA_COMPILERS broke the generated VS project file. They must be replaced by XML entities. Fixes: QTBUG-1935 Change-Id: Iff1edbeabec4cedef777071682412970b7769f19 Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
* Doc: Extend QMake's documentation of RC_FILE and RES_FILEJoerg Bornemann2019-08-121-5/+5
| | | | | | | | | | | | | | | RC_FILE is not an internal variable that "rarely needs to be modified". Mention that it's about Windows resources and link to the corresponding section. RES_FILE: Add link to RC_FILE and the more general section. Also rephrase "compiled Windows resource file" to "Windows resource compiler's output file" which is more precise. Fixes: QTBUG-8709 Change-Id: I19c61e6a9505d45fc13fefbcd0ba9441191aa42e Reviewed-by: Kai Koehne <kai.koehne@qt.io> Reviewed-by: Kavindra Palaraja <kpalaraja@luxoft.com>
* Fix dependency_libs entry of .la filesJoerg Bornemann2019-08-031-5/+33
| | | | | | | | | Libtool cannot cope with absolute paths in the dependency_libs entry. We split absolute paths into -L and -l here. Change-Id: I30bf11e490d1993d2a4d88c114e07bbae12def6d Fixes: QTBUG-76625 Reviewed-by: Kai Koehne <kai.koehne@qt.io>
* qmake: Keep -force_load with library when merging linker flagsTor Arne Vestbø2019-07-291-3/+6
| | | | | | | | | | | Without treating -force_load as an option with an argument, we end up leaving stray -force_loads in the linker line, resulting in build failures when the following option is a random library then treated as a file path. Task-number: QTBUG-66091 Change-Id: I352c50ab67e32ef6b2b5c6a4f90455b20034e207 Reviewed-by: Jörg Bornemann <joerg.bornemann@qt.io>
* qmake: Don't allow -framework without second argument when merging flagsTor Arne Vestbø2019-07-291-8/+4
| | | | | | | | The linker doesn't support -framworkFoo, so neither should we. The correct syntax is -framework Foo. Change-Id: I3f39ffc067871ce058542bf0068274b35f7b51f6 Reviewed-by: Jörg Bornemann <joerg.bornemann@qt.io>
* qmake: fix variable naming conflicts with C++20 keywordYulong Bai2019-07-191-3/+3
| | | | | | | | It conflicts with 'requires' keyword. Fixes: QTBUG-77093 Change-Id: I85e8f530dd1e2bf9a31906dd6c5123b947235b01 Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
* qmake: fix move semanticsGiuseppe D'Angelo2019-07-181-2/+3
| | | | | | | | | | | ProFunctionDef is move-enabled, meaning its `m_pro` field can become nullptr. Its usage in the assignment operator and the dtor must therefore be protected with a check. Amends 9c63ad562bf0a44807f41ce49e4fe1b5ff181a63. Change-Id: I0c77b07dc83969565480bbb9d9fc80751d4246b1 Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
* Revert "Fix determination of source and build roots"Jörg Bornemann2019-07-041-26/+13
| | | | | | | | | | | | | This reverts commit 224a60989ed95e8b91ac88a12666af6e5a66e619. Turns out that we cannot just untangle the determination of source root and build root, because this breaks the assumption that every .qmake.conf results in a separate .qmake.cache in the build tree. QTBUG-76140 must be fixed differently. Fixes: QTBUG-76907 Change-Id: I5c0a3719d5e00a0f1cacad51651b47c1f284d22d Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* Add QDebug streaming operator for ProStringJoerg Bornemann2019-06-242-0/+8
| | | | | | | | | This saves us lots of .toQString() and .toQStringList() typing when qDebug()'ing qmake code. Change-Id: I037e5e1816f2dcb6a20dec4c275f3d886f155ad5 Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
* Fix 'clean' target for MinGW DLLsJoerg Bornemann2019-06-241-1/+1
| | | | | | | | | | 'make clean' removed the import libs for DLLs which makes them quite unusable. Move the import lib removal to the 'distclean' target. Fixes: QTBUG-51977 Change-Id: I727d520435f88a83a7fb14cb0ad81f8fe7c6d61b Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
* qmake: CleanupKai Koehne2019-06-056-6/+5
| | | | | | | | | Fix clang warnings that are disabled in the default build. Change-Id: I4e773a24884db94acdc6c295d3f66da07cd8a5bd Reviewed-by: Jörg Bornemann <joerg.bornemann@qt.io> Reviewed-by: Albert Astals Cid <albert.astals.cid@kdab.com>
* Fix determination of source and build rootsJoerg Bornemann2019-06-041-13/+26
| | | | | | | | | | | | | | | | | | | | | | | | QMake searches a .qmake.conf file to determine the source root of the project, and a .qmake.cache to determine the build root. If a .qmake.conf exists but no .qmake.cache in the build directory is found, a build root would be set that is only valid if the build directory is at the same depth as the source directory. The invalid build root resulted in the creation of .qmake.cache files at "interesting" locations (e.g. high up in the directory tree), a potential cause for even more interesting build failures in the future. Fix this by splitting up the loop that determined build and source root. Both are now determined independently of each other. Fixes: QTBUG-76140 Change-Id: Ib5c922b87879fcf2f076298a69abcdbc4e8587b3 Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* Make sure .pc, .prl and .la files are created for header_only modulesJoerg Bornemann2019-06-033-5/+10
| | | | | | | | | | | | | | | Those modules are TEMPLATE=aux, so they weren't triggering the file creation here. To make this work properly we have to: - check for TEMPLATE aux in the right places - add a dummy target to INSTALLS to actually trigger the creation - initialize PRL_TARGET for aux templates Fixes: QTBUG-75901 Started-by: Thiago Macieira <thiago.macieira@intel.com> Change-Id: Idce141629dd34287808bfffd159f92ac28c6c8b1 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Do not write 'Libs:' into .pc files if TEMPLATE is not 'lib'Joerg Bornemann2019-06-031-36/+38
| | | | | | | | | Especially for header modules we don't want a 'Libs:' entry in their .pc file. Task-number: QTBUG-75901 Change-Id: I39037d3132e39dd360532e1425f794ebec28e0bd Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Fix meta file replacements if matches are emptyJoerg Bornemann2019-06-031-4/+8
| | | | | | | | | | | | | | | | QMake code like rplc.match = QMAKE_PRL_INSTALL_REPLACE += rplc led to the generation of invalid sed calls in the Makefile. It is already actively checked for empty matches, but if *all* matches are empty, the sed call looks like sed foo > bar which is invalid. Task-number: QTBUG-75901 Change-Id: I173ed99826414dcf06253a15a247f7d067ee3977 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Fix QMAKE_EXTRA_COMPILER names in VS projectsJoerg Bornemann2019-05-312-7/+23
| | | | | | | | | | | | | | | | | | Use the whole value of 'name', not just the first element, and also replace variables like ${QMAKE_FILE_IN}. This fixes the file_copies feature (COPIES) for Visual Studio projects, because for every entry in COPIES an extra compiler is created with a name 'COPY ${QMAKE_FILE_IN}'. Before this patch the name and the generated file filter would be just 'COPY'. However, duplicate filters are being skipped by the VS project generator. All but the first COPIES entry was ignored. Fixes: QTBUG-76010 Change-Id: Icaa5d2cb8d88ae3ef8ce86220198bca1b9e673f5 Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
* Warn about invalid SUBDIRS contentJoerg Bornemann2019-05-281-2/+9
| | | | | | | | | | | | | | | | | | | | Invalid SUBDIRS values like SUBDIRS += foo \ bar \ \ baz would produce a Makefile with a sub-- target that will call the make on the same Makefile again recursively, letting make run forever. Ignore values like this and print a warning message. Fixes: QTBUG-76068 Change-Id: I6ca0f8c8238249f1be02d8c311b4c148fd80e707 Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
* Use appropriate encoding rather than UTF-8 when reading from a pipeEdward Welbourne2019-05-241-14/+8
| | | | | | | | | | | | | | The qmake code to read output from dependency-generation was adding QByteArray values to a QString, thereby tacitly converting from UTF-8; this is misguided. Hopefully, the command emits its output in the same local 8-bit encoding that QString knows to convert from. Simplified needlessly verbose loops (that violated Qt coding style) in the process. Fixes: QTBUG-75904 Change-Id: I27cf81ffcb63ebc999b8e4fc57abdb9a68c4d2b3 Reviewed-by: Jörg Bornemann <joerg.bornemann@qt.io>
* qmake: Document DESTDIR deficienciesKai Koehne2019-05-081-0/+4
| | | | | | | Fixes: QTBUG-75261 Change-Id: I8d0635a914785171cdee1bf691f773d4c356c6c1 Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io> Reviewed-by: Leena Miettinen <riitta-leena.miettinen@qt.io>
* qmake: Distinguish local header files by directory and nameMatthias Doerfel2019-05-071-2/+8
| | | | | | | | | | | | | | | | | | | Information about header files is cached by qmake. The key is the filename of the #include directive. For system includes (<stdio.h>) this is unique, according to the search order in INCLUDE_PATH. For local includes, given as "foo.h", there may be name collisions. Usually a compiler first searches in the directory of the current file (stored in the sourceDir variable), and only in case of a miss the INCLUDE_PATH is considered. The dependency generation now distinguishes local header files by their full relative path. This is implemented by forcing the use of the full relative path as key into the SourceFiles data structure if the flag try_local is set. Change-Id: Ifd75325b53496824054595f7fc98d71bbd9d8aa6 Fixes: QTBUG-72383 Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* Doc: Document qmake's plugin_bundle CONFIG valueJoerg Bornemann2019-04-241-0/+2
| | | | | | | | Fixes: QTBUG-17171 Change-Id: I05bf6ba7498fb05394ff8c118973da2b0dbe4fc3 Reviewed-by: Kavindra Palaraja <kpalaraja@luxoft.com> Reviewed-by: Leena Miettinen <riitta-leena.miettinen@qt.io> Reviewed-by: Kai Koehne <kai.koehne@qt.io>
* Teach qmake MSVC's compiler options /std:c++[14|17|latest]Joerg Bornemann2019-04-233-0/+11
| | | | | | | | | This fixes the "could not parse compiler option" warning when generating VS project files. Fixes: QTBUG-75275 Change-Id: Idd98ae5fdb8ebf5a4e311cbb6cd3ed1daba74ca4 Reviewed-by: Kai Koehne <kai.koehne@qt.io>
* Doc: Document QMAKE_[L|C[XX]]FLAGS_RELEASE_WITH_DEBUGINFOJoerg Bornemann2019-04-181-0/+22
| | | | | | Fixes: QTBUG-17463 Change-Id: Ic2f0870da14db21b1da053716b6d63ba0ed679c9 Reviewed-by: Leena Miettinen <riitta-leena.miettinen@qt.io>
* Let QINSTALL copy hidden files when installing directoriesJoerg Bornemann2019-04-091-1/+1
| | | | | | | | | When installing directories, QINSTALL must not ignore contained hidden files to be consistent with the old INSTALL_DIR. Fixes: QTBUG-66835 Change-Id: I3a7c952dcac9732d5b17c5a258f87ca277b388d2 Reviewed-by: Kai Koehne <kai.koehne@qt.io>
* Let "qmake -install qinstall" set default permissions 0644 and 0755Joerg Bornemann2019-04-081-20/+18
| | | | | | | | | | | | | | | | ...like the install commands before Qt 5.9 did. This ensures consistent permissions. Also, we can throw away the code that took care of removing and re-adding the read-only flag on Windows. This reverts commit a0b5d6e60f96359d88352e0b1c000678cdc80988 with the addition of preserving permissions when copying directories to properly install app bundles (QTBUG-74912). Fixes: QTBUG-74733 Task-number: QTBUG-74912 Change-Id: Iee6d7c5e86787dd3ada5e5e9441209d418100b1f Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io> Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* Merge remote-tracking branch 'origin/5.12.3' into 5.12Qt Forward Merge Bot2019-04-081-10/+16
|\ | | | | | | Change-Id: Id60d508c0f25fd5e67be07daafd2d4c56ae73934
| * Revert "Let "qmake -install qinstall" set default permissions 0644 and 0755"Jani Heikkinen2019-04-041-10/+16
| | | | | | | | | | | | | | | | | | | | | | | | This reverts commit 3cdf46059a668f588fe237aa881c300dd76cbf9e. It seems change is causing regression & is reverted now to be able to proceed with releases Task-number: QTBUG-74912 Change-Id: Ib2365b96ee98fbbcc8853cc7f8726c157c1913a7 Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io> Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* | qmake: Remove dead codeKai Koehne2019-04-055-12/+3
| | | | | | | | | | | | | | Silences a clang warning Change-Id: I5ade49326afcce964ffb5c24b5708977950d123e Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* | Document in which Qt version a qmake function was introducedJoerg Bornemann2019-04-031-0/+64
|/ | | | | | | | | | | | ...starting with Qt 5.0.0. The text is manually inserted there, because \since does not work within sections. Task-number: QTBUG-74737 Change-Id: I0fe2d0a113d48be0266030c8466b062c6f743aab Reviewed-by: Robert Szefner <robertsz27@interia.pl> Reviewed-by: Leena Miettinen <riitta-leena.miettinen@qt.io>
* Fix installation of .pdb files for applications that have VERSION setJoerg Bornemann2019-03-311-8/+11
| | | | | | | | | | | | | For applications that set VERSION the installation targets of pdb files were wrong in qmake's nmake Makefile generator. Replace code that tries to reconstruct that target's versioned extension with TARGET_EXT which already contains the fully resolved target extension. Fixes: QTBUG-74265 Change-Id: I9553a5f70170e077a59c866079ae51647ae80bef Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
* Let "qmake -install qinstall" set default permissions 0644 and 0755Joerg Bornemann2019-03-311-16/+10
| | | | | | | | | | ...like the install commands before Qt 5.9 did. This ensures consistent permissions. Also, we can throw away the code that took care of removing and re-adding the read-only flag on Windows. Change-Id: I06bc3af8817f18c016119fbcb7360800d6c129bd Fixes: QTBUG-74733 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* Add .lib and .exp files to clean targets only for librariesJoerg Bornemann2019-03-271-1/+1
| | | | | | | There is no point in adding those to applications. Change-Id: Ic8d3009b5099c266f56b5bdaa831d0816510bc3b Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
* Fix library search path order on WindowsJoerg Bornemann2019-03-031-2/+4
| | | | | | | | | | | | | Commit 2327944d added the QMAKE_DEFAULT_LIBDIRS to the library search paths without taking care that explicit library search paths should be inserted before system search paths. Copy the behavior of the UnixMakefileGenerator, esp. of commits 5bc9541e and e185f343. Fixes: QTBUG-73959 Change-Id: I7e951f432bb5f71ce4bcdb18b7102b4380441181 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@gmx.de>
* Handle QMAKE_SUBSTITUTES input files as Latin 1Joerg Bornemann2019-02-281-2/+2
| | | | | | | | | | | | QMake's strategy is generally "pretend everything is Latin 1", which basically equals "do 8-bit pass-through". Change the handling of QMAKE_SUBSTITUTES input accordingly to avoid conversion losses when converting from and to UTF-8. Fixes: QTBUG-72130 Change-Id: Id903bbd2afa99708c92fd09fab3db944aa819a94 Reviewed-by: Oliver Wolff <oliver.wolff@qt.io> Reviewed-by: Kai Koehne <kai.koehne@qt.io>
* vcxproj generator: Fix files being in multiple filtersJoerg Bornemann2019-02-262-2/+25
| | | | | | | | | | | Visual Studio doesn't support files being in multiple filters and refuses to load such projects. Source files that appear in variables that are mapped to file filters (SOURCES, TRANSLATIONS, ...) must not be added to a second filter if they are input for an extra compiler. Fixes: QTBUG-74004 Change-Id: Id2d752059c98d04e8154a7848c91f29a94bd092a Reviewed-by: Kai Koehne <kai.koehne@qt.io>
* Display EXTRA_TRANSLATIONS files in VS projectsJoerg Bornemann2019-02-261-0/+1
| | | | | | | This amends commit 01d2f35b. Change-Id: I958c924f7f5a477f5ebced895ce2678d282526ad Reviewed-by: Kai Koehne <kai.koehne@qt.io>
* qmake: vcproj: Fix windeployqt config for dll targetsOliver Wolff2019-02-211-1/+1
| | | | | | | | | | | Instead of hardcoding the target's extension to ".exe" we should rely on target information available in Visual Studio. $(TargetFileName) is documented as "The file name of the primary output file for the build (defined as base name + file extension)." so it can be used instead of $(TargetName) together with ".exe". Change-Id: I103d8d13456910617b2d53c9c8f4e2935eb93015 Reviewed-by: Kai Koehne <kai.koehne@qt.io>
* Inline expression to bypass compiler bugDmitry Sokolov2019-02-191-2/+2
| | | | | | | | | | MSVC managed to trigger the this != &other assertion in QString(const QString &other); so just skip creation of the intermediate string in the function whose body tripped over this. Change-Id: I687003cfc588531018c6069863ce2a76078c8e3f Fixes: QTBUG-73802 Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>