我正在尝试使用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源文件?
答案 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)
或类似名称来查找源。