MantisBT - CMake
View Issue Details
0013239CMakeCMakepublic2012-05-21 11:092012-10-01 13:23
C.M. 
Brad King 
normalminoralways
closedfixed 
All platformsAll OSAll
CMake 2.8.8 
CMake 2.8.9CMake 2.8.9 
0013239: Not all Fortran dependencies are recognized.
Pre-processor dependencies in FORTRAN using include files are not recognized
if specified as
#include <...>
which (at least for several Fortran preprocessors is a valid syntax), e.g.
http://www2.fz-juelich.de/jsc/docs/vendordocs/NAGWare_f95 [^]
/html/fpp.html#INCEXTERNAL


Generate any Fortran file and insert an include statement
#include <file>
into it. Check the "*.depend" files. The include file is not listed.
Using
#include "file"
does however list the dependency correctly.
Reason for this behavior is the flex rule in cmDependsFortranLexer.in.l
line 73-90 and 111 which allows strings only as "" or ''. Adding here
a third string rule for <...> does quick fix the problem. However, one probably
should create a new string type and add/change the CPP_INCLUDE parser rule
in cmDependsFortranParser.y as well to not allow all strings to be <>.
No tags attached.
Issue History
2012-05-21 11:09C.M.New Issue
2012-05-22 14:16Brad KingNote Added: 0029545
2012-05-22 14:16Brad KingAssigned To => Brad King
2012-05-22 14:16Brad KingStatusnew => resolved
2012-05-22 14:16Brad KingResolutionopen => fixed
2012-05-22 14:16Brad KingFixed in Version => CMake 2.8.9
2012-05-22 14:16Brad KingTarget Version => CMake 2.8.9
2012-10-01 13:23David ColeNote Added: 0031133
2012-10-01 13:23David ColeStatusresolved => closed

Notes
(0029545)
Brad King   
2012-05-22 14:16   
Good catch. I think that came from makedepf90:

  http://cmake.org/gitweb?p=cmake.git;a=blob;f=Source/cmDependsFortranLexer.in.l;hb=v2.8.8#l13 [^]

This should fix it:

  http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=ad210790 [^]

Adding a test for this will require construction of a test like the BuildDepends test but for Fortran. Unfortunately I do not have time to do that now.
(0031133)
David Cole   
2012-10-01 13:23   
Closing resolved issues that have not been updated in more than 4 months.