summaryrefslogtreecommitdiffstats
path: root/Templates/MSBuild
Commit message (Collapse)AuthorAgeFilesLines
* VS: Add toolset v142 CSharp flag tableBrad King2019-10-111-0/+574
| | | | | | | | | | | | | While the flag tables for C and C++ were generated from MSBuild `.xml` files, the CSharp flag tables were written by hand. Copy the `v141` flag table to use for the `v142` toolset. Remove the special case added by commit 626c51f47b (VS: Update for Visual Studio 2019 Preview 2, 2019-01-24, v3.14.0-rc1~74^2) that mapped the v142 flag table lookup to v141 since we now have the real v142 table. Fixes: #19828
* VS: Fix nowarn compiler option to accept warning numbers.Wil Stark2019-02-075-15/+35
| | | | | | Warning disables are transferred to the VS IDE `<NoWarn>` node. Fixes: #18878
* VS: Fix `/MANIFESTUAC:` link flag mapping for v142Brad King2019-01-241-21/+4
| | | | | | | | | | | 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.
* VS: Fix support for '/guard:cf' linker flag for v142Brad King2019-01-241-7/+0
| | | | | | | | | | 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`.
* VS: Map the link `/debug` flag for v142Brad King2019-01-241-10/+18
| | | | | | | | | | 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.
* VS: Fix `/MANIFESTUAC:NO` link flag mapping for v142Brad King2019-01-241-5/+1
| | | | | | | | | | 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.
* VS: Populate `/permissive` flag table entry for v142Brad King2019-01-241-1/+8
| | | | | | 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.
* VS: Populate `/JMC-` flag table entry for v142Brad King2019-01-241-0/+7
| | | | Add the negative form of the option.
* VS: Populate `-Qspectre-` flag table entry for v142Brad King2019-01-241-6/+6
| | | | | | | 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.
* VS: Populate `/Y-` flag table entry for v142Brad King2019-01-241-1/+1
| | | | | | Apply the change from commit 8df25f9400 (VS: connect /Y- compiler option with "Not Using Precompiled Headers", 2018-11-26) to the v142 flag table.
* VS: Add `-Zc:inline[-]` flag table entry for v142Brad King2019-01-241-0/+7
| | | | | | | | | | | | 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
* VS: Fix `/analyze:log` flag mapping for v142Brad King2019-01-241-14/+4
| | | | | | | | | | | 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.
* VS: Add v142 flag tables for cl and link toolsBrad King2019-01-242-0/+2544
| | | | | | | Convert from MSBuild `.xml` files: python cmConvertMSBuildXMLToJSON.py -t v142 .../2019/Preview/MSBuild/Microsoft/VC/v160/1033/cl.xml python cmConvertMSBuildXMLToJSON.py -t v142 .../2019/Preview/MSBuild/Microsoft/VC/v160/1033/link.xml
* VS: Add flag table entry for "permissive" flag to disable conformance modeJonathan Storey2018-12-101-1/+8
| | | | | This flag is required to disable conformance mode on specific sources when it is otherwise enabled on most sources.
* VS: Add flag table entry for -JMCStephan Szabo2018-11-281-0/+14
| | | | | | Original header commit 516c6fc38c0bdfd7905edb169a4ebfef689cf116 Add support for mapping Just My Code compiler flag
* VS: Fix flag table entry for -QspectreStephan Szabo2018-11-281-8/+1
| | | | | | | | The Qspectre option was generated by the script (as opposed to being added by commit v3.13.0-rc1~4^2 (VS: Add flag table entry for -Qspectre, 2018-10-08), however the comment was not useful and there was a separate off option generated that was not in the old table.
* VS: connect /Y- compiler option with "Not Using Precompiled Headers"Stephan Szabo2018-11-285-5/+5
| | | | | | | | | Original header commit v3.10.0-rc1~423^2 The change allows to selectively disable PrecompiledHeaders. Despite the `$(VCTargetsPath)/1033/cl.xml` contains an empty value for switch, for effectively turn off setting need to use /Y- option as described on msdn: https://msdn.microsoft.com/en-us/library/1hy7a92h.aspx
* VS: Add v140 flag table entries for `-Zc:inline[-]`Stephan Szabo2018-11-282-0/+14
| | | | | | | | | | | | | Note: Zc:inline was added by generator, but not the - version. Original header commit v3.7.2~8^2 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
* VS: Fix regressed mapping for the cl `/Os` compiler flagStephan Szabo2018-11-282-14/+0
| | | | | | | | | | | | | Original header commit v3.6.0-rc3~8^2 In commit v3.6.0-rc1~279^2~10 (VS: in Clang/C2 toolset, setup correct compiler settings, 2016-02-18) a flag mapping was added for the clang `-Os` flag. However, this collides with a mapping we already had for the MSVC flag of the same name. This is a symptom of a larger problem in that the VS generators need a per-toolset flag map (issue #16153). For now, simply drop the new mapping and drop `-Os` from clang compiler flags in the MinSizeRel configuration.
* VS 14: Add flag map for -std= to CppLanguageStandard tag in project filesStephan Szabo2018-11-282-0/+126
| | | | | | Original header commit v3.6.0-rc1~279^2~8 This is used by the Clang/C2 toolset.
* VS: in Clang/C2 toolset, setup correct compiler settingsStephan Szabo2018-11-282-0/+14
| | | | Original header commit v3.6.0-rc1~279^2~10
* VS: Fix /analyze:log flag mapping (#14858)Stephan Szabo2018-11-284-56/+16
| | | | | | | | | | | | | Original header commits: v11/v12 commit v3.1.0-rc1~695^2 v140/v141 commit v3.1.0-rc1~358^2~3 Fix the VS 11 and VS 12 flag table entries for this flag. It 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.
* VS: Fix CSharp support for win32res: and win32icon: flagsStephan Szabo2018-11-285-10/+10
| | | | | | | Original header commit v3.13.0-rc2~6^2 Add a missing `:` to these entries in the flag table. The user value is always required and must come after the `:`.
* Vs: remove /nowin32manifest from C# flags to enable default VS behaviorStephan Szabo2018-11-285-15/+30
| | | | | | | Original header commit v3.10.0-rc1~494^2 if /nowin32manifest is specified, it will be preferred over any occurring /win32manifest:<file> parameter
* MSVC: Add support for ARM64 architectureStephan Szabo2018-11-281-0/+7
| | | | | | | | | The v141_Link.json already appeared to have the option included, so onlyh adding the change to v14_LIB.json. Original header commit v3.10.0-rc1~132^2 Visual Studio 15.4 adds support for this architecture.
* VS: Fix MANIFESTUAC link flag map to .vcxproj elementsStephan Szabo2018-11-285-105/+20
| | | | | | | | | | | | Original header commit v3.10.0-rc1~97^2 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
* VS: Fix support for '/guard:cf' linker flagStephan Szabo2018-11-282-14/+0
| | | | | | | | | Original header commit v3.9.0-rc6~12^2 Although `$(VCTargetsPath)/1033/link.xml` for v140 and v141 toolsets contains an entry for `LinkControlFlowGuard`, it does not work when used in a `.vcxproj` file. Drop our link flag table entries for these toolsets so that the flag will be passed via `AdditionalOptions`.
* VS: Add v140 and v141 flag table entries for /DEBUG:NONE and /DEBUG:FULLStephan Szabo2018-11-282-0/+27
| | | | | | DEBUG:FULL was already added for v141 from the generation. Original header commit v3.9.0-rc6~15^2
* VS: Map the link `/debug` to its IDE propertyStephan Szabo2018-11-285-22/+24
| | | | | | | | | | Fix issues with "GenerateDebugInformation". These are mostly from the following commits, but also include a related fix to the v140/v141 file. Original header commits: v10-v14 commit v3.5.0-rc1~71^2 v140/v141 commit v3.9.0-rc6~15^2~1
* VS: Fix /MANIFESTUAC:NO linker option mappingStephan Szabo2018-11-285-25/+5
| | | | | | | | | | | Original header commits: v10/v11/v12 commit v3.0.0-rc5~3^2 v140 commit v3.1.0-rc1~358^2~3 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.
* VS: Manually fix MASM flag table entriesStephan Szabo2018-11-284-20/+20
| | | | | | Original header commit v3.1.0-rc1~154^2~5 Drop '"[value]"' placeholders.
* VS: Add NASM fwin/felf switchesStephan Szabo2018-11-281-0/+14
| | | | | The generated NASM file from the xml does not contain the fwin/felf switches that don't seem to directly exist in the xml file.
* VS: Manually fix generated NASM flag tableStephan Szabo2018-11-281-6/+6
| | | | Drop '"[value]"' placeholders.
* VS: Add CUDA flag table entry for -maxrregcountStephan Szabo2018-11-281-0/+18
| | | | Original header commit v3.12.0-rc2~10^2
* VS: Add more CUDA flag table entriesStephan Szabo2018-11-281-0/+42
| | | | Original header commit v3.9.0-rc1~431^2~2
* VS: Select CUDA code generation architecturesStephan Szabo2018-11-281-0/+112
| | | | | | | Original header commit v3.9.0-rc1~431^2~4 Parse the `-gencode=`, `-arch`, and `-code` flags and generate a `CodeGeneration` field in the project file.
* VS: Select the CUDA runtime libraryStephan Szabo2018-11-281-0/+30
| | | | | | | | Original header commit v3.9.0-rc1~431^2~5 Parse the `-cudart=` option and add a corresponding `CudaRuntime` field to the generated project file. Also add a matching `.lib` to the list of libraries linked.
* VS: Place CUDA host compiler options in proper project file fieldsStephan Szabo2018-11-282-0/+167
| | | | | | | | | | | | | Original header commit v3.9.0-rc1~431^2~6 The CUDA Toolkit's VS integration provides abstractions for host compiler options for `nvcc` to pass through `-Xcompiler` to the host MSVC. Populate our secondary flag table and use it to remove flags from the `AdditionalCompilerOptions` in favor of their abstractions. Unfortunately a bug in the CUDA 8.0 VS integration prevents us from passing anything in `AdditionalCompilerOptions` reliably. After taking out the flags that have dedicated abstractions, drop the rest.
* Add placeholder CUDA json flag tablesStephan Szabo2018-11-282-0/+4
| | | | | | | | | | | Generate json flag tables from initial placeholder headers Original header commit v3.9.0-rc1~431^2~10 The CUDA Toolkit's VS integration defines abstractions for both options to `nvcc` and options to pass through `-Xcompiler` to the host MSVC. We need a separate flag table to parse each set of flags into the corresponding abstractions. Add empty placeholders for these tables.
* Add json flag tables for C#Stephan Szabo2018-11-285-0/+2835
| | | | | | | | | | | | Generate initial json flag tables for C# based on the initial headers. Original header commit v3.8.0-rc1~230^2 Add these (currently unused) tables in preparation for `.csproj` generation support. Populate the tables for every version with a set of initial values that work well for me with VS 12 and VS 14. Later we may need to generate them more thoroughly from MSBuild `.xml` files.
* Add initial NASM flag table jsonStephan Szabo2018-11-281-0/+187
| | | | | | Generated from the nasm.xml provided by CMake. python cmConvertMSBuildXMLToJSON.py -t v10 ...\Templates\MSBuild\nasm.xml
* Add CL, LIB, Link, MASM, RC flag jsonStephan Szabo2018-11-2822-0/+14513
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Adding flag json files generated from MSVC xml files. python cmConvertMSBuildXMLToJSON.py -t v10 "...\MSBuild\Microsoft.Cpp\v4.0\1033\cl.xml" python cmConvertMSBuildXMLToJSON.py -t v11 "c:\...\MSBuild\Microsoft.Cpp\v4.0\V110\1033\cl.xml" python cmConvertMSBuildXMLToJSON.py -t v12 "c:\...\MSBuild\Microsoft.Cpp\v4.0\V120\1033\cl.xml" python cmConvertMSBuildXMLToJSON.py -t v140 "c:\...\MSBuild\Microsoft.Cpp\v4.0\V140\1033\cl.xml" python cmConvertMSBuildXMLToJSON.py -t v141 "C:\...\Common7\IDE\VC\VCTargets"\1033\cl.xml" python cmConvertMSBuildXMLToJSON.py -t v10 "c:\...\MSBuild\Microsoft.Cpp\v4.0\1033\rc.xml python cmConvertMSBuildXMLToJSON.py -t v11 "c:\...\MSBuild\Microsoft.Cpp\v4.0\v110\1033\rc.xml python cmConvertMSBuildXMLToJSON.py -t v12 "c:\...\MSBuild\Microsoft.Cpp\v4.0\v120\1033\rc.xml python cmConvertMSBuildXMLToJSON.py -t v14 "c:\...\MSBuild\Microsoft.Cpp\v4.0\v140\1033\rc.xml python cmConvertMSBuildXMLToJSON.py -t v10 "c:\...\MSBuild\Microsoft.Cpp\v4.0\1033\lib.xml python cmConvertMSBuildXMLToJSON.py -t v11 "c:\...\MSBuild\Microsoft.Cpp\v4.0\v110\1033\lib.xml python cmConvertMSBuildXMLToJSON.py -t v12 "c:\...\MSBuild\Microsoft.Cpp\v4.0\v120\1033\lib.xml python cmConvertMSBuildXMLToJSON.py -t v14 "c:\...\MSBuild\Microsoft.Cpp\v4.0\v140\1033\lib.xml python cmConvertMSBuildXMLToJSON.py -t v10 "c:\...\MSBuild\Microsoft.Cpp\v4.0\1033\link.xml" python cmConvertMSBuildXMLToJSON.py -t v11 "c:\...\MSBuild\Microsoft.Cpp\v4.0\V110\1033\link.xml" python cmConvertMSBuildXMLToJSON.py -t v12 "c:\...\MSBuild\Microsoft.Cpp\v4.0\V120\1033\link.xml" python cmConvertMSBuildXMLToJSON.py -t v140 "c:\...\MSBuild\Microsoft.Cpp\v4.0\V140\1033\link.xml" python cmConvertMSBuildXMLToJSON.py -t v141 "C:\...\Common7\IDE\VC\VCTargets"\1033\link.xml" python cmConvertMSBuildXMLToJSON.py -t v10 "c:\...\MSBuild\Microsoft.Cpp\v4.0\BuildCustomizations\masm.xml" python cmConvertMSBuildXMLToJSON.py -t v11 "c:\...\MSBuild\Microsoft.Cpp\v4.0\V110\BuildCustomizations\masm.xml" python cmConvertMSBuildXMLToJSON.py -t v12 "c:\...\MSBuild\Microsoft.Cpp\v4.0\V120\BuildCustomizations\masm.xml" python cmConvertMSBuildXMLToJSON.py -t v14 "c:\...\MSBuild\Microsoft.Cpp\v4.0\V140\BuildCustomizations\masm.xml"
* VS: Properly quote arguments in nasm.xmlDavid Benjamin2018-07-021-3/+3
| | | | | | | | | | | | | | | | | | Most arguments were quoted, but some weren't, causing problems if the arguments contained whitespace. In particular, the _STL_EXTRA_DISABLED_WARNINGS value takes spaces and CMake's NASM support applies all add_definitions lines to NASM. The -D flag is missing quotes, so projects using NASM and setting _STL_EXTRA_DISABLED_WARNINGS break in the Visual Studio generator. Likewise, the -o flag is missing quotes, which means filenames with spaces do not work. (The -U flag is unlikely to need quotes, but include them for consistency.) Extend the existing VSNASM test to cover these cases.
* VS: Add support for ASM_NASM languageEvgeny Fimochkin2017-02-073-0/+168
Fixes: #16469