1. 21 Jan, 2019 1 commit
  2. 16 Jan, 2019 1 commit
  3. 11 Jan, 2019 1 commit
    • Brad King's avatar
      VS: Add Visual Studio 16 2019 generator · 57e48f16
      Brad King authored
      Add this generator *without* support for specifying the target
      architecture in the generator name.  cmake-gui will be taught
      to provide a field for this, and command-line builds can use -A.
      
      Also, teach this generator to select a default target architecture
      based on the host architecture.
      
      Fixes: #18689
      
      Inspired-by: Egor Pugin's avatarEgor Pugin <egor.pugin@gmail.com>
      57e48f16
  4. 10 Jan, 2019 4 commits
  5. 03 Jan, 2019 1 commit
  6. 28 Nov, 2018 1 commit
  7. 25 Sep, 2018 1 commit
    • Brad King's avatar
      VS: Pass platform when invoking MSBuild · 98e4fbdc
      Brad King authored
      MSBuild expects a `/p:Platform=...` argument to tell it which platform
      to build among those in the `.vcxproj` files.  We have not historically
      had to do this because we generate only one platform.  However, when
      a project uses `include_external_msproject` the included project file
      may have other platforms.
      
      Fixes: #18308
      98e4fbdc
  8. 27 Aug, 2018 1 commit
  9. 24 Jun, 2018 1 commit
    • Basil Fierz's avatar
      VS: Allow toolset version selection to specify default toolset · 3c4698da
      Basil Fierz authored
      Teach the feature added by commit v3.12.0-rc1~38^2 (VS: Add option to
      select the version of the toolset used by VS 2017, 2018-05-19) to accept
      the default toolset version in addition to older versions.  If the
      default toolset version is supplied, simply clear it so the default will
      be used.
      
      Fixes: #18107
      3c4698da
  10. 29 May, 2018 1 commit
  11. 25 May, 2018 1 commit
    • Florian Maushart's avatar
      cmake: Add options for parallel builds to --build mode · 1ab3881e
      Florian Maushart authored
      While we already support `cmake --build . -- -j`, the options after `--`
      are specific to the native build tool.  Add new options `--parallel
      [<N>]` and `-j [<N>]` to abstract this and map to the proper option
      for the native build tool.
      1ab3881e
  12. 09 Mar, 2018 1 commit
  13. 21 Dec, 2017 1 commit
  14. 14 Dec, 2017 1 commit
  15. 15 Sep, 2017 2 commits
  16. 12 Sep, 2017 1 commit
  17. 24 Aug, 2017 1 commit
  18. 03 Aug, 2017 1 commit
    • Brad King's avatar
      VS: Fix VCTargetsPath detection · fe3b481b
      Brad King authored
      In some environments MSBuild chooses the `Release` configuration
      even though only `Debug` is available in our detection project.
      Force use of the `Debug` configuration with a command-line option.
      
      Fixes: #17118
      fe3b481b
  19. 28 Jun, 2017 1 commit
    • Brad King's avatar
      VS: Fix GenerateDebugInformation values for v140 and v141 toolsets · ae44496e
      Brad King authored
      
      
      When VS 2015 was first released, its new v140 toolset came with a
      `link.xml` file that changed the `GenerateDebugInformation` boolean
      (`false` and `true`) value from earlier toolsets to an enumeration
      consisting of the possible values `No`, `Debug`, and `DebugFastLink`.
      
      We first adapted to this in commit v3.4.2~2^2 (VS: Fix VS 2015 .vcxproj
      file value for GenerateDebugInformation, 2016-01-08), but that broke
      older toolsets that still expected the boolean.  Then commit
      v3.6.0-rc1~295^2~1 (VS: Fix VS 2015 .vcxproj debug setting for older
      toolsets, 2016-02-24) added a hack to fix up the value based on the
      toolset in use.  Several follow-up commits fixed this for more older
      toolsets because our flag table was at the time based on the generator
      in use rather than the toolset in use.
      
      Since commit v3.8.0-rc1~396^2 (VS: Choose flag map based on the toolset
      name, 2016-10-17) we use a flag table based on the toolset, so the fixup
      hack should not be needed.  We had to keep it around only due to our
      default value for GenerateDebugInformation (`false` or `No`) still being
      based on the generator instead of the toolset.
      
      A VS 2015 update was released that changed the v140 toolset `link.xml`
      file back to using `false` and `true` for the `GenerateDebugInformation`
      enumeration variants previously known as `No` and `Debug`.  In order to
      know which pair to use, we need to parse the `link.xml` file for the
      current toolset.
      
      Switch back to using `false` and `true` unconditionally in our
      `GenerateDebugInformation` flag table entries and default value.  With
      that plus the toolset-based flag table, we now get incorrect values for
      `GenerateDebugInformation` only when using a v140 toolset from an older
      VS 2015 installation.  Detect this case by parsing `link.xml` and add
      special logic to convert `false` and `true` to `No` and `Debug` to
      satisfy the older toolset specification.
      Inspired-by: default avatarIan Hojnicki <nullref@live.com>
      Fixes: #17020
      ae44496e
  20. 09 May, 2017 1 commit
    • Brad King's avatar
      VS: Fix .vcxproj ProjectGuid element case · 776929b3
      Brad King authored
      The `.vcxproj` file format expects `ProjectGuid`, not `ProjectGUID`.
      The latter is expected by `.vcproj` files from VS 2008, so this was
      likely a typo when the VS 2010 generator was first introduced.
      
      Fixes: #11968
      776929b3
  21. 11 Apr, 2017 1 commit
    • Daniel Pfeifer's avatar
      Use quotes for non-system includes · 1d829c86
      Daniel Pfeifer authored
      Automate with:
      
      git grep -l '#include <cm_' -- Source \
        | xargs sed -i 's/#include <\(cm_.*\)>/#include "\1"/g'
      
      git grep -l '#include <cmsys/' -- Source \
        | xargs sed -i 's/#include <\(cmsys\/.*\)>/#include "\1"/g'
      
      git grep -l '#include <cm[A-Z]' -- Source \
        | xargs sed -i 's/#include <\(cm[A-Z].*\)>/#include "\1"/g'
      1d829c86
  22. 10 Mar, 2017 5 commits
  23. 15 Feb, 2017 1 commit
    • Brad King's avatar
      VS: Refactor generator toolset parsing · f773933f
      Brad King authored
      We parse `CMAKE_GENERATOR_TOOLSET` values of the forms:
      
      * `toolset`
      * `toolset,host=x64`
      * `host=x64`
      
      Generalize the parsing to support the forms:
      
      * `toolset`
      * `toolset[,key=value]*`
      * `key=value[,key=value]*`
      
      Disallow duplicate keys.  Require all but the first field to
      be of `key=value` form.
      f773933f
  24. 07 Feb, 2017 1 commit
  25. 16 Dec, 2016 1 commit
    • Iyyappa Murugandi's avatar
      VS: Use Visual Studio Installer to locate VS 2017 · c93e85d8
      Iyyappa Murugandi authored
      VS 2017 and later may no longer populate the Windows Registry entries
      CMake has traditionally used to find the VS installations.  This is
      because VS now supports having multiple installations of the same
      version.  The Visual Studio Installer tool provides a COM interface we
      can query to locate installations.
      c93e85d8
  26. 07 Dec, 2016 1 commit
    • Brad King's avatar
      VS: Fix standalone Windows7.1SDK toolset selection · 27431de1
      Brad King authored
      Since commit v3.7.0-rc1~142^2~1 (VS: Explicitly default to v100 toolset
      in Visual Studio 2010, 2016-07-21) we prefer to always set a platform
      toolset explicitly so that `CMAKE_VS_PLATFORM_TOOLSET` can be reported.
      However, the `v100` default for the VS 10 generator is not appropriate
      for all environments.  We fixed support for VS 2010 Express Edition in
      commit v3.7.0-rc1~142^2 (VS: Do not default to missing v100 64-bit
      toolset on VS 2010 Express, 2016-09-09).
      
      Fix support for the standalone Windows7.1SDK toolset environment by
      recognizing the `PlatformToolset` environment variable that it sets to
      `Windows7.1SDK` and using this as our default toolset instead.
      
      Closes: #16483
      27431de1
  27. 01 Dec, 2016 1 commit
    • Michael Stürmer's avatar
      VS: Add flag tables for C# · 9b06c226
      Michael Stürmer authored
      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.
      9b06c226
  28. 28 Nov, 2016 1 commit
  29. 27 Oct, 2016 1 commit
    • Brad King's avatar
      VS: Fix use of `Windows7.1SDK` 64-bit toolset with VS 2010 Express · 0caca40f
      Brad King authored
      Refactoring in commit 584ab528 (VS: Add internal API to get platform
      toolset as string, 2016-10-18) accidentally changed the semantics of the
      original `cmGlobalVisualStudio10Generator::GetPlatformToolset`
      implementation to return a pointer to an empty string instead of
      `nullptr` when no toolset is configured.  This broke cases that tested
      for `nullptr` to detect the lack of any specific toolset, such as the
      call in `Find64BitTools`.  Restore the `nullptr` return in this case.
      0caca40f
  30. 25 Oct, 2016 3 commits