فهرست منبع

CMake: add an option to run IWYU in verbose mode

This helps to diagnose places where IWYU asks to include headers for
internal stdlib details.
Ben Boeckel 2 سال پیش
والد
کامیت
25f0b4f397
2فایلهای تغییر یافته به همراه6 افزوده شده و 1 حذف شده
  1. 5 0
      CMakeLists.txt
  2. 1 1
      Utilities/IWYU/mapping.imp

+ 5 - 0
CMakeLists.txt

@@ -313,6 +313,11 @@ if(CMake_RUN_IWYU)
   endif()
   set(CMAKE_CXX_INCLUDE_WHAT_YOU_USE
     "${IWYU_COMMAND};-Xiwyu;--mapping_file=${CMake_SOURCE_DIR}/Utilities/IWYU/mapping.imp;-w")
+  option(CMake_IWYU_VERBOSE "Run include-what-you-use in verbose mode" OFF)
+  if (CMake_IWYU_VERBOSE)
+    list(APPEND CMAKE_CXX_INCLUDE_WHAT_YOU_USE
+      -Xiwyu -v7)
+  endif ()
   list(APPEND CMAKE_CXX_INCLUDE_WHAT_YOU_USE ${CMake_IWYU_OPTIONS})
 endif()
 

+ 1 - 1
Utilities/IWYU/mapping.imp

@@ -76,7 +76,7 @@
   # __decay_and_strip is used internally in the C++11 standard library.
   # IWYU does not classify it as internal and suggests to add <type_traits>.
   # To ignore it, we simply map it to a file that is included anyway.
-  # Use '-Xiwyu -v7' to see the fully qualified names that need this.
+  # Use 'CMake_IWYU_VERBOSE' to see the fully qualified names that need this.
   # TODO: Can this be simplified with an @-expression?
   #{ symbol: [ "@std::__decay_and_strip<.*>::__type", private, "\"cmConfigure.h\"", public ] },
   { symbol: [ "std::__decay_and_strip<bool>::__type", private, "\"cmConfigure.h\"", public ] },