繁体   English   中英

CMake以不同方式处理F77和F90文件

[英]CMake to handle F77 and F90 files differently

我试图将我们的项目从自动工具移植到CMake,并卡在fortran编译器设置上。 该项目包括C ++,Fortran和Fortran90件。 在我们的autoconf / automake项目中,我们仅定义了FC和F77以及相应的标志,例如FCFLAGSFFLAGS 但是在CMake中,它的工作方式似乎有所不同。

到目前为止,我做了什么:

project (blah-proj CXX Fortran)
... in ibm case ....
set (CMAKE_Fortran_FLAGS "-qfullpath -qinitauto -qnolm -qinit=f90ptr -qfree=f90 " )

并在源目录CMakeLists.txt

file (GLOB_RECURSE libblah_f_sources *.f90 *.f)
add_library (blah_f ${libblah_f_sources})
set_target_properties (blah_f PROPERTIES LINKER_LANGUAGE Fortran)

在Linux上使用gfortran可以正常工作,因为它只是一个二进制文件,但是在AIX上有2种不同的编译器,分别称为xlfxlf90 当然,它不起作用,因为CMake会尝试使用同一编译器来编译*.f*.f90文件。

似乎我并没有真正想要的东西,但是至少它在第一次近似时解决了这个问题。 我保留了相同的结构,但随后让编译器自己决定它是哪种文件。 当然,我必须删除与版本有关的指令,例如-qfree = f90或-qfixed = 128,以希望编译器足够聪明,可以从文件扩展名中猜测它们。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM