diff options
author | Bill Hoffman <bill.hoffman@kitware.com> | 2017-08-28 22:25:13 (GMT) |
---|---|---|
committer | Bill Hoffman <bill.hoffman@kitware.com> | 2017-09-13 21:44:49 (GMT) |
commit | 3bbe95f58a8fb83e56ca9023ef01b9e70b391b05 (patch) | |
tree | 786b5d6a10a78bff00f6daee00271bdfac3e570f /Source/cmcmd.h | |
parent | 3ea87bce69d1b6120b227fed3838f1bc9ab45db1 (diff) | |
download | CMake-3bbe95f58a8fb83e56ca9023ef01b9e70b391b05.zip CMake-3bbe95f58a8fb83e56ca9023ef01b9e70b391b05.tar.gz CMake-3bbe95f58a8fb83e56ca9023ef01b9e70b391b05.tar.bz2 |
Clean up iwyu code to not be one big if statement.
This commit changes the internal -E__run_iwyu to be -E__run_co_compile. This
is used for co-compile commands. These are tools that want to mirror the
compiler. For each compiler invocation the tool will be invoked first. This
started as a way to implement include what you use (iwyu), but has expanded
to include cpplint, cppcheck and others. Likely there will be more in the
future as well. This commit implements each one in its own function and
provides a way to add additional ones in the future with less work.
Diffstat (limited to 'Source/cmcmd.h')
-rw-r--r-- | Source/cmcmd.h | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/Source/cmcmd.h b/Source/cmcmd.h index faac1d2..541fe05 100644 --- a/Source/cmcmd.h +++ b/Source/cmcmd.h @@ -18,7 +18,26 @@ public: */ static int ExecuteCMakeCommand(std::vector<std::string>&); + // define co-compile command handlers they must be public + // because they are used in a std::function map + static int HandleIWYU(const std::string& runCmd, + const std::string& sourceFile, + const std::vector<std::string>& orig_cmd); + static int HandleTidy(const std::string& runCmd, + const std::string& sourceFile, + const std::vector<std::string>& orig_cmd); + static int HandleLWYU(const std::string& runCmd, + const std::string& sourceFile, + const std::vector<std::string>& orig_cmd); + static int HandleCppLint(const std::string& runCmd, + const std::string& sourceFile, + const std::vector<std::string>& orig_cmd); + static int HandleCppCheck(const std::string& runCmd, + const std::string& sourceFile, + const std::vector<std::string>& orig_cmd); + protected: + static int HandleCoCompileCommands(std::vector<std::string>& args); static int HashSumFile(std::vector<std::string>& args, cmCryptoHash::Algo algo); static int SymlinkLibrary(std::vector<std::string>& args); |