Commit Graph

21 Commits

Author SHA1 Message Date
Brad King
613bc08ac1 cmDependsFortran: Use string to store module directory 2015-07-29 11:48:58 -04:00
Brad King
fd19445802 cmDependsFortran: Simplify storage of preprocessor definitions
Collect the original preprocessor definitions in a std::set<> so that
it can be copied directly by cmFortranParser's constructor instead of
making a copy on the stack.
2015-07-27 09:45:35 -04:00
Brad King
295480b923 cmDependsFortran: Move FindIncludeFile method into parser class
This drops the only awareness of cmDependsFortran that cmFortranParser
needed.
2015-07-27 09:45:35 -04:00
Kitware Robot
98b9645bce Rename Fortran parser infrastructure to drop "Depends" prefix
The parser can be re-used outside cmDependsFortran or the cmDepends
class hierarchy so drop the "Depends" from its name:

 rename 's/DependsFortran([A-Za-z0-9_])/Fortran$1/' Source/*.*
 sed -i 's/DependsFortran\([A-Za-z0-9_]\)/Fortran\1/g' Source/*.*
 sed -i 's/FortranInternals/DependsFortranInternals/g' Source/*.*

Also manually fix Source/CMakeLists.txt source file ordering.
2015-07-27 09:45:35 -04:00
Alex Neundorf
e74ff7c29f cmDepends: allow multiple dependees per depender
This patch is heavily inspired by Michael Wild.

The interfaces cmDepends::Write and cmDepends::WriteDependencies where
extended to allow multiple dependees (sources) per depender (object).
cmDepends::Write first collect all dependencies into a std::set before
passing it to cmDepends::WriteDependencies.

cmDependsC::WriteDependencies also first collects all explicit and
implicit dependencies into a std::set and only then writes
depend.{internal,make}. The implementation of cmDependsFortran simply
loops over all sources and proceeds as before, whereas the cmDependsJava
implementation is as trivial as before.

This is for preventing exponential growth of depend.{internal,make} in
the next commit which fixes dependency-vector erasure in
cmDepends::CheckDependencies.

Inspired-by: Michael Wild <themiwi@users.sourceforge.net>
2012-11-06 11:54:39 -05:00
Brad King
96afb12087 Convert CMake to OSI-approved BSD License
This converts the CMake license to a pure 3-clause OSI-approved BSD
License.  We drop the previous license clause requiring modified
versions to be plainly marked.  We also update the CMake copyright to
cover the full development time range.
2009-09-28 11:43:28 -04:00
Brad King
12935b1599 ENH: Light refactoring of implicit dependency scanning configuration implementation.
- Move lookup of config variables from cmLocalUnixMakefileGenerator3 to cmDepends hierarchy.
2008-05-08 10:09:14 -04:00
Brad King
b761da39c1 ENH: Patch from Maik to add preprocessor directive handling to Fortran dependency scanning. Also added -fpp flag to Intel Fortran compiler on Windows by default. 2008-01-09 10:30:11 -05:00
Brad King
c7de81f9a6 ENH: Make the Fortran compiler id available to cmDependsFortran at scanning and module timestamp copy time. 2008-01-02 11:04:52 -05:00
Brad King
1f987c06ea ENH: Changes based on patch from Maik Beckmann to copy fortran modules to timestamps only if they have really changed. This optimization should reduce extra rebuilds caused by dependencies on modules whose providers have recompiled but whose interfaces have not changed. 2007-12-31 11:25:17 -05:00
Brad King
b2e8c07af8 ENH: Implemented Fortran module output directory and search path flags. 2007-12-30 16:11:38 -05:00
Brad King
68dad94b00 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
2007-12-28 11:49:59 -05:00
Brad King
4d360f7ac5 ENH: Convert cmDepends object interface to scan an entire target at once. 2007-12-22 22:41:42 -05:00
Brad King
891256546b ENH: Pass target directory to cmDependsFortran scanning instances. 2007-12-19 14:28:46 -05:00
Ken Martin
3d96e52261 STYLE: some m_ to this-> cleanup 2006-03-15 11:02:08 -05:00
Andy Cedilnik
f18e7c7ff7 ENH: Improve performance of check build system by creating another file that is simpler to parse and therefore much faster overall 2005-10-12 13:52:29 -04:00
Ken Martin
f85f919dbc ENH: reduce the number of files produced still needs a bit more cleanup 2005-07-27 09:49:37 -04:00
Ken Martin
c85069b290 ENH: some changes to the depends signature to be more flexible 2005-05-11 13:16:45 -04:00
Brad King
e8911705d6 ENH: Added optional verbose output to build system dependency check. 2005-05-06 09:58:58 -04:00
Brad King
2444cd3828 ENH: Implementing explicit cmake_copy_f90_mod callback to copy Fortran90 modules to the stamp files more reliably. This removes the temporary hack for per-platform upper-/lower- case. 2005-03-03 16:53:33 -05:00
Brad King
19f977bad7 ENH: Added Fortran dependency scanner implementation. 2005-01-26 15:33:38 -05:00