1. 14 Mar, 2019 1 commit
    • Brad King's avatar
      VS: Fix x64 host recognition by x86 cmake process · 5c50eeaf
      Brad King authored
      In commit 57e48f16 (VS: Add Visual Studio 16 2019 generator,
      2019-01-09, v3.14.0-rc1~150^2) and commit 0fd742a6 (VS: Teach VS 2019
      generator to select host tools matching host arch, 2019-01-28,
      v3.14.0-rc1~63^2) we intended to select the `x64` target architecture
      and `x64` host tools by default on x64 host machines.  Fix detection
      of a x64 host when CMake itself is a 32-bit x86 process.
      
      The KWSys SystemInformation `Is64Bits` member is not set correctly,
      which led to this bug.  Pending investigation on the KWSys side,
      simply test ourselves via `IsWow64Process`.
      5c50eeaf
  2. 12 Mar, 2019 1 commit
    • Brad King's avatar
      VS: Revert "Use MSBuild matching toolset host architecture" · f3cedf38
      Brad King authored
      Revert commit da402a08 (VS: Use MSBuild matching toolset host
      architecture, 2019-01-28, v3.14.0-rc1~50^2).  Multiple people have
      reported that the 64-bit `amd64/msbuild` tool fails in cases that the
      32-bit `msbuild` works.  Drop our change pending further investigation
      and hopefully a fix to VS.
      
      Fixes: #18904, #19037
      Issue: #18219
      f3cedf38
  3. 19 Feb, 2019 1 commit
  4. 14 Feb, 2019 1 commit
    • Brad King's avatar
      VS: Fix validation of Windows 8.1 SDK · 5c26e3c5
      Brad King authored
      The check added by commit 0a29a311 (VS2017: Verify Windows 8.1 SDK
      before using it, 2017-04-25, v3.8.1~2^2) used the wrong path to
      `windows.h` within the SDK, leading to it never being detected.
      
      Fixes: #18923
      5c26e3c5
  5. 29 Jan, 2019 1 commit
    • Brad King's avatar
      VS: Use MSBuild matching toolset host architecture · da402a08
      Brad King authored
      VS 2017 and VS 2019 provide `amd64/MSBuild.exe` variants next to
      their `MSBuild.exe` tools.  When the 64-bit host toolchain is
      selected (e.g. via `host=x64`), select the 64-bit MSBuild too.
      
      Fixes: #18219
      da402a08
  6. 28 Jan, 2019 2 commits
  7. 24 Jan, 2019 1 commit
  8. 18 Jan, 2019 4 commits
  9. 16 Jan, 2019 1 commit
  10. 11 Jan, 2019 4 commits
  11. 10 Jan, 2019 2 commits
  12. 30 Dec, 2018 1 commit
  13. 28 Nov, 2018 1 commit
  14. 17 Sep, 2018 1 commit
  15. 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
  16. 29 May, 2018 1 commit
  17. 19 Oct, 2017 1 commit
    • Brad King's avatar
      VS: Select and save a VS 2017 instance persistently · 9ffb3538
      Brad King authored
      Visual Studio 2017 supports multiple instances installed on a single
      machine.  We use the Visual Studio Installer tool to enumerate instances
      and select one.  Once we select an instance for a given build tree, save
      the result in `CMAKE_GENERATOR_INSTANCE` so we can re-configure the tree
      with the same instance on future re-runs of CMake.
      
      Fixes: #17268
      9ffb3538
  18. 15 Sep, 2017 1 commit
    • Brad King's avatar
      Use C++11 override instead of CM_OVERRIDE · 0b33aee4
      Brad King authored
      We now require C++11 support including `override`.  Drop use of
      the old compatibility macro.  Convert references as follows:
      
          git grep -l CM_OVERRIDE -- '*.h' '*.hxx' '*.cxx' |
            xargs sed -i 's/CM_OVERRIDE/override/g'
      0b33aee4
  19. 28 Jun, 2017 1 commit
  20. 25 Apr, 2017 1 commit
    • Roger Leigh's avatar
      VS2017: Verify Windows 8.1 SDK before using it · 0a29a311
      Roger Leigh authored
      The detection logic added by commit v3.8.0-rc2~14^2 (VS2017: If Win 8.1
      SDK is not available, use Win 10 SDK, 2017-02-20) was incomplete.  It is
      possible for the Win 8.1 SDK registry entry to exist, and even the
      directory, but the header files to not actually be installed.  Teach
      `cmGlobalVisualStudio15Generator::IsWin81SDKInstalled` to verify that
      the `windows.h` header actually exists in the SDK directory.  We do this
      in `cmGlobalVisualStudio14Generator::GetWindows10SDKVersion` for the
      Windows 10 SDK already.
      
      Fixes: #16811
      0a29a311
  21. 21 Feb, 2017 1 commit
  22. 16 Dec, 2016 3 commits
  23. 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
  24. 29 Nov, 2016 1 commit
  25. 28 Nov, 2016 1 commit
  26. 25 Oct, 2016 1 commit
  27. 06 Oct, 2016 1 commit
  28. 27 Sep, 2016 1 commit
    • Brad King's avatar
      Simplify CMake per-source license notices · 86578ecc
      Brad King authored
      Per-source copyright/license notice headers that spell out copyright holder
      names and years are hard to maintain and often out-of-date or plain wrong.
      Precise contributor information is already maintained automatically by the
      version control tool.  Ultimately it is the receiver of a file who is
      responsible for determining its licensing status, and per-source notices are
      merely a convenience.  Therefore it is simpler and more accurate for
      each source to have a generic notice of the license name and references to
      more detailed information on copyright holders and full license terms.
      
      Our `Copyright.txt` file now contains a list of Contributors whose names
      appeared source-level copyright notices.  It also references version control
      history for more precise information.  Therefore we no longer need to spell
      out the list of Contributors in each source file notice.
      
      Replace CMake per-source copyright/license notice headers with a short
      description of the license and links to `Copyright.txt` and online information
      available from "https://cmake.org/licensing".  The online URL also handles
      cases of modules being copied out of our source into other projects, so we
      can drop our notices about replacing links with full license text.
      
      Run the `Utilities/Scripts/filter-notices.bash` script to perform the majority
      of the replacements mechanically.  Manually fix up shebang lines and trailing
      newlines in a few files.  Manually update the notices in a few files that the
      script does not handle.
      86578ecc
  29. 07 Sep, 2016 1 commit
    • Brad King's avatar
      VS15: Add Visual Studio 15 generator · bdc679a8
      Brad King authored
      Call the generator "Visual Studio 15" without any year because the
      preview version of VS 15 does not provide a year in the product name.
      
      Copy cmGlobalVisualStudio14Generator to cmGlobalVisualStudio15Generator
      and update version numbers accordingly.  Add the VS15 enumeration value.
      Note that we do not need to add a MSVC15 variable or v150 toolset
      because Visual Studio 15 comes with an updated version of the v140
      toolset and remains ABI-compatible.
      
      Teach tests VSExternalInclude, RunCMake.GeneratorPlatform, and
      RunCMake.GeneratorToolset to treat VS 15 as they do VS 10-14.
      
      Closes: #16143
      bdc679a8