diff options
author | Rechi <Rechi@users.noreply.github.com> | 2020-10-05 01:48:47 +0200 |
---|---|---|
committer | Rechi <Rechi@users.noreply.github.com> | 2020-10-05 01:48:47 +0200 |
commit | cc69cc21e609216cec13b56f5dcfab2e0fcf1c63 (patch) | |
tree | 12e293157a95d84f214faaef711f13e602ac8862 /cmake | |
parent | 2b0753e10408c1a2b2607c40b3f1d46f0bcc33dd (diff) |
[cmake] add include-what-you-use support
Diffstat (limited to 'cmake')
-rw-r--r-- | cmake/modules/FindIncludeWhatYouUse.cmake | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/cmake/modules/FindIncludeWhatYouUse.cmake b/cmake/modules/FindIncludeWhatYouUse.cmake new file mode 100644 index 0000000000..b22225ae5c --- /dev/null +++ b/cmake/modules/FindIncludeWhatYouUse.cmake @@ -0,0 +1,26 @@ +#.rst: +# FindIncludeWhatYouUse +# --------------------- +# Finds include-what-you-use and sets it up to run along with the compiler for C and CXX. + +find_program(IWYU_EXECUTABLE NAMES include-what-you-use iwyu) + +if(IWYU_EXECUTABLE) + execute_process(COMMAND "${IWYU_EXECUTABLE}" --version + OUTPUT_VARIABLE IWYU_VERSION + OUTPUT_STRIP_TRAILING_WHITESPACE) + string(REGEX MATCH "[^\n]*include-what-you-use [^\n]*" IWYU_VERSION "${IWYU_VERSION}") + string(REGEX REPLACE "include-what-you-use ([^ \n\r\t]+).*" "\\1" IWYU_VERSION "${IWYU_VERSION}") +endif() + +include(FindPackageHandleStandardArgs) +find_package_handle_standard_args(IncludeWhatYouUse REQUIRED_VARS IWYU_EXECUTABLE + VERSION_VAR IWYU_VERSION) + +if(INCLUDEWHATYOUUSE_FOUND) + # Supports Unix Makefiles and Ninja + set(CMAKE_C_INCLUDE_WHAT_YOU_USE "${IWYU_EXECUTABLE}" PARENT_SCOPE) + set(CMAKE_CXX_INCLUDE_WHAT_YOU_USE "${IWYU_EXECUTABLE}" PARENT_SCOPE) +endif() + +mark_as_advanced(IWYU_EXECUTABLE) |