CMAKE无法将.f90识别为源代码?

时间:2018-11-01 14:40:48

标签: cmake fortran

我正在尝试使用CMAKE来构建Fortran程序

测试源文件包括:TEST.cpp, A.f90, B.f90

CMakeLists.txt:

cmake_minimum_required(VERSION 3.1)

enable_language(Fortran)

aux_source_directory( ${CMAKE_SOURCE_DIR} SRC )

file(WRITE out.txt ${SRC} )

但是命令aux_source_directory无法识别.f90源文件。

我用过enable_language(Fortran)

但是只能识别TEST.cpp文件(在out.txt中输出)

如何用aux_source_directory来标识.f90源文件?

1 个答案:

答案 0 :(得分:2)

尝试:

set(CMAKE_Fortran_SOURCE_FILE_EXTENSIONS f90)

来自cmake help

  

CMAKE__SOURCE_FILE_EXTENSIONS:给定语言的源文件扩展名。
    这是给定语言源文件的扩展名列表。

请记住,来自aux_source_directory

  

使用此命令来避免写入以下内容的列表很诱人   库或可执行目标的源文件。虽然这似乎   工作,CMake无法生成已知的构建系统   添加新的源文件时。通常生成的版本   系统知道何时需要重新运行CMake,因为CMakeLists.txt   文件被修改以添加新的源。当源刚刚添加到   目录而不修改此文件,则必须手动进行   重新运行CMake以生成包含新文件的构建系统。

因此,您实际上可能只需要重新运行cmake(我建议删除所有cmake生成的文件,然后重新运行它)。最好使用file(GLOB_RECURSE src *.f90)或类似名称来查找源。