summaryrefslogtreecommitdiffstats
path: root/qmake/generators/win32
Commit message (Collapse)AuthorAgeFilesLines
* qmake: rework .prl filename constructionOswald Buddenhagen2018-08-302-3/+2
| | | | | | | | | | | instead of trying to reverse-engineer it from the final target including extension and possible bundle path, construct the basename explicitly. this avoids that we mangle the filename if the actual target contains a period for some reason. Task-number: QTBUG-70097 Change-Id: I0bae9f010ab82e258680830250f8e28656f09d67 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Merge remote-tracking branch 'origin/5.11' into devLiang Qi2018-08-161-1/+16
|\ | | | | | | | | | | | | | | | | Conflicts: src/corelib/global/qconfig-bootstrapped.h src/plugins/platforms/xcb/qxcbbackingstore.cpp Done-with: Gatis Paeglis <gatis.paeglis@qt.io> Change-Id: I4af138ffb2f5306373244523768209e8873b2798
| * qmake vcxproj generator: Fix extra compilers for single configsJoerg Bornemann2018-08-091-0/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | For single config mode (no debug_and_release) extra compilers wouldn't get added to the vcxproj file. Single config mode creates a temporary project, and that was incomplete. Multi config mode, on the other hand, directly operates on the "real data" and wasn't affected by this problem. Task-number: QTBUG-69769 Change-Id: I9cd942e43d80adbeac9a3c8fbe1a5766bc9645a0 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io> Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
| * qmake vcxproj generator: Fix compilation of generated C++ sourcesJoerg Bornemann2018-08-081-1/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | Generated C++ source files with extensions other than .cpp would not get compiled, because the code ignored all other C++ source extensions like .cc and .cxx. Fix this by respecting the value of QMAKE_EXT_CPP and QMAKE_EXT_C. Task-number: QTBUG-69770 Change-Id: I097dfef6920e353a351c97891cdbfdc9a859815f Reviewed-by: Oliver Wolff <oliver.wolff@qt.io> Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>
* | qmake: Apply modernize-use-nullptrAlessandro Portale2018-08-085-11/+11
| | | | | | | | | | | | | | Use nullptr instead of 0. Change-Id: Ib3120b9c424a274a2d4dd4c42ec5d7cd5bdead65 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>
* | qmake: Apply modernize-use-overrideAlessandro Portale2018-08-087-81/+81
| | | | | | | | | | | | | | Add overrides to functions, except for destructors. Change-Id: I6e4640aa95a5c97d6bd6f6d8692d3290c421344e Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>
* | qmake: Avoid comparison of values with different enumeration typesAlessandro Portale2018-08-081-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | A switch statement using enumeration type midlErrorCheckOption as condition had an enumeration value from type midlStructMemberAlignOption as a case label. This had only coincidentally the intended effect, since the intended value (midlErrorCheckOption::midlEnableCustom) and the actually used one (midlStructMemberAlignOption::midlStructMemberAlignOption) have both the value 0. Change-Id: I73b337f23e733a1a6fb80517e29365e01838238a Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>
* | qmake: Harden logic for handling the -o optionTor Arne Vestbø2018-07-311-14/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We now treat -o foo/bar/baz as a request to generate the output in the foo/bar directory with baz as the output name, or if foo/bar/baz is already a directory, in the foo/bar/baz directory with the default output name. We take care to handle generator specific directory structures, so that the project directory does not get merged into OUT_PWD. This is done in runQmake(), before parsing the project file, so that OUT_PWD will be correct during project parsing. The individual generators are then passed the filename relative to the final output directory. Each generator now also makes sure to add the right project suffix to the output file, so -o foo will result in foo.pro or foo.vcproj, instead of just foo. Task-number: QTBUG-44408 Change-Id: I26990cec0c0458bee2b88dbb86322617a85f54b5 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>
* | qmake: get rid of (some) makefile expansions in dependency pathsOswald Buddenhagen2018-07-163-5/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | the variables are quoted correctly for commands, which is incompatible with quoting for dependencies under mingw. so insert the paths as literals, where we can control quoting. this fixes building in directories with spaces, which i broke in 7c34e0a7b by using different quoting styles for deps and commands in the first place. this breaks the hypothetical use case where somebody wants to override TARGET or DESTDIR (or DESTDIR_TARGET under windows) on the *make* command line. not sure why anyone would do that - just do it at the *qmake* level. we did not get rid of OBJECTS, because that would cause significant duplication in the makefile (not that it would matter too much, given the dependency lists ...). this isn't a problem, because these are short relative paths which are not expected to contain "funny" characters. an alternative would have been to change the variables' quoting and eliminate them from the commands instead, but that would be backwards-incompatible, because commands are "user-servicable". for the same reason, we cannot get rid of the variables entirely. Change-Id: Ic7592c7fc67d8b7d2b64de80808365cd1c3f79d0 Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* | qmake: fix lookup of .prl files for libs specified by full filenameOswald Buddenhagen2018-07-164-0/+34
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | under windows, libraries can have a numeric suffix derived from VERSION, and (under MinGW) a unix-like "lib" prefix - neither of which .prl files have. therefore, we had to make the back-mapping from the library to the .prl file reverse-engineer the original TARGET's name. we verify whether we actually got the right file by comparing the target specified inside the .prl file with what we started from. this fixes linking of transitive deps of static deps. the alternative of changing the .prl naming pattern to avoid the back-mapping was discarded, as a) it would be backwards incompatible and b) it would break project-internal -lfoo references to versioned libs. Change-Id: Ia9b899fe6a5700fee528bd1dacf130caf083cdd6 Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io> Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>
* | qmake: slightly optimize processPrlFile() callsOswald Buddenhagen2018-07-161-3/+3
|/ | | | | | | | | add a parameter that indicates whether the passed filename can be only the basename of a prl file. if so, we can skip the other attempts at interpreting the file name. that's not only faster, but also clearer. Change-Id: I6f6da3f4485216021282a08acaefb53e60e7242a Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* qmake: escape colons and hashmarks in dependency pathsOswald Buddenhagen2018-06-254-5/+18
| | | | | | | | | | | | | | | | | | | these characters can appear in file names, but are meta characters in dependency context. they have different semantics in make commands, so this required some reshuffling in the windows generator (which just treated dependencies and commands the same way). we don't actually escape colons for nmake, because it has magic treatment of drive letters anyway (and colons cannot appear elsewhere). also, if a target's filename gets quoted, batch rules will blow up. therefore, "funny" file names are really only supported as inputs - which is just enough to make resource embedding work. Task-number: QTBUG-22863 Task-number: QTBUG-68635 Change-Id: I473b0bf47d045298fd2ae481a29de603a3c1be30 Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io> Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* Fix QMAKE_MANIFEST for Visual Studio >= 2012Joerg Bornemann2018-06-131-0/+2
| | | | | | | | | The QMAKE_MANIFEST variable was ignored for VS linkers that support the /MANIFEST:embed option. Task-number: QTBUG-59967 Change-Id: I1cdb60ec3a7a5f117942952d4632378ff142daa5 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>
* qmake: use consistent path separators in makefile dependenciesOswald Buddenhagen2018-06-122-4/+4
| | | | | | | Task-number: QTBUG-65072 Change-Id: I3456d9b2cdfa9c65be5933f592abb640f81c39f2 Reviewed-by: Liang Qi <liang.qi@qt.io> Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* Set WindowsTargetPlatform[Min]Version if WindowsSDKVersion is setJoerg Bornemann2018-04-061-5/+19
| | | | | | | | | | | This fixes qmake-generated project files for Visual Studio 2017 for setups where the Windows 8.1 SDK is not installed. Task-number: QTBUG-66265 Change-Id: I67712019f7142e40262f171eb23f9f1e6ab3a251 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io> Reviewed-by: Miguel Costa <miguel.costa@qt.io> Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* doc: Remove inappropriate qdoc comment markersMartin Smith2018-01-181-2/+2
| | | | | | | | | Removed the '!' from two comments because the functions being documented are static functions declared and defined in the .cpp file. They are not public. Change-Id: Ie3b2c32c64102634b6b2a4c438da191536a426d6 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>
* qmake: Introduce precompile_header_c for MSVCOrgad Shaneh2018-01-082-13/+18
| | | | | | | | | | | | | | | | | | | | | | | MSVC requires that the C PCH file is compiled (as an object) and linked if any C file is found, and the same for C++. Most qmake projects are C++. If a C++ project has a precompiled header, it is typically of C++ type, and cannot be compiled as C (for example, it contains or includes classes). Since there is no easy way to conditionally build the C PCH file only if C files are found in the project (as done for g++), we need a setting that is disabled by default. This amends 30331afda118. [ChangeLog][Tools][qmake] Introduced precompile_header_c CONFIG option for MSVC to enable precompiled header for C sources. Task-number: QTBUG-65103 Change-Id: Id9688a35ee7d9b5e4f5a846b81986cb674bc5f4e Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>
* Merge remote-tracking branch 'origin/5.9' into 5.10Liang Qi2018-01-071-1/+2
|\ | | | | | | | | | | | | Conflicts: tests/auto/network/socket/qudpsocket/tst_qudpsocket.cpp Change-Id: Ib6dd965a7eb6f59103e276b3407739147ecd37b2
| * qmake: Handle QMAKE_LINK_OBJECT_MAX being unset for static librariesMartin Storsjö2018-01-041-1/+2
| | | | | | | | | | | | | | | | This was missed in 8bebded9. Task-number: QTBUG-63637 Change-Id: I6be472430a9aa8f533def4fd6c14c8dbfe8b6f70 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>
* | Merge remote-tracking branch 'origin/5.9' into 5.10Liang Qi2017-10-161-7/+1
|\| | | | | | | Change-Id: I3cf73c53cf131d0babfb558c2507bed0e0fc5f08
| * qmake: Actually resolve QMAKE_SHELL_NULL_DEVICE when writing to MakefileOrgad Shaneh2017-10-161-1/+1
| | | | | | | | | | | | | | This is C++, not qmake code. Amends 5fa6438633. Change-Id: Ie5b88c3a06dbe089948488ea3b4b297a08164113 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>
| * Qmake: Introduce and use QMAKE_{SYSTEM,SHELL}_NULL_DEVICE variable, take 2Orgad Shaneh2017-10-131-7/+1
| | | | | | | | | | | | | | | | | | | | SYSTEM is used for system() calls, while SHELL is used in the target Makefiles. Task-number: QTBUG-62985 Change-Id: Ia75d3939c59c98699359421166433e8b4a6ee35e Reviewed-by: Frederik Gladhorn <frederik.gladhorn@qt.io> Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>
* | Merge remote-tracking branch 'origin/5.9' into devLiang Qi2017-08-311-0/+1
|\| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: examples/examples.pro qmake/library/qmakebuiltins.cpp src/corelib/global/qglobal.cpp Re-apply b525ec2 to qrandom.cpp(code movement in 030782e) src/corelib/global/qnamespace.qdoc src/corelib/global/qrandom.cpp src/gui/kernel/qwindow.cpp Re-apply a3d59c7 to QWindowPrivate::setVisible() (code movement in d7a9e08) src/network/ssl/qsslkey_openssl.cpp src/plugins/platforms/android/androidjniinput.cpp src/plugins/platforms/xcb/qxcbconnection.cpp src/plugins/platforms/xcb/qxcbconnection_xi2.cpp src/widgets/widgets/qmenu.cpp tests/auto/widgets/kernel/qwidget_window/tst_qwidget_window.cpp Change-Id: If7ab427804408877a93cbe02079fca58e568bfd3
| * Add MSVC manifest backup file to "clean" targetJoerg Bornemann2017-08-181-0/+1
| | | | | | | | | | | | | | | | The $${TARGET}_manifest.bak file was not removed on "nmake clean". Task-number: QTBUG-59827 Change-Id: Ia5b636f4917f3e7a2df8d753824b72e63d278005 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>
* | MSVC: Support precompiled header also for C filesOrgad Shaneh2017-08-282-3/+27
| | | | | | | | | | | | | | | | | | It was already done correctly in the GCC generators, but lacked in MSVC. Task-number: QTBUG-11117 Change-Id: I5e6c2e4802dbe33c0f15c46a227a08c3f0cc5707 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io> Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* | Merge remote-tracking branch 'origin/5.9' into devLiang Qi2017-08-151-1/+2
|\| | | | | | | | | | | | | | | | | | | Conflicts: src/plugins/platforms/cocoa/qcocoamenu.h src/plugins/platforms/cocoa/qcocoamenu.mm src/plugins/platforms/cocoa/qcocoawindow.mm src/widgets/styles/qstylehelper_p.h Change-Id: I54247c98dd79d2b3826fc062b8b11048c9c7d9bb
| * qmake: don't limit command line length when not actually on windowsOswald Buddenhagen2017-08-151-1/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | QMAKE_LINK_OBJECT_MAX is actually a property of the host, not the target. this works around binutil's inability to use thin LTO objects in conjunction with an MRI script (https://sourceware.org/bugzilla/show_bug.cgi?id=21702). Task-number: QTBUG-61335 Change-Id: I90a1334b9c905c433b35546e8f3f3b5089d2c65b Reviewed-by: Jake Petroules <jake.petroules@qt.io>
* | Merge remote-tracking branch 'origin/5.9' into devOswald Buddenhagen2017-08-021-3/+4
|\| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: src/plugins/platforms/xcb/qxcbconnection.h src/plugins/platforms/xcb/qxcbconnection_xi2.cpp src/plugins/sqldrivers/sqlite/qsql_sqlite.cpp src/plugins/styles/mac/qmacstyle_mac.mm src/widgets/widgets/qdockarealayout.cpp src/widgets/widgets/qmainwindow.cpp src/widgets/widgets/qmainwindowlayout.cpp src/widgets/widgets/qmainwindowlayout_p.h tests/auto/corelib/tools/qlocale/tst_qlocale.cpp tests/auto/other/macnativeevents/BLACKLIST tests/auto/widgets/widgets/qmenu/BLACKLIST Change-Id: Ic8e724b80a65e7b1af25511b0e674d209265e567
| * qmake: Remove last remains of WinCE supportOliver Wolff2017-07-191-3/+3
| | | | | | | | | | | | Change-Id: Ifc2ecee8464710efd02a38b3a9794104f15a0f04 Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io> Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>
| * winrt: qmake: Fix deployment rules of created solution filesOliver Wolff2017-07-191-2/+3
| | | | | | | | | | | | | | | | If these rules are not added to the solution, Visual Studio will complain, that the project has to be deployed before it can be run. Change-Id: I6d3fbc949c85b11a92f78e13e2f6a1b92a5cfdc7 Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* | Merge remote-tracking branch 'origin/5.9' into devGabriel de Dietrich2017-07-131-0/+4
|\| | | | | | | | | | | | | Conflicts: src/widgets/widgets/qmainwindowlayout.cpp Change-Id: I306b4f5ad11bceb336c9091241b468d455fe6bb6
| * qmake: Separate object_script by Makefile nameOrgad Shaneh2017-07-071-0/+4
| | | | | | | | | | | | | | | | | | If several Makefiles are used in the same directory (for example, for multiple projects in the same directory or different build configurations), they all reference the same object_script, which is obviously wrong. Change-Id: I9b499ceb6b6bd6058f54b452fa44bfb2313eec26 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>
* | Merge remote-tracking branch 'origin/5.9' into devLiang Qi2017-06-194-38/+18
|\| | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: src/corelib/io/qprocess_unix.cpp src/corelib/io/qprocess_win.cpp src/plugins/platforms/android/qandroidplatformintegration.h src/plugins/platforms/windows/qwindowscontext.cpp src/plugins/platforms/windows/windows.pri src/tools/uic/cpp/cppwriteinitialization.cpp src/widgets/doc/src/widgets-and-layouts/gallery.qdoc Change-Id: I8d0834c77f350ea7540140c2c7f372814afc2d0f
| * qmake: Delete static library before calling ar on MinGWOrgad Shaneh2017-06-121-0/+7
| | | | | | | | | | | | | | | | | | | | | | | | This was already done on unix, but not for MinGW. If the archive already exists, it is appended rather than replaced. This can cause invalid references when whole-archive linking is used and some object file that was already linked was deleted. Change-Id: Ie265371f197d996d57002b248043736544ee641e Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>
| * qmake: Fix initialization order in VcprojGenerator ctorOrgad Shaneh2017-06-121-2/+2
| | | | | | | | | | | | | | Detected by clang Change-Id: I17b49b1737ca4a9ab6608a5d8701a9e1c50af5ae Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>
| * qmake: Use braces for struct initialization in MSVC object modelOrgad Shaneh2017-06-121-9/+9
| | | | | | | | | | | | | | Detected by clang Change-Id: I4c5fbdb402f55ce40e84a6a40ead6c32a60cfa22 Reviewed-by: Orgad Shaneh <orgads@gmail.com>
| * qmake: Delete unused variables in MSBuild object modelOrgad Shaneh2017-06-121-27/+0
| | | | | | | | | | | | | | | | | | Detected by clang. Remove also comments that reference unused variables. Change-Id: I6de54d96cd23b93eed6d109629a9462b7770e94e Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>
* | Merge remote-tracking branch 'origin/5.9' into devLiang Qi2017-06-071-0/+3
|\| | | | | | | | | | | | | Conflicts: src/widgets/widgets/qmenu.cpp Change-Id: I6d3baf56eb24501cddb129a3cb6b958ccc25a308
| * make mkspecs not mess up library and include search pathsOswald Buddenhagen2017-05-311-0/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | adding shared install paths to QMAKE_{INCDIR,LIBDIR} in the spec has the tiny side effect that they are searched _first_, which is generally a really bad idea - they should be _last_. for that purpose, make QMAKE_{INCDIR,LIBDIR}_POST live up to their names (i.e., search them actually last) and migrate all affected specs to use them. Task-number: QTBUG-40825 Change-Id: Ie0de81c3cc49e193186d2fedd7d6c77590c8ef79 Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* | Merge remote-tracking branch 'origin/5.9' into devLiang Qi2017-05-291-6/+2
|\| | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: .qmake.conf mkspecs/common/msvc-desktop.conf mkspecs/win32-g++/qmake.conf mkspecs/win32-icc/qmake.conf src/platformsupport/fontdatabases/mac/coretext.pri src/plugins/platforms/cocoa/qcocoawindow.h src/plugins/platforms/cocoa/qcocoawindow.mm Change-Id: I74a6f7705c9547ed8bbac7260eb4645543e32655
| * Fix parsing of MSVC's /utf-8 option, take 2Joerg Bornemann2017-05-231-1/+1
| | | | | | | | | | | | | | | | The dash was missing. This commit amends 70e772079. Task-number: QTBUG-59431 Change-Id: I18f3519a502ca57336cafad574f8738f2e717740 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>
| * Do not warn about unknown MSVC compiler conformance optionsJoerg Bornemann2017-05-231-5/+1
| | | | | | | | | | | | | | | | | | | | | | | | Every /Zc:XXX option qmake doesn't know about yields a "WARNING: Could not parse Compiler option '-Zc:XXX'; added to AdditionalOptions." Put all /Zc:XXX options we don't handle into AdditionalOptions without printing a warning. There's no point in making all options known to qmake and updating them for every MSVC release. Change-Id: I319e027791a7b0a29d139ee3074ab1aed8ce8a63 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>
* | Remove leading whitespace from command lines in VS projectsJoerg Bornemann2017-05-231-1/+1
| | | | | | | | | | Change-Id: I9888e5cce4fe82a27c823e7a0d345f1af839ca97 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>
* | Merge remote-tracking branch 'origin/5.9' into devLiang Qi2017-05-072-3/+3
|\| | | | | | | | | | | | | | | Conflicts: src/network/access/qnetworkreply.cpp tests/auto/corelib/kernel/qmetaobject/tst_qmetaobject.cpp Change-Id: Iadf766269454087e69fb216fc3857d85b0ddfaad
| * Simplify built-in qmake install commandSimon Hausmann2017-05-041-3/+2
| | | | | | | | | | | | | | | | As the directory installation command also works with files as a source we can unify the external commands, resulting in simpler command lines. Change-Id: I65013626eedbdb3ce1c77ed230d46edd1603b986 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>
| * VS 2017: Fall back to "x86" as arch if it is not "arm" or "x64"Oliver Wolff2017-05-031-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | The same as for other visual studio versions use "x86" as arch instead of win32. arch is used to determine library paths and these use x86 and not win32. As compilerArch is not used in MSVC 2017 it can be removed. Task-number: QTBUG-60530 Change-Id: I47157eb1d7ae9d913461210d34858ffb37c81586 Reviewed-by: Maurice Kalinowski <maurice.kalinowski@qt.io>
| * Preserve last modification timestamps of installed directoriesSimon Hausmann2017-05-021-0/+1
| | | | | | | | | | | | | | | | | | Similar to the two parent commits, this patchs preserves the time stamps of files we install as a result of recursive directory copying. Change-Id: Id5931a467196d5cd67acfa0deffc2488af8a3669 Task-number: QTBUG-59004 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>
* | QUuid: add fromString(QStringView/QLatin1String)Marc Mutz2017-04-201-1/+1
|/ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | As for the formatting code, de-duplicate the parsing code by only parsing char*s, converting QChars to Latin-1 first in a small buffer. The QUuid(const char*) ctor performed no length checking, relying instead on the checks performed within _q_uuidFromHex(), which includes an implicit check for premature end (because NUL is not a valid token for the parser). The (QString) and (QByteArray) ctors did perform length checking. To the extent possible, this is removed, since it is handled by _q_uuidFromHex(). Failure cases need not be optimized. Only the QLatin1String overload needs to do some checking, because views in general are not NUL-terminated. The QStringView overload can just append a NUL when it converts to Latin-1. The only check I added to _q_uuidFromHex() is that for src == nullptr. It would otherwise be duplicated in several callers. While touching the internal functions, port to passing and returning by value. Saves 1.6KiB in text size on optimized GCC 6.1 Linux AMD64 builds, even though we added new API. Port some users to the new functions. Expand fromString() test. [ChangeLog][QtCore][QUuid] Added fromString(QStringView/QLatin1String). Change-Id: I519339419129550c86e0ea80514865cd6a768f5d Reviewed-by: Anton Kudryavtsev <antkudr@mail.ru> Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
* Preserve last modification timestamps of installed program filesSimon Hausmann2017-04-131-0/+1
| | | | | | | | | | Similar to the parent commit, this patch adds a unified code path in qmake itself for installing program files while preserving their original last modification timestamp. Change-Id: I7b7dcfa6228c2bfd48ea6036549398bb6f90032f Task-number: QTBUG-59004 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>
* Preserve last modification timestamps of installed filesSimon Hausmann2017-04-121-0/+1
| | | | | | | | | | | On non-windows platforms, we use the "-p" parameter of install(1) to preserve the last modification timestamps of files. On Windows the use of copy does not preserve them. As a cross-platform solution, this patch introduces a simple built-in install command in qmake to copy files. Task-number: QTBUG-59004 Change-Id: I3064d29a2b8c7b009a1efbf8f00b84c079ea5417 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>