summaryrefslogtreecommitdiff
path: root/Source/cmcmd.cxx
diff options
context:
space:
mode:
authorBrad King <brad.king@kitware.com>2016-09-22 10:19:44 -0400
committerBrad King <brad.king@kitware.com>2016-09-22 13:52:57 -0400
commit0f331d7893bee523e61109661d4e51566f41c350 (patch)
treecdb254ed3512462c36e14db3b8fe2cbe21e501d9 /Source/cmcmd.cxx
parentd3e0b64b1432700a71a10ddf06084f7bb8500694 (diff)
downloadcmake-0f331d7893bee523e61109661d4e51566f41c350.tar.gz
Ninja: Add internal tool to produce a ninja dyndep file for Fortran
Create an internal `cmake -E cmake_ninja_dyndep` tool to read the "ddi" files generated by `cmake -E cmake_ninja_depends` from all sources in a target and generate a ninja dyndep file that tells Ninja about Fortran module dependencies within the target and on target dependencies.
Diffstat (limited to 'Source/cmcmd.cxx')
-rw-r--r--Source/cmcmd.cxx7
1 files changed, 7 insertions, 0 deletions
diff --git a/Source/cmcmd.cxx b/Source/cmcmd.cxx
index 998a7ad369..2b4a830054 100644
--- a/Source/cmcmd.cxx
+++ b/Source/cmcmd.cxx
@@ -54,6 +54,8 @@
int cmcmd_cmake_ninja_depends(std::vector<std::string>::const_iterator argBeg,
std::vector<std::string>::const_iterator argEnd);
+int cmcmd_cmake_ninja_dyndep(std::vector<std::string>::const_iterator argBeg,
+ std::vector<std::string>::const_iterator argEnd);
void CMakeCommandUsage(const char* program)
{
@@ -790,6 +792,11 @@ int cmcmd::ExecuteCMakeCommand(std::vector<std::string>& args)
else if (args[1] == "cmake_ninja_depends") {
return cmcmd_cmake_ninja_depends(args.begin() + 2, args.end());
}
+
+ // Internal CMake ninja dyndep support.
+ else if (args[1] == "cmake_ninja_dyndep") {
+ return cmcmd_cmake_ninja_dyndep(args.begin() + 2, args.end());
+ }
#endif
// Internal CMake unimplemented feature notification.