summaryrefslogtreecommitdiffstats
path: root/Source/cmVS11LinkFlagTable.h
diff options
context:
space:
mode:
authorcomicfans <comicfans44@gmail.com>2017-09-10 09:39:04 (GMT)
committerBrad King <brad.king@kitware.com>2017-09-18 15:53:22 (GMT)
commit3232f84c19b86184cb7c2db137b97ccb9aec20cc (patch)
treee501ab9d8d15456e731bc323c118c2d3b4285eff /Source/cmVS11LinkFlagTable.h
parente18ab9c4b2fc3b11a1e246b1418d25382a853bfb (diff)
downloadCMake-3232f84c19b86184cb7c2db137b97ccb9aec20cc.zip
CMake-3232f84c19b86184cb7c2db137b97ccb9aec20cc.tar.gz
CMake-3232f84c19b86184cb7c2db137b97ccb9aec20cc.tar.bz2
VS: Fix MANIFESTUAC link flag map to .vcxproj elements
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. Fixes: #16563
Diffstat (limited to 'Source/cmVS11LinkFlagTable.h')
-rw-r--r--Source/cmVS11LinkFlagTable.h13
1 files changed, 8 insertions, 5 deletions
diff --git a/Source/cmVS11LinkFlagTable.h b/Source/cmVS11LinkFlagTable.h
index 1b3a046..24ba8fd 100644
--- a/Source/cmVS11LinkFlagTable.h
+++ b/Source/cmVS11LinkFlagTable.h
@@ -29,6 +29,8 @@ static cmVS7FlagTable cmVS11LinkFlagTable[] = {
{ "CreateHotPatchableImage", "FUNCTIONPADMIN:16", "Itanium Image Only",
"ItaniumImage", 0 },
+ // correct flags for uac should be /MANIFESTUAC, but some projects already
+ // use this bug to access uac field, so keep these for compatibility
{ "UACExecutionLevel", "level='asInvoker'", "asInvoker", "AsInvoker", 0 },
{ "UACExecutionLevel", "level='highestAvailable'", "highestAvailable",
"HighestAvailable", 0 },
@@ -135,8 +137,12 @@ static cmVS7FlagTable cmVS11LinkFlagTable[] = {
{ "GenerateManifest", "MANIFEST:NO", "", "false", 0 },
{ "GenerateManifest", "MANIFEST", "", "true", 0 },
{ "AllowIsolation", "ALLOWISOLATION:NO", "", "false", 0 },
+
+ // correct flags for uac should be /MANIFESTUAC, but some projects already
+ // use this bug to access uac field, so keep these for compatibility
{ "UACUIAccess", "uiAccess='false'", "", "false", 0 },
{ "UACUIAccess", "uiAccess='true'", "", "true", 0 },
+
{ "ManifestEmbed", "manifest:embed", "", "true", 0 },
{ "GenerateDebugInformation", "DEBUG", "", "true",
cmVS7FlagTable::CaseInsensitive },
@@ -179,11 +185,8 @@ static cmVS7FlagTable cmVS11LinkFlagTable[] = {
{ "LinkDLL", "DLL", "", "true", 0 },
// Bool Properties With Argument
- { "EnableUAC", "MANIFESTUAC:NO", "", "false", 0 },
- { "EnableUAC", "MANIFESTUAC:", "", "true",
- cmVS7FlagTable::UserValueIgnored | cmVS7FlagTable::Continue },
- { "UACUIAccess", "MANIFESTUAC:", "Enable User Account Control (UAC)", "",
- cmVS7FlagTable::UserValueRequired },
+ { "EnableUAC", "MANIFESTUAC:", "", "",
+ cmVS7FlagTable::UserValueRequired | cmVS7FlagTable::SpaceAppendable },
{ "GenerateMapFile", "MAP", "", "true",
cmVS7FlagTable::UserValueIgnored | cmVS7FlagTable::Continue },
{ "MapFileName", "MAP:", "Generate Map File", "",