我正在使用CMake进行中等规模的Fortran项目; 有时我用gfortran构建它,有时用ifort构建它.当我想进行调试构建时,编译器标志是不同的; 我想让CMake自动检查正在使用哪个编译器并相应地设置标志.
看起来这个答案显示了如何为不同的C++编译器做同样的事情.有一个如何使用Fortran检查编译器的示例
if (Fortran_COMPILER_NAME MATCHES "gfortran.*")
Run Code Online (Sandbox Code Playgroud)
但是,这无法调用条件,因为CMake决定使用f95.当然,f95碰巧别名gfortran,但CMake没有检测到.
这样做的正确方法是什么?
你也可以使用CMAKE_Fortran_COMPILER_ID:
if ("${CMAKE_Fortran_COMPILER_ID}" MATCHES "Intel")
# something
elseif("${CMAKE_Fortran_COMPILER_ID}" MATCHES "GNU")
# something else
endif
Run Code Online (Sandbox Code Playgroud)
最好的方法是读取文件CMakeDetermineFortranCompiler.cmake及其引用的相关文件.
| 归档时间: |
|
| 查看次数: |
3383 次 |
| 最近记录: |