1. 11 Sep, 2018 1 commit
  2. 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.
  3. 19 Apr, 2018 1 commit
  4. 01 Apr, 2018 1 commit
  5. 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
  6. 29 Jan, 2018 1 commit
  7. 29 Nov, 2017 1 commit
    • Matt McCormick's avatar
      Ninja: add CMAKE_JOB_POOLS variable as default for JOBS_POOLS · 07185055
      Matt McCormick authored
      This enables configuration of build parallelism with the Ninja generator by
      passing arguments on the command line to CMake. For example,
        cmake \
          '-DCMAKE_JOB_POOLS:STRING=compile=5;link=2' \
  8. 25 Sep, 2017 1 commit
  9. 15 Sep, 2017 1 commit
  10. 12 Sep, 2017 1 commit
  11. 16 Aug, 2017 1 commit
    • Aaron Orenstein's avatar
      Performance: Add an index to Change cmLocalGenerator::GeneratorTargets. · af3fd6f2
      Aaron Orenstein authored
      Add an index to Change cmLocalGenerator::GeneratorTargets for faster lookup by
      Also changed a bunch of uses of cmLocalGenerator::GetGeneratorTargets() to take
      const references instead of copying the vector.
      Represent generator targets as a map (name -> target) to make name lookups more
      efficient instead of looping through the entire vector to find the desired one.
  12. 26 May, 2017 1 commit
  13. 15 May, 2017 1 commit
    • Brad King's avatar
      cmLocalCommonGenerator: Save CMAKE_BUILD_TYPE on construction · eeb47fbe
      Brad King authored
      Copy the value to our `ConfigName` member on construction to ensure it
      is available even to code paths that run before `Generate`.  We once
      needed to delay this lookup until `Generate` because the local
      generators were at one time created before `Configure`.  Now they are
      created at generate time which is late enough to expect
      `CMAKE_BUILD_TYPE` to be available.
      Without this, `cmGlobalUnixMakefileGenerator3::WriteConvenienceRules`
      causes use of `ConfigName` before it is populated which breaks use of
      source files that depend on the `$<CONFIG>` generator expression.
      Fixes: #16889
  14. 09 May, 2017 2 commits
    • Brad King's avatar
      Add options for separate compile and link sysroots · 53e89b6a
      Brad King authored
      Add `CMAKE_SYSROOT_COMPILE` and `CMAKE_SYSROOT_LINK` variables to as
      operation-specific alternatives to `CMAKE_SYSROOT`.  This will be useful
      for Android NDKs that compile and link with different sysroot values
      (e.g. `r14` with unified headers).
      Co-Author: Florent Castelli <florent.castelli@gmail.com>
    • Bernhard Burgermeister's avatar
      Ninja: Fix command concatenation on Windows · 5e0e03d9
      Bernhard Burgermeister authored
      Put commands that contain `||` into brackets to avoid early abort of
      execution by `cmd.exe` because `||` has higher precedence than `&&` in
      Add test to check for command execution after `||` as part of a
      parameter and as command separator.
      Fixes: #16850
  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
  16. 20 Apr, 2017 1 commit
  17. 08 Nov, 2016 1 commit
  18. 28 Oct, 2016 1 commit
  19. 19 Oct, 2016 3 commits
  20. 15 Oct, 2016 3 commits
    • Stephen Kelly's avatar
      cmRulePlaceholderExpander: Port clients to direct-use · b59b6dd9
      Stephen Kelly authored
      Add a factory function to cmLocalGenerator so that variableMappings can
      be provided from it, and so that Ninja can always have a hard-coded
    • Stephen Kelly's avatar
      cmLocalGenerator: Use a converter in rule replacement API · 46ad0d21
      Stephen Kelly authored
      The rule replacement API should not really be in cmLocalGenerator, but
      it was historically, and this coupled many other things together here
      too, such as output conversion.  Make the output converter a parameter
      so that rule replacement can be removed from cmLocalGenerator.
    • Stephen Kelly's avatar
      cmLocalGenerator: Remove the launcher from RuleVariables · 425cd167
      Stephen Kelly authored
      This one is not like the others as it doesn't participate in
      substitutions.  Keep ExpandRuleVariables doing only one thing and make
      callers responsible for inserting a launcher prefix, simplifying the
      code all-around.
      Remove now-obsolete InsertRuleLauncher method.
  21. 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
  22. 08 Oct, 2016 1 commit
  23. 07 Oct, 2016 2 commits
  24. 06 Oct, 2016 1 commit
  25. 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.
  26. 19 Sep, 2016 4 commits
  27. 03 Sep, 2016 1 commit
  28. 30 Aug, 2016 1 commit
  29. 27 Aug, 2016 3 commits