1. 19 Oct, 2016 3 commits
  2. 18 Oct, 2016 5 commits
  3. 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
  4. 19 Sep, 2016 4 commits
  5. 17 Sep, 2016 1 commit
  6. 18 Aug, 2016 1 commit
  7. 16 Aug, 2016 1 commit
  8. 18 Jul, 2016 1 commit
  9. 28 Jun, 2016 1 commit
  10. 10 Jun, 2016 1 commit
  11. 26 May, 2016 2 commits
    • Daniel Pfeifer's avatar
      Remove redundant c_str() calls. · 1b2bb933
      Daniel Pfeifer authored
      Run clang-tidy's readability-redundant-string-cstr checker.
      Ignore findings in kwsys.
      1b2bb933
    • Daniel Pfeifer's avatar
      Pass arguments that are not modified as const&. · 618fb23f
      Daniel Pfeifer authored
      Use clang-tidy's performance-unnecessary-value-param checker to find
      value parameter declarations of expensive to copy types that are not
      modified inside the function.  Ignore findings in kwsys.
      After applying the fix-its, manually change `const T&` to `T const&`.
      618fb23f
  12. 16 May, 2016 1 commit
    • Kitware Robot's avatar
      Revise C++ coding style using clang-format · d9fd2f54
      Kitware Robot authored and Brad King's avatar Brad King committed
      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
  13. 29 Apr, 2016 1 commit
    • Brad King's avatar
      Format include directive blocks and ordering with clang-format · e1c77472
      Brad King authored
      
      
      Sort include directives within each block (separated by a blank line) in
      lexicographic order (except to prioritize `sys/types.h` first).  First
      run `clang-format` with the config file:
      
          ---
          SortIncludes: false
          ...
      
      Commit the result temporarily.  Then run `clang-format` again with:
      
          ---
          SortIncludes: true
          IncludeCategories:
            - Regex:    'sys/types.h'
              Priority: -1
          ...
      
      Commit the result temporarily.  Start a new branch and cherry-pick the
      second commit.  Manually resolve conflicts to preserve indentation of
      re-ordered includes.  This cleans up the include ordering without
      changing any other style.
      
      Use the following command to run `clang-format`:
      
          $ git ls-files -z -- \
              '*.c' '*.cc' '*.cpp' '*.cxx' '*.h' '*.hh' '*.hpp' '*.hxx' |
            egrep -z -v '(Lexer|Parser|ParserHelper)\.' |
            egrep -z -v '^Source/cm_sha2' |
            egrep -z -v '^Source/(kwsys|CursesDialog/form)/' |
            egrep -z -v '^Utilities/(KW|cm).*/' |
            egrep -z -v '^Tests/Module/GenerateExportHeader' |
            egrep -z -v '^Tests/RunCMake/CommandLine/cmake_depends/test_UTF-16LE.h' |
            xargs -0 clang-format -i
      
      This selects source files that do not come from a third-party.
      Inspired-by: Daniel Pfeifer's avatarDaniel Pfeifer <daniel@pfeifer-mail.de>
      e1c77472
  14. 18 Apr, 2016 2 commits
    • Brad King's avatar
      cmState: Remove unused entry point fields from snapshot data · 563bf9dd
      Brad King authored
      This information is now kept in cmMakefile::Backtrace.
      563bf9dd
    • Brad King's avatar
      cmListFileBacktrace: Refactor storage to provide efficient value semantics · 7c36d206
      Brad King authored
      Since commit v3.4.0-rc1~321^2~2 (Genex: Store a backtrace, not a pointer
      to one, 2015-07-08) we treat cmListFileBacktrace instances as
      lightweight values.  This was true at the time only because the
      backtrace information was kept in the cmState snapshot hierarchy.
      However, that forced us to accumulate a lot of otherwise short-lived
      snapshots just to have the backtrace fields available for reference by
      cmListFileBacktrace instances.  Recent refactoring made backtrace
      instances independent of the snapshot hierarchy to avoid accumulating
      short-lived snapshots.  This came at the cost of making backtrace values
      heavy again, leading to lots of string coying and slower execution.
      
      Fix this by refactoring cmListFileBacktrace to provide value semantics
      with efficient shared storage underneath.  Teach cmMakefile to maintain
      its call stack using an instance of cmListFileBacktrace.  This approach
      allows the current backtrace to be efficiently saved whenever it is
      needed.
      
      Also teach cmListFileBacktrace the notion of a file-level scope.  This
      is useful for messages about the whole file (e.g. during parsing) that
      are not specific to any line within it.  Push the CMakeLists.txt scope
      for each directory and never pop it.  This ensures that we always have
      some context information and simplifies cmMakefile::IssueMessage.
      Push/pop a file-level scope as each included file is processed.  This
      supersedes cmParseFileScope and improves diagnostic message context
      information in a few places.  Fix the corresponding test cases to expect
      the improved output.
      7c36d206
  15. 15 Apr, 2016 3 commits
    • Stafen Teleman's avatar
      Solaris: Add a CMAKE_HOST_SOLARIS variable (#16061) · 5dc6cfd6
      Stafen Teleman authored and Brad King's avatar Brad King committed
      5dc6cfd6
    • Brad King's avatar
      cmState: Avoid accumulating snapshot storage for backtraces · 1f6bd8a9
      Brad King authored
      Changes during post-3.3/pre-3.4 development refactored storage of most
      configure-time information, including variable bindings and function
      scopes.  All scopes (even short-lived) were kept persistently for
      possible future debugging features, causing huge accumulated memory
      usage.  This was mostly addressed by commit v3.4.1~4^2 (cmState: Avoid
      accumulating snapshot storage for short-lived scopes, 2015-11-24).
      
      Since then we still keep short-lived scopes when they are needed for a
      backtrace.  This is because since commit v3.4.0-rc1~378^2
      (cmListFileBacktrace: Implement in terms of cmState::Snapshot,
      2015-05-29) backtraces have been lightweight objects that simply point
      into the snapshot tree.  While the intention of this approach was to
      avoid duplicating the call stack file path strings, the cost turned out
      to be holding on to the entire call stack worth of scope snapshots,
      which is much worse.
      
      Furthermore, since commit v3.4.0-rc2~1^2 (cmIfCommand: Issue CMP0054
      warning with appropriate context, 2015-10-20) all conditions used in
      `if()` commands hold a backtrace for use in diagnostic messages.  Even
      though the backtrace is short-lived it still causes the scope snapshot
      to be kept.  This means that code like
      
          function(foo)
            if(0)
            endif()
          endfunction()
      
          foreach(i RANGE 1000000)
            foo()
          endforeach()
      
      accumulates storage for the function call scope snapshots.
      
      Fix this by partially reverting commit v3.4.0-rc1~378^2 and saving the
      entire call stack during cmListFileBacktrace construction.  This way
      we can avoid keeping short-lived scope snapshot storage in all cases.
      1f6bd8a9
    • Brad King's avatar
      cmState: Add Snapshot method to get bottom of call stack · 18b6676b
      Brad King authored
      The bottom of the call stack is always a long-lived snapshot and can be
      saved for later use with cmOutputConverter.
      18b6676b
  16. 12 Apr, 2016 1 commit
  17. 25 Nov, 2015 3 commits
  18. 24 Nov, 2015 2 commits
    • Brad King's avatar
      cmState: Enforce policy scope balancing around variable scopes · 32edac6f
      Brad King authored
      Everywhere we use cmMakefile::ScopePushPop to manage variable scopes
      also expects policy scopes to be balanced.  There is no place that we
      use cmMakefile::PolicyPushPop without also using ScopePushPop.  Relieve
      PolicyPushPop of responsibility for policy scope balance checks by
      moving it to ScopePushPop.
      32edac6f
    • Brad King's avatar
      cmState: Skip variable scope snapshots to avoid call stack duplicates · 2e28c619
      Brad King authored
      Since commit v3.4.0-rc1~179^2~1 (cmState: Add a VariableScope snapshot
      type, 2015-08-23) the snapshot stack may have a VariableScopeType entry.
      Skip over these when constructing the call stack, just as we do for
      policy scopes.  Otherwise we report the command causing the variable
      scope to be entered twice (e.g. find_package while loading a package
      version file).
      2e28c619
  19. 14 Oct, 2015 1 commit
  20. 13 Oct, 2015 5 commits