summaryrefslogtreecommitdiff
path: root/Source/cmNinjaTargetGenerator.h
diff options
context:
space:
mode:
authorBrad King <brad.king@kitware.com>2016-09-22 10:34:45 -0400
committerBrad King <brad.king@kitware.com>2016-09-22 13:53:10 -0400
commit59aae29214b727944978b8e545a552f96c88b883 (patch)
treeebfe620e3030e712a4839e4653516b3a74dee156 /Source/cmNinjaTargetGenerator.h
parent39ebfc79e614dc395d5ace2ad5818b3ba75ca478 (diff)
downloadcmake-59aae29214b727944978b8e545a552f96c88b883.tar.gz
Ninja: Add dyndep rules for Fortran module dependencies
Teach the Ninja generator to add dyndep rules and bindings as described in the design comment in `Source/cmGlobalNinjaGenerator.cxx`.
Diffstat (limited to 'Source/cmNinjaTargetGenerator.h')
-rw-r--r--Source/cmNinjaTargetGenerator.h10
1 files changed, 10 insertions, 0 deletions
diff --git a/Source/cmNinjaTargetGenerator.h b/Source/cmNinjaTargetGenerator.h
index e6816db867..f5e6511e57 100644
--- a/Source/cmNinjaTargetGenerator.h
+++ b/Source/cmNinjaTargetGenerator.h
@@ -72,6 +72,8 @@ protected:
std::string LanguageCompilerRule(const std::string& lang) const;
std::string LanguagePreprocessRule(std::string const& lang) const;
bool NeedExplicitPreprocessing(std::string const& lang) const;
+ std::string LanguageDyndepRule(std::string const& lang) const;
+ bool NeedDyndep(std::string const& lang) const;
std::string OrderDependsTargetForTarget();
@@ -112,6 +114,12 @@ protected:
/// @return the preprocessed source file path for the given @a source.
std::string GetPreprocessedFilePath(cmSourceFile const* source) const;
+ /// @return the dyndep file path for this target.
+ std::string GetDyndepFilePath(std::string const& lang) const;
+
+ /// @return the target dependency scanner info file path
+ std::string GetTargetDependInfoPath(std::string const& lang) const;
+
/// @return the file path where the target named @a name is generated.
std::string GetTargetFilePath(const std::string& name) const;
@@ -123,6 +131,7 @@ protected:
void WriteObjectBuildStatements();
void WriteObjectBuildStatement(cmSourceFile const* source,
bool writeOrderDependsTargetForTarget);
+ void WriteTargetDependInfo(std::string const& lang);
void ExportObjectCompileCommand(
std::string const& language, std::string const& sourceFileName,
@@ -166,6 +175,7 @@ private:
cmLocalNinjaGenerator* LocalGenerator;
/// List of object files for this target.
cmNinjaDeps Objects;
+ cmNinjaDeps DDIFiles; // TODO: Make per-language.
std::vector<cmCustomCommand const*> CustomCommands;
cmNinjaDeps ExtraFiles;
};