summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBrad King <brad.king@kitware.com>2017-05-05 13:47:14 (GMT)
committerKitware Robot <kwrobot@kitware.com>2017-05-05 13:47:19 (GMT)
commit053c0f1e44cc6900bb215b8eb2866f68211ebfe5 (patch)
tree791ffe8230f72ea58f56ee0576a988d0c1c5f9c6
parent718f0c24f7c0ea9170c8843e17d88fb8eee70235 (diff)
parentd0c3e47d806ea3a25be2e7d190e479a6ccd8faa0 (diff)
downloadCMake-053c0f1e44cc6900bb215b8eb2866f68211ebfe5.zip
CMake-053c0f1e44cc6900bb215b8eb2866f68211ebfe5.tar.gz
CMake-053c0f1e44cc6900bb215b8eb2866f68211ebfe5.tar.bz2
Merge topic 'clang-tidy-config'
d0c3e47d clang-tidy: add option CMake_RUN_CLANG_TIDY 894ff96c auto_ptr: silence clang-tidy warnings Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !790
-rw-r--r--.clang-tidy30
-rw-r--r--CMakeLists.txt14
-rw-r--r--Source/cm_auto_ptr.hxx10
-rw-r--r--Utilities/.clang-tidy6
-rw-r--r--Utilities/CMakeLists.txt3
5 files changed, 58 insertions, 5 deletions
diff --git a/.clang-tidy b/.clang-tidy
new file mode 100644
index 0000000..a9d121a
--- /dev/null
+++ b/.clang-tidy
@@ -0,0 +1,30 @@
+---
+Checks: "-*,\
+misc-*,\
+-misc-incorrect-roundings,\
+-misc-macro-parentheses,\
+-misc-misplaced-widening-cast,\
+-misc-static-assert,\
+modernize-make-shared,\
+modernize-make-unique,\
+modernize-redundant-void-arg,\
+modernize-use-bool-literals,\
+modernize-use-nullptr,\
+modernize-use-override,\
+performance-*,\
+-performance-inefficient-string-concatenation,\
+readability-*,\
+-readability-function-size,\
+-readability-identifier-naming,\
+-readability-implicit-bool-cast,\
+-readability-inconsistent-declaration-parameter-name,\
+-readability-named-parameter,\
+-readability-redundant-declaration,\
+-readability-redundant-member-init,\
+-readability-simplify-boolean-expr,\
+"
+HeaderFilterRegex: 'Source/cm[^/]*\.(h|hxx|cxx)$'
+CheckOptions:
+ - key: modernize-use-nullptr.NullMacros
+ value: 'CM_NULLPTR'
+...
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 545177b..4dcf2f0 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -226,6 +226,20 @@ option(CMAKE_USE_FOLDERS "Enable folder grouping of projects in IDEs." ON)
mark_as_advanced(CMAKE_USE_FOLDERS)
+option(CMake_RUN_CLANG_TIDY "Run clang-tidy with the compiler." OFF)
+if(CMake_RUN_CLANG_TIDY)
+ if(CMake_SOURCE_DIR STREQUAL CMake_BINARY_DIR)
+ message(FATAL_ERROR "CMake_RUN_CLANG_TIDY requires an out-of-source build!")
+ endif()
+ find_program(CLANG_TIDY_COMMAND NAMES clang-tidy)
+ if(NOT CLANG_TIDY_COMMAND)
+ message(FATAL_ERROR "CMake_RUN_CLANG_TIDY is ON but clang-tidy is not found!")
+ endif()
+ set(CMAKE_CXX_CLANG_TIDY "${CLANG_TIDY_COMMAND}")
+endif()
+configure_file(.clang-tidy .clang-tidy COPYONLY)
+
+
option(CMake_RUN_IWYU "Run include-what-you-use with the compiler." OFF)
if(CMake_RUN_IWYU)
find_program(IWYU_COMMAND NAMES include-what-you-use iwyu)
diff --git a/Source/cm_auto_ptr.hxx b/Source/cm_auto_ptr.hxx
index 2b5c059..773602a 100644
--- a/Source/cm_auto_ptr.hxx
+++ b/Source/cm_auto_ptr.hxx
@@ -100,10 +100,10 @@ public:
/** Assign from an auto_ptr holding a compatible object. This
transfers ownership to the left-hand-side of the assignment. */
template <class Y>
- auto_ptr& operator=(auto_ptr<Y> cm_AUTO_PTR_CONST& a) throw()
+ auto_ptr& operator=(auto_ptr<Y> cm_AUTO_PTR_CONST& a) throw() // NOLINT
{
this->reset(cm_AUTO_PTR_CAST(a).release());
- return *this;
+ return *this; // NOLINT
}
/**
@@ -127,10 +127,10 @@ public:
/** Assign from another auto_ptr holding an object of the same type.
This transfers ownership to the newly constructed auto_ptr. */
- auto_ptr& operator=(auto_ptr cm_AUTO_PTR_CONST& a) throw()
+ auto_ptr& operator=(auto_ptr cm_AUTO_PTR_CONST& a) throw() // NOLINT
{
this->reset(cm_AUTO_PTR_CAST(a).release());
- return *this;
+ return *this; // NOLINT
}
/** Destruct and delete the object held. */
@@ -192,7 +192,7 @@ public:
auto_ptr& operator=(detail::auto_ptr_ref<X> r) throw()
{
this->reset(r.p_);
- return *this;
+ return *this; // NOLINT
}
/** Convert to an auto_ptr_ref. This is used when a function
diff --git a/Utilities/.clang-tidy b/Utilities/.clang-tidy
new file mode 100644
index 0000000..381a0f4
--- /dev/null
+++ b/Utilities/.clang-tidy
@@ -0,0 +1,6 @@
+---
+# We want to disable all checks for 3rd party code. However, clang-tidy will
+# assume we did not configure it correctly. Just add one check that will never
+# be found.
+Checks: '-*,llvm-twine-local'
+...
diff --git a/Utilities/CMakeLists.txt b/Utilities/CMakeLists.txt
index 014204b..0564540 100644
--- a/Utilities/CMakeLists.txt
+++ b/Utilities/CMakeLists.txt
@@ -29,3 +29,6 @@ endif()
if(WIX_CUSTOM_ACTION_ENABLED)
add_subdirectory(Release/WiX)
endif()
+
+# Make sure generated files use the same clang-tidy checks (none).
+configure_file(.clang-tidy .clang-tidy COPYONLY)