[CMake] #include and fortran dependencies

Arjen Markus arjen.markus at deltares.nl
Mon Mar 5 05:33:32 EST 2012


Hello,

for whatever it is worth, C-style preprocessor commands
are a non-standard feature. The Fortran standard itself
defines only the "INCLUDE" statement (or directive).
Perhaps you can solve this in a standard way by moving the
logic to the CMakeLists.txt files rather than relying
on (possibly ubiquitous but still non-standard) support
of these C preprocessor commands.

Regards,

Arjen

On Tue, 28 Feb 2012 13:28:19 -0500
  Brad King <brad.king at kitware.com> wrote:
> On 2/28/2012 11:06 AM, Dirk vanMeeuwen wrote:
>> #include "fpp-Windows-definition.inc"
>> MODULE MSG
>> ...
>> END MODULE
>>
>> However, when this module MSG is used, the project build 
>>order
> > generated by CMake is not correct (see attached small 
>example).
> 
>Fortran dependencies are supported, and the Intel Fortran 
>12 compiler
> is expected to work with the NMake Makefiles generator.
> 
> I was able to reproduce the problem.  If I remove the 
>#if logic from
> the .inc file then it works.  I think this may be a bug 
>in the
> Source/cmDependsFortran* files of CMake.  It is not 
>handling the #if
> logic correctly and tricks itself into thinking that all 
>the code
> after the #include line is being preprocessed out as if 
>in "#if 0".
> That's why the order of the lines affects the results.
> 
> I don't have time to investigate this myself but if 
>anyone is
> interested then take a look at 
>Source/cmDependsFortranParser.y
> and Source/cmDependsFortran.cxx for use of the _RuleIf, 
>_RuleElse,
> and similar functions.
> 
> -Brad
> --
> 
> Powered by www.kitware.com
> 
> Visit other Kitware open-source projects at 
>http://www.kitware.com/opensource/opensource.html
> 
> Please keep messages on-topic and check the CMake FAQ 
>at: http://www.cmake.org/Wiki/CMake_FAQ
> 
>Follow this link to subscribe/unsubscribe:
> http://www.cmake.org/mailman/listinfo/cmake
> 


 

DISCLAIMER: This message is intended exclusively for the addressee(s) and may contain confidential and privileged information. If you are not the intended recipient please notify the sender immediately and destroy this message. Unauthorized use, disclosure or copying of this message is strictly prohibited.
The foundation 'Stichting Deltares', which has its seat at Delft, The Netherlands, Commercial Registration Number 41146461, is not liable in any way whatsoever for consequences and/or damages resulting from the improper, incomplete and untimely dispatch, receipt and/or content of this e-mail.






More information about the CMake mailing list