The `Modules/CPack.background.png.in` file was originally added by
commit f2c0dbd164 (ENH: More work on the packaging. Add Applicaitons,
add icons, etc, 2007-02-13, v2.6.0~2217). Then it was removed
accidentally by commit 5308afa3f7 (ENH: remove unused file, 2009-03-03,
v2.8.0~963) and restored by commit f9dd6a38c5 (ENH: add file back bug
use cmake image, 2009-03-04, v2.8.0~958) but with corruption.
Restore the original image file and add a Git attribute to prevent
newline conversion as we do for other `.png` files.
This refactors a std::vector<std::string> into a class so that
we can extend the features to represent things such as multiple
chained commands in the future.
Update the special case added by commit f719a13c28 (Features: Add
special case to disable relaxed constexpr for Intel 18, 2018-06-04,
v3.12.0-rc1~11^2) to record that 18.0.5 fixed the regression.
Suppress some cases in `Source/cmGeneratorExpressionNode.cxx` and
`Source/cmUVHandlePtr.h` where a few older compilers require a
user-defined default constructor (with `{}`).
CMP0074 causes FindICU.cmake to always prefer the 32-bit version of ICU
programs/libraries on Windows. NO_PACKAGE_ROOT_PATH reverts this behavior.
Fixes: #18742
Revert commit 31301b46a7 (file: Allow DOWNLOAD/UPLOAD using alternate
authentication methods, 2018-08-28, v3.13.0-rc1~155^2). It regressed
support for password-protected redirects.
Fixes: #18691
Since commit 5a0784ddea (clang-tidy: Pass by value, 2019-01-21), some of
the `RunCMake.{list,PositionIndependentCode}` cases have crashed on an
aarch64 build with GCC 6. Avoiding use of the `std::function` move
constructor avoids the crash. Use a strict preprocessor condition to
use this workaround only where needed.
Apply the change from commit 454b47ba0b (VS: Fix MANIFESTUAC link flag
map to .vcxproj elements, 2018-11-21) to the v142 flag table.
Add special parsing of the flags given in `/MANIFESTUAC:"..."` in order
to map them correctly to `.vcxproj` elements.
Keep the old incorrect flag table entries for `uiAccess` and `level`
flags for compatibility even though they do not really exist.
Apply the change from commit 57a78b5526 (VS: Fix support for '/guard:cf'
linker flag, 2018-11-21) to the v142 flag table.
Although `$(VCTargetsPath)/1033/link.xml` contains an entry for
`LinkControlFlowGuard`, it does not work when used in a `.vcxproj` file
(at least as of v140 and v141). Drop our link flag table entries for
these toolsets so that the flag will be passed via `AdditionalOptions`.
Apply the changes from commit a5d9aa5063 (VS: Map the link `/debug` to
its IDE property, 2018-11-21) and commit f77320c12a (VS: Add v140 and
v141 flag table entries for /DEBUG:NONE and /DEBUG:FULL, 2018-11-21) to
the v142 flag table.
See commit ae44496e2b (VS: Fix GenerateDebugInformation values for v140
and v141 toolsets, 2017-06-27, v3.9.0-rc6~15^2~1) for explanation.
Apply the change from commit 1d00fd7702 (VS: Fix /MANIFESTUAC:NO linker
option mapping, 2018-11-21) to the v142 flag table.
There are no versions of `/MANIFESTUAC:NO` where addition values are
appended. Remove both of the `MANIFESTUAC:NO` entries from our flag
tables and replace them with one which would set `EnableUAC` to false
and immediately stop processing the `/MANIFESTUAC:NO` option.
Apply the change from commit e0d6d01e52 (VS: Add flag table entry for
"permissive" flag to disable conformance mode, 2018-12-10) to the
v142 flag table.
Rather than the change from commit 584ad067ba (VS: Fix flag table entry
for -Qspectre, 2018-11-26), update the v142 flag table with an actual
flag for the negative form of the flag. Switch the entry order so that
the longer negative form is first.
Apply the change from commit f1223e34c6 (VS: Add v140 flag table entries
for `-Zc:inline[-]`, 2018-11-26) to the v142 flag table.
The documentation of this option [1] claims that the default is off, but
VS seems to use `-Zc:inline` by default if `RemoveUnreferencedCodeData`
does not appear in the `.vcxproj` file. Add the flag table entry to
allow use of the flag to be configured.
[1] https://msdn.microsoft.com/en-us/library/dn642448.aspx
Apply the change from commit 44dc9fc48a (VS: Fix /analyze:log flag
mapping, 2018-11-26) to the v142 flag table.
The `/analyze:log` argument requires a value in the following argument.
Also drop the general `/analyze:` flag table entry so that such flags
will be passed through as plain additional options. This is necessary
because some such options have following values and some do not but
not all have `.vcxproj` elements to hold the values.
Code extracted from:
https://gitlab.kitware.com/utils/kwsys.git
at commit b9dd1636e50ea43cd33bed8c6ffbbe7161618b54 (master).
Upstream Shortlog
-----------------
Ben Boeckel (1):
28db6989 cmake: add an option for building with PIC
Taylor Braun-Jones (1):
3f35954d SystemTools: Add TextFilesDiffer method
Tobias Kloss (1):
aa1f7f7c SystemTools: Fix FileIsSymlink with Windows data deduplication