diff options
author | Brad King <brad.king@kitware.com> | 2007-12-28 11:49:59 -0500 |
---|---|---|
committer | Brad King <brad.king@kitware.com> | 2007-12-28 11:49:59 -0500 |
commit | 68dad94b00822dd69a81fb4f00997b190c73663f (patch) | |
tree | d01e136d0750da1237f3683069af33c14f8d20a8 /Source/cmDependsFortran.h | |
parent | 42f3f3c342849d48bbf00a1bca1392c4e5abb18d (diff) | |
download | cmake-68dad94b00822dd69a81fb4f00997b190c73663f.tar.gz |
ENH: Implement Fortran module dependencies across targets and directories.
- See issue #5809
- Keep information about all sources in the target until deps are written
- Create a fortran.internal file after scanning that lists modules provided
- Load fortran.internal files from linked targets to find modules
- Search the include path for external modules
- Create file-level deps on in-project module timestamps or external mods
Diffstat (limited to 'Source/cmDependsFortran.h')
-rw-r--r-- | Source/cmDependsFortran.h | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/Source/cmDependsFortran.h b/Source/cmDependsFortran.h index 9ed087f3f2..c98bad34de 100644 --- a/Source/cmDependsFortran.h +++ b/Source/cmDependsFortran.h @@ -19,6 +19,9 @@ #include "cmDepends.h" +class cmDependsFortranInternals; +class cmDependsFortranSourceInfo; + /** \class cmDependsFortran * \brief Dependency scanner for Fortran object files. */ @@ -50,17 +53,37 @@ public: std::string& fileName); protected: + // Finalize the dependency information for the target. + virtual bool Finalize(std::ostream& makeDepends, + std::ostream& internalDepends); + + // Find all the modules required by the target. + void LocateModules(); + void MatchLocalModules(); + void MatchRemoteModules(std::istream& fin, const char* moduleDir); + void ConsiderModule(const char* name, const char* moduleDir); + bool FindModule(std::string const& name, std::string& module); + // Implement writing/checking methods required by superclass. virtual bool WriteDependencies( const char *src, const char *file, std::ostream& makeDepends, std::ostream& internalDepends); + // Actually write the depenencies to the streams. + bool WriteDependenciesReal(const char *obj, + cmDependsFortranSourceInfo const& info, + std::ostream& makeDepends, + std::ostream& internalDepends); + // The source file from which to start scanning. std::string SourceFile; // The include file search path. std::vector<std::string> const* IncludePath; + // Internal implementation details. + cmDependsFortranInternals* Internal; + private: cmDependsFortran(cmDependsFortran const&); // Purposely not implemented. void operator=(cmDependsFortran const&); // Purposely not implemented. |