Просмотр исходного кода

Use Fortran ABI detection results conservatively

We set CMAKE_Fortran_SIZEOF_DATA_PTR in the Fortran compiler information
file after detecting the compiler ABI.  However, since Fortran does not
really have pointers, the preprocessor-based detection is unreliable.
The result is needed to set CMAKE_SIZEOF_VOID_P only for Fortran-only
projects because the value can come from C or C++ compilers otherwise.
Therefore when CMAKE_SIZEOF_VOID_P is available from another language we
should defer to it.
Brad King 15 лет назад
Родитель
Сommit
0457d53151
1 измененных файлов с 2 добавлено и 2 удалено
  1. 2 2
      Modules/CMakeFortranCompiler.cmake.in

+ 2 - 2
Modules/CMakeFortranCompiler.cmake.in

@@ -34,9 +34,9 @@ ENDIF(UNIX)
 SET(CMAKE_Fortran_SIZEOF_DATA_PTR "@CMAKE_Fortran_SIZEOF_DATA_PTR@")
 SET(CMAKE_Fortran_COMPILER_ABI "@CMAKE_Fortran_COMPILER_ABI@")
 
-IF(CMAKE_Fortran_SIZEOF_DATA_PTR)
+IF(CMAKE_Fortran_SIZEOF_DATA_PTR AND NOT CMAKE_SIZEOF_VOID_P)
   SET(CMAKE_SIZEOF_VOID_P "${CMAKE_Fortran_SIZEOF_DATA_PTR}")
-ENDIF(CMAKE_Fortran_SIZEOF_DATA_PTR)
+ENDIF()
 
 IF(CMAKE_Fortran_COMPILER_ABI)
   SET(CMAKE_INTERNAL_PLATFORM_ABI "${CMAKE_Fortran_COMPILER_ABI}")