diff options
author | Brad King <brad.king@kitware.com> | 2016-09-21 15:38:53 -0400 |
---|---|---|
committer | Brad King <brad.king@kitware.com> | 2016-09-22 13:53:09 -0400 |
commit | 39ebfc79e614dc395d5ace2ad5818b3ba75ca478 (patch) | |
tree | 13909c2ae514448da91ed63ba513fc7e7280b096 /Source/cmNinjaTargetGenerator.h | |
parent | 9a77680eed49939f8ba418af96eefd42ecea0ae1 (diff) | |
download | cmake-39ebfc79e614dc395d5ace2ad5818b3ba75ca478.tar.gz |
Ninja: Add explicit preprocessing step for Fortran
All Fortran sources need to be preprocessed before any source may be
compiled so that module dependencies can be (later) extracted. Factor
out an explicit preprocessing step preceding compilation. Use Ninja
depfile dependencies on the preprocessing step and then compile the
already-preprocessed source with a separate build statement that depends
explicitly only on the preprocessor output. Later we will insert
dynamic discovery of module dependencies between these steps.
Diffstat (limited to 'Source/cmNinjaTargetGenerator.h')
-rw-r--r-- | Source/cmNinjaTargetGenerator.h | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/Source/cmNinjaTargetGenerator.h b/Source/cmNinjaTargetGenerator.h index 2b2678850e..e6816db867 100644 --- a/Source/cmNinjaTargetGenerator.h +++ b/Source/cmNinjaTargetGenerator.h @@ -70,6 +70,8 @@ protected: cmMakefile* GetMakefile() const { return this->Makefile; } 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 OrderDependsTargetForTarget(); @@ -107,6 +109,9 @@ protected: /// @return the object file path for the given @a source. std::string GetObjectFilePath(cmSourceFile const* source) const; + /// @return the preprocessed source file path for the given @a source. + std::string GetPreprocessedFilePath(cmSourceFile const* source) const; + /// @return the file path where the target named @a name is generated. std::string GetTargetFilePath(const std::string& name) const; |