summaryrefslogtreecommitdiff
path: root/Modules/CMakeFortranCompiler.cmake.in
diff options
context:
space:
mode:
authorBrad King <brad.king@kitware.com>2010-05-05 17:42:11 -0400
committerBrad King <brad.king@kitware.com>2010-05-05 17:46:29 -0400
commit0457d5315166892d6975ddf9829db7ecffb0499c (patch)
tree38ae16374cf08cc8910569c3027938b1e3758e5f /Modules/CMakeFortranCompiler.cmake.in
parent7883f952b06e378eef7662a42a8c466cbe5aa285 (diff)
downloadcmake-0457d5315166892d6975ddf9829db7ecffb0499c.tar.gz
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.
Diffstat (limited to 'Modules/CMakeFortranCompiler.cmake.in')
-rw-r--r--Modules/CMakeFortranCompiler.cmake.in4
1 files changed, 2 insertions, 2 deletions
diff --git a/Modules/CMakeFortranCompiler.cmake.in b/Modules/CMakeFortranCompiler.cmake.in
index ba2b46d631..5558651953 100644
--- a/Modules/CMakeFortranCompiler.cmake.in
+++ b/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}")