Fix large file support
authorRoland Schulz <roland@utk.edu>
Fri, 19 Oct 2012 21:35:35 +0000 (17:35 -0400)
committerRoland Schulz <roland@utk.edu>
Fri, 19 Oct 2012 21:40:23 +0000 (17:40 -0400)
Variables containing flags need to be cached. Before config.h
was written correct on first run but rerunning cmake caused
flags to be ommited. Also fixed test program.

Change-Id: Id948c54766547a85ac84751762de3afba21ea576

cmake/TestLargeFiles.c.cmakein
cmake/gmxTestLargeFiles.cmake

index 8269103206c8e2cdfd8d422b155f67be42d4c5f5..a6bc499653bca5ff0c05764f4d9e8be7b6bf8939 100644 (file)
@@ -1,7 +1,7 @@
 #cmakedefine _LARGEFILE_SOURCE
 #cmakedefine _LARGEFILE64_SOURCE
 #cmakedefine _LARGE_FILES
-#cmakedefine _FILE_OFFSET_BITS 
+#cmakedefine _FILE_OFFSET_BITS @_FILE_OFFSET_BITS@
 
 #include <sys/types.h>
 #include <stdio.h>
index 5a97bed65ec59ae8c0d69117816c2975da001f2e..22fee0119ea907c6aff964ba572526b0813b2a93 100644 (file)
@@ -35,7 +35,7 @@ MACRO(GMX_TEST_LARGE_FILES VARIABLE)
                         COMPILE_DEFINITIONS "-D_FILE_OFFSET_BITS=64" )
             if(FILE64_OK)
                MESSAGE(STATUS "Checking for 64-bit off_t - present with _FILE_OFFSET_BITS=64")
-                set(_FILE_OFFSET_BITS 64)
+                set(_FILE_OFFSET_BITS 64 CACHE INTERNAL "64-bit off_t requires _FILE_OFFSET_BITS=64")
             endif(FILE64_OK)
         endif(NOT FILE64_OK)    
 
@@ -46,7 +46,7 @@ MACRO(GMX_TEST_LARGE_FILES VARIABLE)
                         COMPILE_DEFINITIONS "-D_LARGE_FILES" )
             if(FILE64_OK)
                 MESSAGE(STATUS "Checking for 64-bit off_t - present with _LARGE_FILES")
-                set(_LARGE_FILES 1)
+                set(_LARGE_FILES 1 CACHE INTERNAL "64-bit off_t requires _LARGE_FILES")
             endif(FILE64_OK)
         endif(NOT FILE64_OK)
        
@@ -57,7 +57,7 @@ MACRO(GMX_TEST_LARGE_FILES VARIABLE)
                         COMPILE_DEFINITIONS "-D_LARGEFILE_SOURCE" )
             if(FILE64_OK)
                 MESSAGE(STATUS "Checking for 64-bit off_t - present with _LARGEFILE_SOURCE")
-                              set(_LARGEFILE_SOURCE 1)
+               set(_LARGEFILE_SOURCE 1 CACHE INTERNAL "64-bit off_t requires _LARGEFILE_SOURCE")
             endif(FILE64_OK)
         endif(NOT FILE64_OK)
 
@@ -67,7 +67,7 @@ MACRO(GMX_TEST_LARGE_FILES VARIABLE)
                         "${CMAKE_SOURCE_DIR}/cmake/TestWindowsFSeek.c")
             if(FILE64_OK)
                 MESSAGE(STATUS "Checking for 64-bit off_t - present with _fseeki64")
-                set(HAVE__FSEEKI64 1)
+                set(HAVE__FSEEKI64 1 CACHE INTERNAL "64-bit off_t requires _fseeki64")
             endif(FILE64_OK)
         endif(NOT FILE64_OK)
 
@@ -94,7 +94,7 @@ MACRO(GMX_TEST_LARGE_FILES VARIABLE)
                             COMPILE_DEFINITIONS "-D_LARGEFILE_SOURCE" )
                 if(FSEEKO_COMPILE_OK)
                     MESSAGE(STATUS "Checking for fseeko/ftello - present with _LARGEFILE_SOURCE")
-                    set(_LARGEFILE_SOURCE 1)
+                    set(_LARGEFILE_SOURCE 1 CACHE INTERNAL "64-bit fseeko requires _LARGEFILE_SOURCE")
                 endif(FSEEKO_COMPILE_OK)
             endif(NOT FSEEKO_COMPILE_OK)