mirror of
https://github.com/Kitware/CMake.git
synced 2025-12-30 18:29:37 -06:00
LLVMFlang: Add support for LLVM Flang
LLVM Flang (https://github.com/llvm/llvm-project/tree/main/flang) is an LLVM Fortran compiler that shares the same name as Flang (also known as Classic Flang). Classic Flang is in active development and is already identified by CMake as Flang. As such, LLVM Flang will be identified as `LLVMFlang`. Fixes: #22387
This commit is contained in:
6
Help/release/dev/LLVMFlang-compiler.rst
Normal file
6
Help/release/dev/LLVMFlang-compiler.rst
Normal file
@@ -0,0 +1,6 @@
|
||||
LLVMFlang-compiler
|
||||
------------------
|
||||
|
||||
* LLVM's `flang`_ Fortran compiler is now supported, with compiler id ``LLVMFlang``.
|
||||
|
||||
.. _`flang`: https://github.com/llvm/llvm-project/tree/main/flang
|
||||
@@ -18,7 +18,8 @@ include:
|
||||
Clang = LLVM Clang (clang.llvm.org)
|
||||
Cray = Cray Compiler (cray.com)
|
||||
Embarcadero, Borland = Embarcadero (embarcadero.com)
|
||||
Flang = Flang LLVM Fortran Compiler
|
||||
Flang = Classic Flang Fortran Compiler (https://github.com/flang-compiler/flang)
|
||||
LLVMFlang = LLVM Flang Fortran Compiler (https://github.com/llvm/llvm-project/tree/main/flang)
|
||||
Fujitsu = Fujitsu HPC compiler (Trad mode)
|
||||
FujitsuClang = Fujitsu HPC compiler (Clang mode)
|
||||
G95 = G95 Fortran (g95.org)
|
||||
|
||||
@@ -91,6 +91,7 @@ else()
|
||||
set(_Fortran_COMPILER_NAMES_Absoft af95 af90 af77)
|
||||
set(_Fortran_COMPILER_NAMES_PGI pgf95 pgfortran pgf90 pgf77)
|
||||
set(_Fortran_COMPILER_NAMES_Flang flang)
|
||||
set(_Fortran_COMPILER_NAMES_LLVMFlang flang)
|
||||
set(_Fortran_COMPILER_NAMES_PathScale pathf2003 pathf95 pathf90)
|
||||
set(_Fortran_COMPILER_NAMES_XL xlf)
|
||||
set(_Fortran_COMPILER_NAMES_VisualAge xlf95 xlf90 xlf)
|
||||
|
||||
@@ -154,6 +154,13 @@
|
||||
# if defined(__FLANG_PATCHLEVEL__)
|
||||
# define COMPILER_VERSION_PATCH DEC(__FLANG_PATCHLEVEL__)
|
||||
# endif
|
||||
#elif defined(__flang__)
|
||||
PRINT *, 'INFO:compiler[LLVMFlang]'
|
||||
# define COMPILER_VERSION_MAJOR DEC(__flang_major__)
|
||||
# define COMPILER_VERSION_MINOR DEC(__flang_minor__)
|
||||
# if defined(__flang_patchlevel__)
|
||||
# define COMPILER_VERSION_PATCH DEC(__flang_patchlevel__)
|
||||
# endif
|
||||
#elif defined(_AIX) || defined(__AIX) || defined(__AIX__) || defined(__aix) || defined(__aix__)
|
||||
PRINT *, 'INFO:compiler[VisualAge]'
|
||||
#elif defined(__hpux) || defined(__hpux__)
|
||||
|
||||
13
Modules/Compiler/LLVMFlang-Fortran.cmake
Normal file
13
Modules/Compiler/LLVMFlang-Fortran.cmake
Normal file
@@ -0,0 +1,13 @@
|
||||
set(CMAKE_Fortran_SUBMODULE_SEP "-")
|
||||
set(CMAKE_Fortran_SUBMODULE_EXT ".mod")
|
||||
|
||||
set(CMAKE_Fortran_PREPROCESS_SOURCE
|
||||
"<CMAKE_Fortran_COMPILER> -cpp <DEFINES> <INCLUDES> <FLAGS> -E <SOURCE> > <PREPROCESSED_SOURCE>")
|
||||
|
||||
set(CMAKE_Fortran_FORMAT_FIXED_FLAG "-ffixed-form")
|
||||
set(CMAKE_Fortran_FORMAT_FREE_FLAG "-ffree-form")
|
||||
|
||||
set(CMAKE_Fortran_MODDIR_FLAG "-module-dir")
|
||||
|
||||
set(CMAKE_Fortran_COMPILE_OPTIONS_PREPROCESS_ON "-cpp")
|
||||
set(CMAKE_Fortran_COMPILE_OPTIONS_PREPROCESS_OFF "-nocpp")
|
||||
Reference in New Issue
Block a user