mirror of
https://github.com/Kitware/CMake.git
synced 2025-12-30 18:29:37 -06:00
Fortran: Subsume F90 check into ABI check
Follow the approach from commit 1d21dd0f7c (enable_language: Assume
compiler works if ABI detection compiles, 2020-05-25, v3.18.0-rc1~93^2)
to avoid a redundant check for F90 support. Almost all maintained
Fortran compilers support F90 these days.
Fixes: #22222
This commit is contained in:
committed by
Brad King
parent
a6b075c3f8
commit
97e2828d14
48
Modules/CMakeFortranCompilerABI.F90
Normal file
48
Modules/CMakeFortranCompilerABI.F90
Normal file
@@ -0,0 +1,48 @@
|
||||
program CMakeFortranCompilerABI
|
||||
|
||||
implicit none
|
||||
|
||||
integer :: i(1) = 0
|
||||
where (i==0) i=1
|
||||
if (any(i/=1)) stop 1
|
||||
! showing Fortran 90 syntax is OK
|
||||
|
||||
#if 0
|
||||
! Address Size
|
||||
#endif
|
||||
#if defined(_LP64)
|
||||
PRINT *, 'INFO:sizeof_dptr[8]'
|
||||
#elif defined(_M_IA64)
|
||||
PRINT *, 'INFO:sizeof_dptr[8]'
|
||||
#elif defined(_M_X64)
|
||||
PRINT *, 'INFO:sizeof_dptr[8]'
|
||||
#elif defined(_M_AMD64)
|
||||
PRINT *, 'INFO:sizeof_dptr[8]'
|
||||
#elif defined(__x86_64__)
|
||||
PRINT *, 'INFO:sizeof_dptr[8]'
|
||||
|
||||
#elif defined(_ILP32)
|
||||
PRINT *, 'INFO:sizeof_dptr[4]'
|
||||
#elif defined(_M_IX86)
|
||||
PRINT *, 'INFO:sizeof_dptr[4]'
|
||||
#elif defined(__i386__)
|
||||
PRINT *, 'INFO:sizeof_dptr[4]'
|
||||
|
||||
#elif defined(__SIZEOF_POINTER__) && __SIZEOF_POINTER__ == 8
|
||||
PRINT *, 'INFO:sizeof_dptr[8]'
|
||||
#elif defined(__SIZEOF_POINTER__) && __SIZEOF_POINTER__ == 4
|
||||
PRINT *, 'INFO:sizeof_dptr[4]'
|
||||
#elif defined(__SIZEOF_SIZE_T__) && __SIZEOF_SIZE_T__ == 8
|
||||
PRINT *, 'INFO:sizeof_dptr[8]'
|
||||
#elif defined(__SIZEOF_SIZE_T__) && __SIZEOF_SIZE_T__ == 4
|
||||
PRINT *, 'INFO:sizeof_dptr[4]'
|
||||
#endif
|
||||
|
||||
#if 0
|
||||
! Application Binary Interface
|
||||
#endif
|
||||
#if defined(__ELF__)
|
||||
PRINT *, 'INFO:abi[ELF]'
|
||||
#endif
|
||||
PRINT *, 'ABI Detection'
|
||||
end program
|
||||
@@ -17,11 +17,18 @@ unset(CMAKE_Fortran_COMPILER_WORKS CACHE)
|
||||
|
||||
# Try to identify the ABI and configure it into CMakeFortranCompiler.cmake
|
||||
include(${CMAKE_ROOT}/Modules/CMakeDetermineCompilerABI.cmake)
|
||||
CMAKE_DETERMINE_COMPILER_ABI(Fortran ${CMAKE_ROOT}/Modules/CMakeFortranCompilerABI.F)
|
||||
CMAKE_DETERMINE_COMPILER_ABI(Fortran ${CMAKE_ROOT}/Modules/CMakeFortranCompilerABI.F90)
|
||||
if(CMAKE_Fortran_ABI_COMPILED)
|
||||
# The compiler worked so skip dedicated test below.
|
||||
set(CMAKE_Fortran_COMPILER_WORKS TRUE)
|
||||
set(CMAKE_Fortran_COMPILER_SUPPORTS_F90 1)
|
||||
message(STATUS "Check for working Fortran compiler: ${CMAKE_Fortran_COMPILER} - skipped")
|
||||
else()
|
||||
cmake_determine_compiler_abi(Fortran ${CMAKE_ROOT}/Modules/CMakeFortranCompilerABI.F)
|
||||
if(CMAKE_Fortran_ABI_COMPILED)
|
||||
set(CMAKE_Fortran_COMPILER_WORKS TRUE)
|
||||
message(STATUS "Check for working Fortran 77 compiler: ${CMAKE_Fortran_COMPILER} - skipped")
|
||||
endif()
|
||||
endif()
|
||||
|
||||
# This file is used by EnableLanguage in cmGlobalGenerator to
|
||||
|
||||
Reference in New Issue
Block a user