summaryrefslogtreecommitdiffstats
path: root/Source/cmMakefileTargetGenerator.cxx
diff options
context:
space:
mode:
authorBrad King <brad.king@kitware.com>2015-05-21 13:03:40 (GMT)
committerCMake Topic Stage <kwrobot@kitware.com>2015-05-21 13:03:40 (GMT)
commit03a65dab30a0ef34ec900126c03a01cc9da55f36 (patch)
tree184d1376213fdf132e22c5f083faa05d8531a1de /Source/cmMakefileTargetGenerator.cxx
parent41d833e1e9decb422c019f16626fe61e38c03eec (diff)
parentada5ffce7bad40c56e5d0dd76b9a7b30c96a9e92 (diff)
downloadCMake-03a65dab30a0ef34ec900126c03a01cc9da55f36.zip
CMake-03a65dab30a0ef34ec900126c03a01cc9da55f36.tar.gz
CMake-03a65dab30a0ef34ec900126c03a01cc9da55f36.tar.bz2
Merge topic 'run-include-what-you-use'
ada5ffce Add options to run include-what-you-use with the compiler 67fa3da9 cmake: Add internal -E mode to run include-what-you-use with the compiler
Diffstat (limited to 'Source/cmMakefileTargetGenerator.cxx')
-rw-r--r--Source/cmMakefileTargetGenerator.cxx14
1 files changed, 14 insertions, 0 deletions
diff --git a/Source/cmMakefileTargetGenerator.cxx b/Source/cmMakefileTargetGenerator.cxx
index 9afe09c..0c8acc7 100644
--- a/Source/cmMakefileTargetGenerator.cxx
+++ b/Source/cmMakefileTargetGenerator.cxx
@@ -768,6 +768,20 @@ cmMakefileTargetGenerator
this->LocalGenerator->ExpandRuleVariables(*i, vars);
}
+ // Maybe insert an include-what-you-use runner.
+ if (!compileCommands.empty() && (lang == "C" || lang == "CXX"))
+ {
+ std::string const iwyu_prop = lang + "_INCLUDE_WHAT_YOU_USE";
+ const char *iwyu = this->Target->GetProperty(iwyu_prop);
+ if (iwyu && *iwyu)
+ {
+ std::string run_iwyu = "$(CMAKE_COMMAND) -E __run_iwyu --iwyu=";
+ run_iwyu += this->LocalGenerator->EscapeForShell(iwyu);
+ run_iwyu += " -- ";
+ compileCommands.front().insert(0, run_iwyu);
+ }
+ }
+
// Change the command working directory to the local build tree.
this->LocalGenerator->CreateCDCommand
(compileCommands,