1. 15 Dec, 2020 1 commit
  2. 03 Sep, 2020 1 commit
    • Kitware Robot's avatar
      Modernize: Use #pragma once in all header files · bdca8b01
      Kitware Robot authored
      #pragma once is a widely supported compiler pragma, even though it is
      not part of the C++ standard. Many of the issues keeping #pragma once
      from being standardized (distributed filesystems, build farms, hard
      links, etc.) do not apply to CMake - it is easy to build CMake on a
      single machine. CMake also does not install any header files which can
      be consumed by other projects (though cmCPluginAPI.h has been
      deliberately omitted from this conversion in case anyone is still using
      it.) Finally, #pragma once has been required to build CMake since at
      least August 2017 (7f29bbe6 enabled server mode unconditionally, which
      had been using #pragma once since September 2016 (b13d3e0d)). The fact
      that we now require C++11 filters out old compilers, and it is unlikely
      that there is a compiler which supports C++11 but does not support
      #pragma once.
      bdca8b01
  3. 24 Jul, 2020 1 commit
  4. 22 Jan, 2020 1 commit
  5. 13 Dec, 2019 2 commits
  6. 21 Sep, 2019 1 commit
  7. 04 Sep, 2019 1 commit
  8. 14 May, 2019 1 commit
  9. 06 Feb, 2018 1 commit
    • Roger Leigh's avatar
      Ninja: Generate scripts for long custom command sequences · 22e8b3af
      Roger Leigh authored
      Ninja runs just one command line for every build statement, so the Ninja
      generator needs to `&&`-chain multiple commands together into one long
      string.  For long custom command sequences this can exceed the maximum
      command-line length for the operating system.  In such cases, write the
      commands out to a script instead, and then run the script from Ninja's
      one command line.
      
      Co-Author: Brad King <brad.king@kitware.com>
      Fixes: #15612
      22e8b3af
  10. 29 Jan, 2018 1 commit
  11. 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
  12. 30 Aug, 2017 1 commit
  13. 26 Aug, 2017 1 commit
  14. 24 Aug, 2017 1 commit
  15. 21 Apr, 2017 1 commit
    • Ben Boeckel's avatar
      ninja: break unnecessary target dependencies · adf60b28
      Ben Boeckel authored
      Previously, given two libraries, X and Y where X depends on Y, all
      object compilations of X would require the Y library to have been linked
      before being compiled. This is not necessary and can instead be loosened
      such that object compilations of X only depend on the order-only
      dependencies of Y to be completed. This is to ensure that generated
      sources, headers, custom commands, etc. are completed before X starts to
      compile its objects.
      
      This should help build performance in projects with many libraries which
      cause a deep library dependency chain. Previously, a library at the
      bottom would not start compilation until after all other libraries
      completed, but now only its link step needs to wait and its compilation
      jobs can be run in parallel with other tasks.
      
      Fixes: #15555
      adf60b28
  16. 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
  17. 08 Nov, 2016 1 commit
  18. 15 Oct, 2016 2 commits
  19. 10 Oct, 2016 1 commit
    • Stephen Kelly's avatar
      cmLinkLineComputer: Extract from cmLocalGenerator · 5b361fdd
      Stephen Kelly authored
      CMake has several classes which have too many responsibilities.
      cmLocalGenerator is one of them.  Start to extract the link line
      computation.  Create generator-specific implementations of the interface
      to account for generator-specific behavior.
      
      Unfortunately MSVC60 has different behavior to everything else and CMake
      still generates makefiles for it.  Isolate it with MSVC60-specific
      names.
      5b361fdd
  20. 06 Oct, 2016 1 commit
  21. 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 lin...
      86578ecc
  22. 03 Sep, 2016 1 commit
  23. 28 Jun, 2016 1 commit
  24. 27 Jun, 2016 1 commit
  25. 25 May, 2016 1 commit
    • Daniel Pfeifer's avatar
      Use enums defined in cmOutputConverter using their fully qualified name. · 25d1ef64
      Daniel Pfeifer authored
      Mostly automated:
      
      values=("RelativeRoot" "NONE" "FULL" "HOME" "START" "HOME_OUTPUT" "START_OUTPUT"
              "OutputFormat" "UNCHANGED" "MAKERULE" "SHELL" "WATCOMQUOTE" "RESPONSE"
              "FortranFormat" "FortranFormatNone" "FortranFormatFixed" "FortranFormatFree")
      for i in "${values[@]}"; do git grep -l cmLocalGenerator::$i | xargs sed -i "s|cmLocalGenerator::$i|cmOutputConverter::$i|g"; done
      25d1ef64
  26. 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
  27. 29 Apr, 2016 1 commit
    • Brad King's avatar
      Source: Stabilize include order · 180538c7
      Brad King authored
      Each source file has a logical first include file.  Include it in an
      isolated block so that tools that sort includes do not move them.
      180538c7
  28. 11 Feb, 2016 1 commit
  29. 24 Oct, 2015 1 commit
  30. 14 Oct, 2015 1 commit
  31. 25 Sep, 2015 1 commit
    • Brad King's avatar
      Ninja: Centralize path conversion in global generator (#15757) · 6e2a4087
      Brad King authored
      In the Ninja generator we run all build rules from the top of the build
      tree rather than changing into each subdirectory.  Therefore we convert
      all paths relative to the HOME_OUTPUT directory.  However, the Convert
      method on cmLocalGenerator restricts relative path conversions to avoid
      leaving the build tree with a "../" sequence.  Therefore conversions
      performed for "subdirectories" that are outside the top of the build
      tree always use full paths while conversions performed for
      subdirectories that are inside the top of the build tree may use
      relative paths to refer to the same files.
      
      Since Ninja always runs rules from the top of the build tree we should
      convert them using only the top-level cmLocalGenerator in order to
      remain consistent.  Also extend the test suite with a case that fails
      without this fix.
      6e2a4087
  32. 28 Aug, 2015 2 commits
  33. 09 Jul, 2015 2 commits
  34. 04 Jun, 2015 1 commit
  35. 27 May, 2015 1 commit
    • Stephen Kelly's avatar
      cmLocalGenerator: Require a valid cmState::Snapshot in the ctor. · 3b880a07
      Stephen Kelly authored
      Refactor the local generator creation API to accept a
      cmState::Snapshot.  Adjust MakeLocalGenerator to use the 'current'
      snapshot in cases where there is no parent.  Create the snapshot
      for subdirectories in cmMakefile::AddSubdirectory.
      
      This means that snapshots are now created at the point of extending the tree,
      as appropriate, and independently of the cmLocalGenerator and cmMakefile they
      represent the state for.
      3b880a07
  36. 23 May, 2015 1 commit
    • Stephen Kelly's avatar
      Ninja: Remove some bogus comments. · 444bc349
      Stephen Kelly authored
      The virtual methods are overrides not overloads, the constructor
      is no longer a default variant, the destructor and GetCMakeInstance
      comments add no value, only a typo.
      444bc349