[CMake] ccmake and fortran

bpwlist at cox.net bpwlist at cox.net
Tue Aug 15 11:48:58 EDT 2006


---- Brad King <brad.king at kitware.com> wrote: 
> 
> FYI, there is a bug report for this problem:
> 
> http://www.cmake.org/Bug/bug.php?op=show&bugid=3109
> 
> I briefly looked at fixing it but got stuck on the free-format versus
> fixed-format parsing.  Unfortunately I have no time for this bug now.
> 
> Please add any conclusion for this discussion to that bug report.
> 

Brad,

I played around with it a bit this weekend.

Something like this could be done in cmDependsFortranLexer.in.l 
 
... 
 
%option reentrant 
%option noyywrap 
%pointer 
 
%s free_fmt fixed_fmt 
%x str_sq str_dq 
 
%% 
 
%{ 
     bool fixed = cmDependsFortranParser_isFixedFormat(yyextra); 
     if (fixed) 
         BEGIN(fixed_fmt); 
%} 
 
\"              { 
  cmDependsFortranParser_StringStart(yyextra); 
  BEGIN(str_dq); 
} 
 
... 
 
!.*\n                   { return EOSTMT; } /* Treat comments like */ 
<fixed_fmt>^[cC*dD].*\n { return EOSTMT; } /* empty lines */ 
 
cmDependsFortranParser_isFixedFormat would be a function that we could add to 
cmDependsFortran.cxx which returnss true if a given file is fixed format.    The question really becomes: How does cmDependsFortranParser_isFixedFormat determine whether the file is fixed or free format?  I believe I could add a check for the file extension fairly easily.  Adding a check for command line flags or to see whether SET_SOURCE_FILE_PROPERTIES(FORTRAN_FIXED_FORMAT) (as Alan suggested) looks to be more involved, as cmDependsFortran or the parser does not appear to be plumbed to access that type of information.   

If I submiited a patch with the changes to the parser and a cmDependsFortranParser_isFixedFormat function that is based on file extension, could we get it incoporated?  We could then worry about more robust ways about determining if a file is free or fixed format later.

Thanks,

Bryan Walsh



More information about the CMake mailing list