[Cmake-commits] CMake branch, master, updated. v3.5.1-449-g003d4e5
This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "CMake". The branch, master has been updated via 003d4e57521a876b7340ed164a737d99eabb164d (commit) from f5da19edd00e05eb39332fe416f0b2bb77abadaa (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log - https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=003d4e57521a876b7340ed164a737d99eabb164d commit 003d4e57521a876b7340ed164a737d99eabb164d Author: Kitware Robot AuthorDate: Thu Apr 14 00:01:06 2016 -0400 Commit: Kitware Robot CommitDate: Thu Apr 14 00:01:06 2016 -0400 CMake Nightly Date Stamp diff --git a/Source/CMakeVersion.cmake b/Source/CMakeVersion.cmake index 1edf6b4..a42df4f 100644 --- a/Source/CMakeVersion.cmake +++ b/Source/CMakeVersion.cmake @@ -1,5 +1,5 @@ # CMake version number components. set(CMake_VERSION_MAJOR 3) set(CMake_VERSION_MINOR 5) -set(CMake_VERSION_PATCH 20160413) +set(CMake_VERSION_PATCH 20160414) #set(CMake_VERSION_RC 1) --- Summary of changes: Source/CMakeVersion.cmake |2 +- 1 file changed, 1 insertion(+), 1 deletion(-) hooks/post-receive -- CMake ___ Cmake-commits mailing list Cmake-commits@cmake.org http://public.kitware.com/mailman/listinfo/cmake-commits
[Cmake-commits] CMake branch, next, updated. v3.5.1-926-g273c68fe
This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "CMake". The branch, next has been updated via 273c68fe269b62f07081208763f77e7d2dbb8b5b (commit) via 6620b020665c65153146ac6ea87ed06046db4244 (commit) via 5db66c80eb39bf0113c60984a33f77d8e6f4d729 (commit) from 8c2d200d987eaf4f4261e65990b2feee41c328b3 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log - https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=273c68fe269b62f07081208763f77e7d2dbb8b5b commit 273c68fe269b62f07081208763f77e7d2dbb8b5b Merge: 8c2d200 6620b02 Author: Brad King AuthorDate: Wed Apr 13 10:48:20 2016 -0400 Commit: CMake Topic Stage CommitDate: Wed Apr 13 10:48:20 2016 -0400 Merge topic 'refactor-cmListFileBacktrace' into next 6620b020 cmState: Avoid accumulating snapshot storage for backtraces 5db66c80 cmState: Add Snapshot method to get bottom of call stack https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=6620b020665c65153146ac6ea87ed06046db4244 commit 6620b020665c65153146ac6ea87ed06046db4244 Author: Brad King AuthorDate: Tue Apr 12 17:07:08 2016 -0400 Commit: Brad King CommitDate: Wed Apr 13 10:00:59 2016 -0400 cmState: Avoid accumulating snapshot storage for backtraces 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 100) 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. diff --git a/Source/cmListFileCache.cxx b/Source/cmListFileCache.cxx index d5d0184..f198ac3 100644 --- a/Source/cmListFileCache.cxx +++ b/Source/cmListFileCache.cxx @@ -400,13 +400,40 @@ bool cmListFileParser::AddArgument(cmListFileLexer_Token* token, cmListFileBacktrace::cmListFileBacktrace(cmState::Snapshot snapshot, cmCommandContext const& cc) - : Context(cc) - , Snapshot(snapshot) + : Snapshot(snapshot) { - if (this->Snapshot.IsValid()) + if (!this->Snapshot.IsValid()) +{ +return; +} + + // Record the entire call stack now so that the `Snapshot` we + // save for later refers to a long-lived scope. This avoids + // having to keep short-lived scopes around just to extract + // their backtrace information later. + + cmListFileContext lfc = +cmListFileContext::FromCommandContext( + cc, this->Snapshot.GetExecutionListFile()); + this->push_back(lfc); + + cmState::Snapshot parent = this->Snapshot.GetCallStackParent(); + while (parent.IsValid()) { -this->Snapshot.Keep(); +lfc.Name = this->Snapshot.GetEntryPointCommand(); +lfc.Line = this->Snapshot.GetEntryPointLine(); +lfc.FilePath = parent.GetExecutionListFile(); +if (lfc.FilePath.empty()) + { + break; + } +this->push_back(lfc); + +this->Snapshot = parent; +parent = parent.GetCallStackParent(); } + + this->Snapshot = this->Snapshot.GetCallStackBottom(); } cmListFileBacktrace::~cmListFileBacktrace() @@ -415,48 +442,30 @@ cmListFileBacktrace::~cmListFileBacktrace() void cmListFileBacktrace::PrintTitle(std::ostream& out) const { - if (!this->Snapshot.IsValid()) + if (this->empty())
[Cmake-commits] CMake branch, next, updated. v3.5.1-923-g8c2d200
This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "CMake". The branch, next has been updated via 8c2d200d987eaf4f4261e65990b2feee41c328b3 (commit) via f5da19edd00e05eb39332fe416f0b2bb77abadaa (commit) via eae4cee0b54502c87fdb219b200a048082e0cb79 (commit) via 6f2cc120f091c1c8461650db4fe7729424d33bea (commit) via 1dc78fecc774822b0f7fbdc84805fcbf5a0a32cf (commit) via d0b2ec3e713b7b90f78ec56ca4e1eebffb328b93 (commit) from 8da2c33e96b2e118cca05e31e895c52b62b44345 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log - https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=8c2d200d987eaf4f4261e65990b2feee41c328b3 commit 8c2d200d987eaf4f4261e65990b2feee41c328b3 Merge: 8da2c33 f5da19e Author: Brad King AuthorDate: Wed Apr 13 09:58:39 2016 -0400 Commit: Brad King CommitDate: Wed Apr 13 09:58:39 2016 -0400 Merge branch 'master' into next --- Summary of changes: Source/CMakeVersion.cmake |2 +- 1 file changed, 1 insertion(+), 1 deletion(-) hooks/post-receive -- CMake ___ Cmake-commits mailing list Cmake-commits@cmake.org http://public.kitware.com/mailman/listinfo/cmake-commits
[Cmake-commits] CMake branch, master, updated. v3.5.1-448-gf5da19e
This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "CMake". The branch, master has been updated via f5da19edd00e05eb39332fe416f0b2bb77abadaa (commit) via c54ed7813fa4efe2c6c95b6ba75c02b78b601a26 (commit) from eae4cee0b54502c87fdb219b200a048082e0cb79 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log - https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=f5da19edd00e05eb39332fe416f0b2bb77abadaa commit f5da19edd00e05eb39332fe416f0b2bb77abadaa Merge: eae4cee c54ed78 Author: Brad King AuthorDate: Wed Apr 13 09:58:21 2016 -0400 Commit: CMake Topic Stage CommitDate: Wed Apr 13 09:58:21 2016 -0400 Merge topic 'cmState-rename-include-snapshot' c54ed781 cmState: Rename CallStack snapshots to IncludeFile --- Summary of changes: Source/cmMakefile.cxx |2 +- Source/cmState.cxx| 10 +- Source/cmState.h | 10 +- 3 files changed, 11 insertions(+), 11 deletions(-) hooks/post-receive -- CMake ___ Cmake-commits mailing list Cmake-commits@cmake.org http://public.kitware.com/mailman/listinfo/cmake-commits
[Cmake-commits] CMake branch, master, updated. v3.5.1-446-geae4cee
This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "CMake". The branch, master has been updated via eae4cee0b54502c87fdb219b200a048082e0cb79 (commit) via bd581a373373ee9807fcab35dd3e83334b73174b (commit) via 82ef90fcfccb1eaf53e4d15884ff3464aa9072a3 (commit) from 6f2cc120f091c1c8461650db4fe7729424d33bea (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log - https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=eae4cee0b54502c87fdb219b200a048082e0cb79 commit eae4cee0b54502c87fdb219b200a048082e0cb79 Merge: 6f2cc12 bd581a3 Author: Brad King AuthorDate: Wed Apr 13 09:58:18 2016 -0400 Commit: CMake Topic Stage CommitDate: Wed Apr 13 09:58:18 2016 -0400 Merge topic 'try_compile-config-flags' bd581a37 try_compile: Honor CMAKE__FLAGS_ changes (#16054) 82ef90fc cmCoreTryCompile: Factor out config lookup for re-use --- Summary of changes: Help/release/dev/try_compile-config-flags.rst |7 +++ Source/cmCoreTryCompile.cxx | 13 +++-- Tests/RunCMake/try_compile/CompileFlags.cmake | 17 + Tests/RunCMake/try_compile/RunCMakeTest.cmake |1 + Tests/RunCMake/try_compile/src.c |3 +++ 5 files changed, 39 insertions(+), 2 deletions(-) create mode 100644 Help/release/dev/try_compile-config-flags.rst create mode 100644 Tests/RunCMake/try_compile/CompileFlags.cmake hooks/post-receive -- CMake ___ Cmake-commits mailing list Cmake-commits@cmake.org http://public.kitware.com/mailman/listinfo/cmake-commits
[Cmake-commits] CMake branch, master, updated. v3.5.1-443-g6f2cc12
This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "CMake". The branch, master has been updated via 6f2cc120f091c1c8461650db4fe7729424d33bea (commit) via 875490545da19859a4787f71422515ddefeec401 (commit) from 1dc78fecc774822b0f7fbdc84805fcbf5a0a32cf (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log - https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=6f2cc120f091c1c8461650db4fe7729424d33bea commit 6f2cc120f091c1c8461650db4fe7729424d33bea Merge: 1dc78fe 8754905 Author: Brad King AuthorDate: Wed Apr 13 09:58:14 2016 -0400 Commit: CMake Topic Stage CommitDate: Wed Apr 13 09:58:14 2016 -0400 Merge topic 'FindMPI-docs' 87549054 FindMPI: Improve documentation formatting --- Summary of changes: Modules/FindMPI.cmake | 27 +++ 1 file changed, 15 insertions(+), 12 deletions(-) hooks/post-receive -- CMake ___ Cmake-commits mailing list Cmake-commits@cmake.org http://public.kitware.com/mailman/listinfo/cmake-commits
[Cmake-commits] CMake branch, master, updated. v3.5.1-441-g1dc78fe
This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "CMake". The branch, master has been updated via 1dc78fecc774822b0f7fbdc84805fcbf5a0a32cf (commit) via 5e62444cff5ead280a111c116a3fe810181379cf (commit) from d0b2ec3e713b7b90f78ec56ca4e1eebffb328b93 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log - https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=1dc78fecc774822b0f7fbdc84805fcbf5a0a32cf commit 1dc78fecc774822b0f7fbdc84805fcbf5a0a32cf Merge: d0b2ec3 5e62444 Author: Brad King AuthorDate: Wed Apr 13 09:58:08 2016 -0400 Commit: CMake Topic Stage CommitDate: Wed Apr 13 09:58:08 2016 -0400 Merge topic 'clang-tidy' 5e62444c Add options to run clang-tidy with the compiler --- Summary of changes: Help/manual/cmake-properties.7.rst |1 + Help/manual/cmake-variables.7.rst |1 + ...NCLUDE_WHAT_YOU_USE.rst => LANG_CLANG_TIDY.rst} |8 +- Help/release/dev/clang-tidy.rst|7 ++ ...ILER_LAUNCHER.rst => CMAKE_LANG_CLANG_TIDY.rst} |6 +- Source/cmMakefileTargetGenerator.cxx | 19 - Source/cmNinjaTargetGenerator.cxx | 18 - Source/cmTarget.cxx|2 + Source/cmcmd.cxx | 80 +++- Tests/RunCMake/CMakeLists.txt |2 + Tests/RunCMake/ClangTidy/C-Build-stdout.txt|1 + Tests/RunCMake/ClangTidy/C-launch-Build-stdout.txt |1 + .../{CompilerLauncher => ClangTidy}/C-launch.cmake |0 Tests/RunCMake/ClangTidy/C.cmake |3 + .../{ToolchainFile => ClangTidy}/CMakeLists.txt|0 Tests/RunCMake/ClangTidy/CXX-Build-stdout.txt |1 + .../RunCMake/ClangTidy/CXX-launch-Build-stdout.txt |1 + .../CXX-launch.cmake |0 Tests/RunCMake/ClangTidy/CXX.cmake |3 + .../RunCMakeTest.cmake | 12 +-- .../ClangTidy}/main.c |0 .../{CompilerLauncher => ClangTidy}/main.cxx |0 .../CommandLine/E___run_iwyu-no-iwyu-stderr.txt|2 +- Tests/RunCMake/pseudo_tidy.c | 16 24 files changed, 143 insertions(+), 41 deletions(-) copy Help/prop_tgt/{LANG_INCLUDE_WHAT_YOU_USE.rst => LANG_CLANG_TIDY.rst} (63%) create mode 100644 Help/release/dev/clang-tidy.rst copy Help/variable/{CMAKE_LANG_COMPILER_LAUNCHER.rst => CMAKE_LANG_CLANG_TIDY.rst} (50%) create mode 100644 Tests/RunCMake/ClangTidy/C-Build-stdout.txt create mode 100644 Tests/RunCMake/ClangTidy/C-launch-Build-stdout.txt copy Tests/RunCMake/{CompilerLauncher => ClangTidy}/C-launch.cmake (100%) create mode 100644 Tests/RunCMake/ClangTidy/C.cmake copy Tests/RunCMake/{ToolchainFile => ClangTidy}/CMakeLists.txt (100%) create mode 100644 Tests/RunCMake/ClangTidy/CXX-Build-stdout.txt create mode 100644 Tests/RunCMake/ClangTidy/CXX-launch-Build-stdout.txt copy Tests/RunCMake/{CompilerLauncher => ClangTidy}/CXX-launch.cmake (100%) create mode 100644 Tests/RunCMake/ClangTidy/CXX.cmake copy Tests/RunCMake/{IncludeWhatYouUse => ClangTidy}/RunCMakeTest.cmake (75%) copy Tests/{CMakeOnly/LinkInterfaceLoop => RunCMake/ClangTidy}/main.c (100%) copy Tests/RunCMake/{CompilerLauncher => ClangTidy}/main.cxx (100%) create mode 100644 Tests/RunCMake/pseudo_tidy.c hooks/post-receive -- CMake ___ Cmake-commits mailing list Cmake-commits@cmake.org http://public.kitware.com/mailman/listinfo/cmake-commits
[Cmake-commits] CMake branch, next, updated. v3.5.1-917-g8da2c33
This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "CMake". The branch, next has been updated via 8da2c33e96b2e118cca05e31e895c52b62b44345 (commit) via 5e62444cff5ead280a111c116a3fe810181379cf (commit) from eaadfd357c9a6a438f642dd892b8bea771279a90 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log - https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=8da2c33e96b2e118cca05e31e895c52b62b44345 commit 8da2c33e96b2e118cca05e31e895c52b62b44345 Merge: eaadfd3 5e62444 Author: Brad King AuthorDate: Wed Apr 13 09:56:31 2016 -0400 Commit: CMake Topic Stage CommitDate: Wed Apr 13 09:56:31 2016 -0400 Merge topic 'clang-tidy' into next 5e62444c Add options to run clang-tidy with the compiler https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=5e62444cff5ead280a111c116a3fe810181379cf commit 5e62444cff5ead280a111c116a3fe810181379cf Author: Daniel Pfeifer AuthorDate: Fri Apr 8 22:09:27 2016 +0200 Commit: Brad King CommitDate: Wed Apr 13 09:56:10 2016 -0400 Add options to run clang-tidy with the compiler Create a _CLANG_TIDY target property (initialized by a CMAKE__CLANG_TIDY variable) to specify a clang-tidy command line to be run along with the compiler. diff --git a/Help/manual/cmake-properties.7.rst b/Help/manual/cmake-properties.7.rst index 73d1142..3403dcd 100644 --- a/Help/manual/cmake-properties.7.rst +++ b/Help/manual/cmake-properties.7.rst @@ -197,6 +197,7 @@ Properties on Targets /prop_tgt/JOB_POOL_COMPILE /prop_tgt/JOB_POOL_LINK /prop_tgt/LABELS + /prop_tgt/LANG_CLANG_TIDY /prop_tgt/LANG_COMPILER_LAUNCHER /prop_tgt/LANG_INCLUDE_WHAT_YOU_USE /prop_tgt/LANG_VISIBILITY_PRESET diff --git a/Help/manual/cmake-variables.7.rst b/Help/manual/cmake-variables.7.rst index 3f73b32..7cf3a3d 100644 --- a/Help/manual/cmake-variables.7.rst +++ b/Help/manual/cmake-variables.7.rst @@ -259,6 +259,7 @@ Variables that Control the Build /variable/CMAKE_INSTALL_RPATH /variable/CMAKE_INSTALL_RPATH_USE_LINK_PATH /variable/CMAKE_IOS_INSTALL_COMBINED + /variable/CMAKE_LANG_CLANG_TIDY /variable/CMAKE_LANG_COMPILER_LAUNCHER /variable/CMAKE_LANG_INCLUDE_WHAT_YOU_USE /variable/CMAKE_LANG_VISIBILITY_PRESET diff --git a/Help/prop_tgt/LANG_CLANG_TIDY.rst b/Help/prop_tgt/LANG_CLANG_TIDY.rst new file mode 100644 index 000..2887e23 --- /dev/null +++ b/Help/prop_tgt/LANG_CLANG_TIDY.rst @@ -0,0 +1,13 @@ +_CLANG_TIDY +- + +This property is implemented only when is ``C`` or ``CXX``. + +Specify a :ref:`;-list ` containing a command +line for the ``clang-tidy`` tool. The :ref:`Makefile Generators` +and the :generator:`Ninja` generator will run this tool along with the +compiler and report a warning if the tool reports any problems. + +This property is initialized by the value of +the :variable:`CMAKE__CLANG_TIDY` variable if it is set +when a target is created. diff --git a/Help/release/dev/clang-tidy.rst b/Help/release/dev/clang-tidy.rst new file mode 100644 index 000..030a7c9 --- /dev/null +++ b/Help/release/dev/clang-tidy.rst @@ -0,0 +1,7 @@ +clang-tidy +-- + +* A :prop_tgt:`_CLANG_TIDY` target property and supporting + :variable:`CMAKE__CLANG_TIDY` variable were introduced to tell the + :ref:`Makefile Generators` and the :generator:`Ninja` generator to run + ``clang-tidy`` along with the compiler for ``C`` and ``CXX`` languages. diff --git a/Help/variable/CMAKE_LANG_CLANG_TIDY.rst b/Help/variable/CMAKE_LANG_CLANG_TIDY.rst new file mode 100644 index 000..492c12c --- /dev/null +++ b/Help/variable/CMAKE_LANG_CLANG_TIDY.rst @@ -0,0 +1,6 @@ +CMAKE__CLANG_TIDY +--- + +Default value for :prop_tgt:`_CLANG_TIDY` target property. +This variable is used to initialize the property on each target as it is +created. This is done only when is ``C`` or ``CXX``. diff --git a/Source/cmMakefileTargetGenerator.cxx b/Source/cmMakefileTargetGenerator.cxx index eedc6ab..29708d9 100644 --- a/Source/cmMakefileTargetGenerator.cxx +++ b/Source/cmMakefileTargetGenerator.cxx @@ -667,10 +667,23 @@ cmMakefileTargetGenerator { std::string const iwyu_prop = lang + "_INCLUDE_WHAT_YOU_USE"; const char *iwyu = this->GeneratorTarget->GetProperty(iwyu_prop); -if (iwyu && *iwyu) +std::string const tidy_prop = lang + "_CLANG_TIDY"; +const char *tidy = this->GeneratorTarget->GetProperty(tidy_prop); +if ((iwyu && *iwyu) || (tidy && *tidy)) { - std::string run_iwyu = "$(CMAKE_COMMAND) -E __run_iwyu --iwyu="; - run_iwyu += this->LocalGenerator->EscapeForShell(iwyu); + std::string run_iwyu = "$(CMAKE_COMMAND) -E __run_iwyu"; + if (iwyu && *iwyu)