1. 21 May, 2019 1 commit
  2. 31 Mar, 2019 1 commit
  3. 05 Mar, 2019 1 commit
  4. 28 Jan, 2019 1 commit
  5. 25 Jan, 2019 1 commit
  6. 10 Jan, 2019 4 commits
  7. 03 Jan, 2019 1 commit
  8. 02 Jan, 2019 1 commit
  9. 30 Dec, 2018 1 commit
  10. 28 Nov, 2018 1 commit
  11. 17 Sep, 2018 1 commit
    • Niels Dekker's avatar
      IPO: INTERPROCEDURAL_OPTIMIZATION (LTCG) for Visual Studio · 567fabe8
      Niels Dekker authored
      Add IPO support for Visual Studio (which is referred to by VS as
      "Link Time Code Generation" and "Whole Program Optimization"), for
      VS version >= 10.  This allows CMake/VS users to enable IPO by setting
      property `INTERPROCEDURAL_OPTIMIZATION`.
      
      Fixes: #16748
      567fabe8
  12. 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
  13. 01 Jun, 2018 1 commit
    • Kitware Robot's avatar
      Revise C++ coding style using clang-format-6.0 · d7204e64
      Kitware Robot authored
      Run the `clang-format.bash` script to update all our C and C++ code to a
      new style defined by `.clang-format`.  Use `clang-format` version 6.0.
      
      * If you reached this commit for a line in `git blame`, re-run the blame
        operation starting at the parent of this commit to see older history
        for the content.
      
      * See the parent commit for instructions to rebase a change across this
        style transition commit.
      d7204e64
  14. 29 May, 2018 1 commit
  15. 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
  16. 15 Dec, 2017 1 commit
  17. 14 Dec, 2017 1 commit
  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
    • 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. 10 Mar, 2017 4 commits
    • Brad King's avatar
      VS: Add placeholder CUDA flag tables · 041ebda2
      Brad King authored
      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.
      041ebda2
    • Brad King's avatar
      13433b13
    • Brad King's avatar
      VS: Provide an option to specify CUDA toolset version · 5164e9a6
      Brad King authored
      The NVIDIA CUDA Toolkit provides MSBuild toolset files for integration
      with Visual Studio.  Multiple versions may be installed so we need a way
      to tell our VS generators which CUDA toolset to use.  Extend the
      `CMAKE_GENERATOR_TOOLSET` specification to provide a `cuda=...` field
      specifying the version number.
      5164e9a6
    • Brad King's avatar
      VS: Find the MSBuild value for VCTargetsPath · 83bf980c
      Brad King authored
      Run MSBuild on a simple `.vcxproj` file to extract the location of the
      toolset definitions.  This will later be useful for looking at available
      BuildCustomizations.
      83bf980c
  21. 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
  22. 07 Feb, 2017 1 commit
  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. 25 Oct, 2016 3 commits
  25. 20 Oct, 2016 1 commit
  26. 14 Oct, 2016 1 commit
    • Brad King's avatar
      VS: Provide an option to use x64 host tools · d079e71c
      Brad King authored
      Visual Studio provides toolchains that are themselves built for 32-bit
      or 64-bit host architectures.  By default it uses the 32-bit tools, but
      it can be told to prefer the 64-bit tools on 64-bit hosts.  Extend the
      `CMAKE_GENERATOR_TOOLSET` specification to provide a way to request
      use of the 64-bit host tools.
      
      Closes: #15622
      d079e71c
  27. 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
  28. 16 May, 2016 1 commit
    • Kitware Robot's avatar
      Revise C++ coding style using clang-format · d9fd2f54
      Kitware Robot authored
      Run the `Utilities/Scripts/clang-format.bash` script to update
      all our C++ code to a new style defined by `.clang-format`.
      Use `clang-format` version 3.8.
      
      * If you reached this commit for a line in `git blame`, re-run the blame
        operation starting at the parent of this commit to see older history
        for the content.
      
      * See the parent commit for instructions to rebase a change across this
        style transition commit.
      d9fd2f54
  29. 26 Apr, 2016 2 commits
  30. 24 Oct, 2015 1 commit
  31. 05 Oct, 2015 1 commit