簡體   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