summaryrefslogtreecommitdiff
path: root/Modules/CMakeFortranCompilerABI.F
diff options
context:
space:
mode:
authorBrad King <brad.king@kitware.com>2010-01-12 09:38:13 -0500
committerBrad King <brad.king@kitware.com>2010-01-12 09:38:13 -0500
commit6c1e24276f97112c914065dff772246b0d73ec06 (patch)
tree6fdb3d3a6d9cfbcbdae500e91bc7277275f24ea7 /Modules/CMakeFortranCompilerABI.F
parentb5100623f32e82014c3994fd7ee19afca9506c19 (diff)
downloadcmake-6c1e24276f97112c914065dff772246b0d73ec06.tar.gz
Detect Fortran ABI Information
Implement Fortran 32/64-bit ABI detection on some platforms. We need to set CMAKE_SIZEOF_VOID_P correctly in Fortran-only projects so that the find_library() command knows whether to look for 64-bit binaries. We also detect ELF binaries to enable RPATH replacement. See issue #10119.
Diffstat (limited to 'Modules/CMakeFortranCompilerABI.F')
-rw-r--r--Modules/CMakeFortranCompilerABI.F34
1 files changed, 32 insertions, 2 deletions
diff --git a/Modules/CMakeFortranCompilerABI.F b/Modules/CMakeFortranCompilerABI.F
index cf8662fb88..b8efb426e0 100644
--- a/Modules/CMakeFortranCompilerABI.F
+++ b/Modules/CMakeFortranCompilerABI.F
@@ -1,3 +1,33 @@
- PROGRAM CMakeFortranCompilerId
- PRINT *, 'ABI Detection Binary'
+ PROGRAM CMakeFortranCompilerABI
+#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(_ILP32)
+ PRINT *, 'INFO:sizeof_dptr[4]'
+#elif defined(_M_IX86)
+ PRINT *, 'INFO:sizeof_dptr[4]'
+#endif
+
+#if 0
+! Application Binary Interface
+#endif
+#if defined(__sgi) && defined(_ABIO32)
+ PRINT *, 'INFO:abi[ELF O32]'
+#elif defined(__sgi) && defined(_ABIN32)
+ PRINT *, 'INFO:abi[ELF N32]'
+#elif defined(__sgi) && defined(_ABI64)
+ PRINT *, 'INFO:abi[ELF 64]'
+#elif defined(__ELF__)
+ PRINT *, 'INFO:abi[ELF]'
+#endif
+ PRINT *, 'ABI Detection'
END