1. 28 Nov, 2018 28 commits
    • Stephan Szabo's avatar
      VS: connect /Y- compiler option with "Not Using Precompiled Headers" · 8df25f94
      Stephan Szabo authored
      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
      8df25f94
    • Stephan Szabo's avatar
      VS: Add v140 flag table entries for `-Zc:inline[-]` · f1223e34
      Stephan Szabo authored
      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
      f1223e34
    • Stephan Szabo's avatar
      VS: Fix regressed mapping for the cl `/Os` compiler flag · efc90eed
      Stephan Szabo authored
      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.
      efc90eed
    • Stephan Szabo's avatar
      VS 14: Add flag map for -std= to CppLanguageStandard tag in project files · 36b7fc7d
      Stephan Szabo authored
      Original header commit v3.6.0-rc1~279^2~8
      
      This is used by the Clang/C2 toolset.
      36b7fc7d
    • Stephan Szabo's avatar
      VS: in Clang/C2 toolset, setup correct compiler settings · 21d26a9e
      Stephan Szabo authored
      Original header commit v3.6.0-rc1~279^2~10
      21d26a9e
    • Stephan Szabo's avatar
      VS: Fix /analyze:log flag mapping (#14858) · 44dc9fc4
      Stephan Szabo authored
      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.
      44dc9fc4
    • Stephan Szabo's avatar
      VS: Fix CSharp support for win32res: and win32icon: flags · aba364d1
      Stephan Szabo authored
      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 `:`.
      aba364d1
    • Stephan Szabo's avatar
      Vs: remove /nowin32manifest from C# flags to enable default VS behavior · b9fe2785
      Stephan Szabo authored
      Original header commit v3.10.0-rc1~494^2
      
      if /nowin32manifest is specified, it will be preferred over any
      occurring /win32manifest:<file> parameter
      b9fe2785
    • Stephan Szabo's avatar
      MSVC: Add support for ARM64 architecture · 6c6c1329
      Stephan Szabo authored
      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.
      6c6c1329
    • Stephan Szabo's avatar
      VS: Fix MANIFESTUAC link flag map to .vcxproj elements · 454b47ba
      Stephan Szabo authored
      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
      454b47ba
    • Stephan Szabo's avatar
      VS: Fix support for '/guard:cf' linker flag · 57a78b55
      Stephan Szabo authored
      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`.
      57a78b55
    • Stephan Szabo's avatar
      VS: Add v140 and v141 flag table entries for /DEBUG:NONE and /DEBUG:FULL · f77320c1
      Stephan Szabo authored
      DEBUG:FULL was already added for v141 from the generation.
      
      Original header commit v3.9.0-rc6~15^2
      f77320c1
    • Stephan Szabo's avatar
      VS: Map the link `/debug` to its IDE property · a5d9aa50
      Stephan Szabo authored
      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
      a5d9aa50
    • Stephan Szabo's avatar
      VS: Fix /MANIFESTUAC:NO linker option mapping · 1d00fd77
      Stephan Szabo authored
      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.
      1d00fd77
    • Stephan Szabo's avatar
      VS: Manually fix MASM flag table entries · 3133fa50
      Stephan Szabo authored
      Original header commit v3.1.0-rc1~154^2~5
      
      Drop '"[value]"' placeholders.
      3133fa50
    • Stephan Szabo's avatar
      VS: Add NASM fwin/felf switches · 66704e42
      Stephan Szabo authored
      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.
      66704e42
    • Stephan Szabo's avatar
      VS: Manually fix generated NASM flag table · fc58a40e
      Stephan Szabo authored
      Drop '"[value]"' placeholders.
      fc58a40e
    • Stephan Szabo's avatar
      VS: Add CUDA flag table entry for -maxrregcount · 7fd339b1
      Stephan Szabo authored
      Original header commit v3.12.0-rc2~10^2
      7fd339b1
    • Stephan Szabo's avatar
      VS: Add more CUDA flag table entries · f61e0975
      Stephan Szabo authored
      Original header commit v3.9.0-rc1~431^2~2
      f61e0975
    • Stephan Szabo's avatar
      VS: Select CUDA code generation architectures · c17809bc
      Stephan Szabo authored
      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.
      c17809bc
    • Stephan Szabo's avatar
      VS: Select the CUDA runtime library · 73ce99cb
      Stephan Szabo authored
      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.
      73ce99cb
    • Stephan Szabo's avatar
      VS: Place CUDA host compiler options in proper project file fields · f044bbbf
      Stephan Szabo authored
      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.
      f044bbbf
    • Stephan Szabo's avatar
      Add placeholder CUDA json flag tables · 7faa4d59
      Stephan Szabo authored
      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.
      7faa4d59
    • Stephan Szabo's avatar
      Add json flag tables for C# · 6e947179
      Stephan Szabo authored
      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.
      6e947179
    • Stephan Szabo's avatar
      Add initial NASM flag table json · 2f37ce5e
      Stephan Szabo authored
      Generated from the nasm.xml provided by CMake.
      
      python cmConvertMSBuildXMLToJSON.py -t v10 ...\Templates\MSBuild\nasm.xml
      2f37ce5e
    • Stephan Szabo's avatar
      Add CL, LIB, Link, MASM, RC flag json · a8446116
      Stephan Szabo authored
      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"
      a8446116
    • Stephan Szabo's avatar
      Convert cmIDEFlagTable to use owned strings · 82793021
      Stephan Szabo authored
      Convert from char* to std::string in flag tables.
      Change termination condition from nullptr to empty string in command flag.
      Update tables to store empty strings.
      82793021
    • Stephan Szabo's avatar
      Update XML->JSON generation script · 139b3998
      Stephan Szabo authored
      Update generation script to write a newline to generated json.
      Update generation script to remove / or - at start of switches in xml
      Update generation script to put separators on switch as in headers
      139b3998
  2. 15 Nov, 2018 8 commits
  3. 14 Nov, 2018 4 commits