From: Ian S. <ian...@st...> - 2005-11-04 10:27:28
|
I have committed the tests and options to the VXL cmake configuration. Perhaps someone with a large file and a Unix platform could test that a clean install actually works. Rob: I suggest you add the vil_stream_fstream64 under the control of CMake. So somewhere in vil/CMakeLists.txt add something like: IF (WIN32 AND VXL_USE_LFS) #This is a hack since win32 doesn't have transparent Large File Support. ADD_DEFINITIONS( -DVIL_USE_FSTREAM64 ) SET( vil_sources ${vil_sources} vil_stream_fstream64.cxx vil_stream_fstream64.h ) ENDIF (WIN32 AND VXL_USE_LFS) The files that might use vil_stream_fstream64 instead of vil_stream_fstream can then test for it using #ifdef VIL_USE_FSTREAM64 Ian. Kongbin Kang wrote: > Ian Scott wrote: > >> Kongbin >> >> It must be possible to write a small program, compile it with the >> appropriate flags, and test if LFS is supported. (Either compile >> failure or test program exit code indicating no support.) If you put >> that test in the CMake config (in >> $vxl/config/cmake/config/vxl_platform_tests.cxx), then CMake can >> provide the option to any platform that supports LFS. >> >> Thank-you to Kongbin and Robert for you efforts on LFS. >> >> Ian >> >> BTW - lets keep this to vxl-maintainers. >> > > Thanks input from Gehua and Ian. How about the following code, which > test whether off_t is 8 bytes or 4 bytes: > > #define _LARGEFILE_SOURCE > #define _FILE_OFFSET_BITS 64 > > #include <fstream> > #include <iostream> > > int main(int argc, char * argv[]) > { > if( sizeof(off_t)==8 ) > return 1 ; > else > return 0; > } > |