mirror of
https://github.com/Kitware/CMake.git
synced 2026-02-21 06:30:20 -06:00
Merge topic 'flang'
d8e03e9bFindOpenMP: Add Flang flag.2f3a07a9Flang: Add support for flang Fortran compiler Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !1141
This commit is contained in:
6
Help/release/dev/flang.rst
Normal file
6
Help/release/dev/flang.rst
Normal file
@@ -0,0 +1,6 @@
|
||||
flang
|
||||
-----
|
||||
|
||||
* The `flang`_ Fortran compiler is now supported, with compiler id ``Flang``.
|
||||
|
||||
.. _`flang`: https://github.com/flang-compiler/flang
|
||||
@@ -27,6 +27,7 @@ include:
|
||||
NVIDIA = NVIDIA CUDA Compiler (nvidia.com)
|
||||
OpenWatcom = Open Watcom (openwatcom.org)
|
||||
PGI = The Portland Group (pgroup.com)
|
||||
Flang = Flang Fortran Compiler
|
||||
PathScale = PathScale (pathscale.com)
|
||||
SDCC = Small Device C Compiler (sdcc.sourceforge.net)
|
||||
SunPro = Oracle Solaris Studio (oracle.com)
|
||||
|
||||
@@ -52,6 +52,7 @@ else()
|
||||
# frt: Fujitsu F77 compiler
|
||||
# pathf90/pathf95/pathf2003: PathScale Fortran compiler
|
||||
# pgf77/pgf90/pgf95/pgfortran: Portland Group F77/F90/F95 compilers
|
||||
# flang: Flang Fortran compiler
|
||||
# xlf/xlf90/xlf95: IBM (AIX) F77/F90/F95 compilers
|
||||
# lf95: Lahey-Fujitsu F95 compiler
|
||||
# fl32: Microsoft Fortran 77 "PowerStation" compiler
|
||||
@@ -68,7 +69,7 @@ else()
|
||||
set(CMAKE_Fortran_COMPILER_LIST
|
||||
ftn
|
||||
ifort ifc af95 af90 efc f95 pathf2003 pathf95 pgf95 pgfortran lf95 xlf95
|
||||
fort gfortran gfortran-4 g95 f90 pathf90 pgf90 xlf90 epcf90 fort77
|
||||
fort flang gfortran gfortran-4 g95 f90 pathf90 pgf90 xlf90 epcf90 fort77
|
||||
frt pgf77 xlf fl32 af77 g77 f77 nag
|
||||
)
|
||||
|
||||
@@ -77,10 +78,11 @@ else()
|
||||
set(_Fortran_COMPILER_NAMES_Intel ifort ifc efc)
|
||||
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_PathScale pathf2003 pathf95 pathf90)
|
||||
set(_Fortran_COMPILER_NAMES_XL xlf)
|
||||
set(_Fortran_COMPILER_NAMES_VisualAge xlf95 xlf90 xlf)
|
||||
set(_Fortran_COMPILER_NAMES_NAG nagfor)
|
||||
set(_Fortran_COMPILER_NAMES_NAG nagfor)
|
||||
endif()
|
||||
|
||||
_cmake_find_compiler(Fortran)
|
||||
|
||||
@@ -90,6 +90,13 @@
|
||||
# if defined(__PGIC_PATCHLEVEL__)
|
||||
# define COMPILER_VERSION_PATCH DEC(__PGIC_PATCHLEVEL__)
|
||||
# endif
|
||||
#elif defined(__FLANG)
|
||||
PRINT *, 'INFO:compiler[Flang]'
|
||||
# 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(_SGI_COMPILER_VERSION) || defined(_COMPILER_VERSION)
|
||||
PRINT *, 'INFO:compiler[MIPSpro]'
|
||||
# if 0
|
||||
|
||||
1
Modules/Compiler/Flang-FindBinUtils.cmake
Normal file
1
Modules/Compiler/Flang-FindBinUtils.cmake
Normal file
@@ -0,0 +1 @@
|
||||
include(Compiler/Clang-FindBinUtils)
|
||||
12
Modules/Compiler/Flang-Fortran.cmake
Normal file
12
Modules/Compiler/Flang-Fortran.cmake
Normal file
@@ -0,0 +1,12 @@
|
||||
include(Compiler/Clang)
|
||||
__compiler_clang(Fortran)
|
||||
|
||||
set(CMAKE_Fortran_PREPROCESS_SOURCE
|
||||
"<CMAKE_Fortran_COMPILER> -cpp <DEFINES> <INCLUDES> <FLAGS> -E <SOURCE> -o <PREPROCESSED_SOURCE>")
|
||||
|
||||
set(CMAKE_Fortran_FORMAT_FIXED_FLAG "-ffixed-form")
|
||||
set(CMAKE_Fortran_FORMAT_FREE_FLAG "-ffree-form")
|
||||
|
||||
string(APPEND CMAKE_Fortran_FLAGS_DEBUG_INIT " -fbounds-check")
|
||||
|
||||
set(CMAKE_Fortran_MODDIR_FLAG "-J")
|
||||
@@ -95,6 +95,7 @@ function(_OPENMP_FLAG_CANDIDATES LANG)
|
||||
set(OMP_FLAG_NAG "-openmp")
|
||||
set(OMP_FLAG_Absoft "-openmp")
|
||||
set(OMP_FLAG_PGI "-mp")
|
||||
set(OMP_FLAG_Flang "-fopenmp")
|
||||
set(OMP_FLAG_SunPro "-xopenmp")
|
||||
set(OMP_FLAG_XL "-qsmp=omp")
|
||||
# Cray compiles with OpenMP automatically
|
||||
|
||||
Reference in New Issue
Block a user