1. 08 Nov, 2016 1 commit
  2. 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
  3. 03 Sep, 2016 1 commit
  4. 17 May, 2016 1 commit
  5. 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
  6. 01 Feb, 2016 1 commit
  7. 20 Jan, 2016 1 commit
    • Milian Wolff's avatar
      Remove temporary allocations when calling cmHasLiteral{Suf,Pre}fix. · 70788e92
      Milian Wolff authored
      When the first argument passed is a std::string, we need to take it
      by const&, otherwise we copy the string and trigger a temporary
      allocation. This patch removes a few 10k temporary allocations when
      running the CMake daemon on the KDevelop build dir.
      
      This hotspot was found with heaptrack.
      70788e92
  8. 18 Dec, 2015 1 commit
  9. 22 Jul, 2015 4 commits
  10. 10 Mar, 2015 5 commits
  11. 24 Feb, 2015 8 commits
  12. 23 Feb, 2015 2 commits
  13. 20 Feb, 2015 5 commits
  14. 17 Feb, 2015 2 commits
  15. 15 Feb, 2015 3 commits
    • Stephen Kelly's avatar
      cmAlgorithms: Add cmRemoveDuplicates algorithm. · cebeed24
      Stephen Kelly authored
      Start by creating a vector to hold a unique values of the input range.  We
      expect that in most cases, there will be relatively few duplicates, so
      reserving enough memory for a complete copy is worthwhile.  Unlike a solution
      involving a std::set, this algorithm allocates all the memory it needs
      in one go and in one place, so it is more cache friendly.
      
      Populate the unique copy with a lower_bound insert algorithm and record the
      indices of duplicates.  This is the same complexity as the std::set insert
      algorithm, but without the need to allocate memory on the heap and other
      disadvantages of std::set.
      
      Remove the duplicates with the cmRemoveIndices algorithm.
      cebeed24
    • Stephen Kelly's avatar
      cmAlgorithms: Add cmRemoveMatching algorithm. · 050958a3
      Stephen Kelly authored
      Implement it in terms of std::remove_if with a binary search through
      a matching range.
      050958a3
    • Stephen Kelly's avatar
      cmAlgorithms: Implement algorithm for removing indexes. · 0b5cf0da
      Stephen Kelly authored
      Implement ContainerAlgorithms::RemoveN to remove N elements to the
      end of a container by rotating.  The rotate is implemented in terms
      of the efficient swap algorithm, optimized even more in the standard
      library implementation when the compiler supports the rvalue-references
      feature to move elements.  Implement cmRemoveN with a Range API
      for completeness.
      
      std::rotate in C++11 is specified to return an iterator, but
      c++98 specifies it to return void.  libstdc++ 5.0 will be the first
      version to have the correct return type.  Implement
      ContainerAlgorithms::Rotate in terms of std::rotate and return the
      correct iterator from it.  While std::rotate requires forward iterators,
       this workaround means cmRotate requires bidirectional iterators.  As
      most of CMake uses random access iterators anyway, this should not
      be a problem.
      
      Implement cmRemoveIndices in terms of the RemoveN algorithm, such
      that each element which is not removed is rotated only once.  This
      can not use the cmRemoveN range-API algorithm because that would
      require creating a new range, but the range must be taken by reference
      and so it can't be a temporary.
      
      These remove algorithms are not part of the STL and I couldn't find them
      anywhere else either.
      0b5cf0da
  16. 11 Feb, 2015 2 commits
  17. 10 Feb, 2015 1 commit