1. 07 Feb, 2019 1 commit
  2. 25 Jan, 2019 1 commit
  3. 24 Jan, 2019 11 commits
    • Brad King's avatar
      VS: Fix `/MANIFESTUAC:` link flag mapping for v142 · fd45cbf4
      Brad King authored
      Apply the change from commit 454b47ba (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.
      fd45cbf4
    • Brad King's avatar
      VS: Fix support for '/guard:cf' linker flag for v142 · db35e3cf
      Brad King authored
      Apply the change from commit 57a78b55 (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`.
      db35e3cf
    • Brad King's avatar
      VS: Map the link `/debug` flag for v142 · 533f95c8
      Brad King authored
      Apply the changes from commit a5d9aa50 (VS: Map the link `/debug` to
      its IDE property, 2018-11-21) and commit f77320c1 (VS: Add v140 and
      v141 flag table entries for /DEBUG:NONE and /DEBUG:FULL, 2018-11-21) to
      the v142 flag table.
      
      See commit ae44496e (VS: Fix GenerateDebugInformation values for v140
      and v141 toolsets, 2017-06-27, v3.9.0-rc6~15^2~1) for explanation.
      533f95c8
    • Brad King's avatar
      VS: Fix `/MANIFESTUAC:NO` link flag mapping for v142 · d2fcc674
      Brad King authored
      Apply the change from commit 1d00fd77 (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.
      d2fcc674
    • Brad King's avatar
      VS: Populate `/permissive` flag table entry for v142 · a7973ccb
      Brad King authored
      Apply the change from commit e0d6d01e (VS: Add flag table entry for
      "permissive" flag to disable conformance mode, 2018-12-10) to the
      v142 flag table.
      a7973ccb
    • Brad King's avatar
      VS: Populate `/JMC-` flag table entry for v142 · 049410c0
      Brad King authored
      Add the negative form of the option.
      049410c0
    • Brad King's avatar
      VS: Populate `-Qspectre-` flag table entry for v142 · 43aa632f
      Brad King authored
      Rather than the change from commit 584ad067 (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.
      43aa632f
    • Brad King's avatar
      VS: Populate `/Y-` flag table entry for v142 · 460a146e
      Brad King authored
      Apply the change from commit 8df25f94 (VS: connect /Y- compiler option
      with "Not Using Precompiled Headers", 2018-11-26) to the v142 flag
      table.
      460a146e
    • Brad King's avatar
      VS: Add `-Zc:inline[-]` flag table entry for v142 · 0df37903
      Brad King authored
      Apply the change from commit f1223e34 (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
      0df37903
    • Brad King's avatar
      VS: Fix `/analyze:log` flag mapping for v142 · fb2e418c
      Brad King authored
      Apply the change from commit 44dc9fc4 (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.
      fb2e418c
    • Brad King's avatar
      VS: Add v142 flag tables for cl and link tools · 20922d67
      Brad King authored
      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
      20922d67
  4. 10 Dec, 2018 1 commit
  5. 28 Nov, 2018 26 commits
    • Stephan Szabo's avatar
      VS: Add flag table entry for -JMC · 9c60ae5f
      Stephan Szabo authored
      Original header commit 516c6fc3
      
      Add support for mapping Just My Code compiler flag
      9c60ae5f
    • Stephan Szabo's avatar
      VS: Fix flag table entry for -Qspectre · 584ad067
      Stephan Szabo authored
      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.
      584ad067
    • 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