diff options
author | Quincey Koziol <koziol@hdfgroup.org> | 2011-04-19 20:15:21 (GMT) |
---|---|---|
committer | Quincey Koziol <koziol@hdfgroup.org> | 2011-04-19 20:15:21 (GMT) |
commit | 099b37d073e633b0cb4d8c3f41ddf5788e63e6ee (patch) | |
tree | 3316f03ab81dbbab9160aac62fefe3f78b50c1d4 /config/cmake | |
parent | 94cf912176257c753eaddde0acabc9a11be2e48d (diff) | |
download | hdf5-099b37d073e633b0cb4d8c3f41ddf5788e63e6ee.zip hdf5-099b37d073e633b0cb4d8c3f41ddf5788e63e6ee.tar.gz hdf5-099b37d073e633b0cb4d8c3f41ddf5788e63e6ee.tar.bz2 |
[svn-r20559] Description:
Bring r20407:20557 from trunk to revise_chunks branch
Tested on:
FreeBSD/32 6.3 (duty) in debug mode
FreeBSD/64 6.3 (liberty) w/C++ & FORTRAN, in debug mode
Linux/32 2.6 (jam) w/PGI compilers, w/default API=1.8.x,
w/C++ & FORTRAN, w/threadsafe, in debug mode
Linux/64-amd64 2.6 (amani) w/Intel compilers, w/default API=1.6.x,
w/C++ & FORTRAN, in production mode
Solaris/32 2.10 (linew) w/deprecated symbols disabled, w/C++ & FORTRAN,
w/szip filter, w/threadsafe, in production mode
Linux/PPC 2.6 (heiwa) w/C++ & FORTRAN, w/threadsafe, in debug mode
Linux/64-ia64 2.6 (ember) w/Intel compilers, w/C++ & FORTRAN,
in production mode
Linux/64-amd64 2.6 (abe) w/parallel, w/FORTRAN, in debug mode
Diffstat (limited to 'config/cmake')
-rwxr-xr-x | config/cmake/CTestCustom.cmake | 22 | ||||
-rw-r--r-- | config/cmake/ConfigureChecks.cmake | 38 | ||||
-rw-r--r-- | config/cmake/H5pubconf.h.in | 8 | ||||
-rw-r--r-- | config/cmake/HDF5Tests.c | 19 | ||||
-rw-r--r-- | config/cmake/HDFMacros.cmake | 118 | ||||
-rw-r--r-- | config/cmake/userblockTest.cmake | 120 |
6 files changed, 237 insertions, 88 deletions
diff --git a/config/cmake/CTestCustom.cmake b/config/cmake/CTestCustom.cmake index 6dae1ce..1ae77bc 100755 --- a/config/cmake/CTestCustom.cmake +++ b/config/cmake/CTestCustom.cmake @@ -29,6 +29,7 @@ SET (CTEST_CUSTOM_MEMCHECK_IGNORE H5COPY-clear-refs H5COPY-clear-ext-links H5COPY-clear-misc + H5COPY-clear-samefile ######### tools/h5diff ######### H5DIFF-clearall-objects ######### tools/h5dump ######### @@ -57,33 +58,45 @@ SET (CTEST_CUSTOM_MEMCHECK_IGNORE H5IMPORT-BINARY_F64-clear-objects H5IMPORT-ASCII_F64-clear-objects ######### tools/h5jam ######### + H5JAM-SETUP-N_twithub_u10_c-clear-objects + H5JAM-SETUP-N_twithub_u10_c + H5JAM-N_twithub_u10_c-clear-objects + H5JAM-NONE_COPY-N_twithub_u10_c + H5JAM-CHECKFILE-N_twithub_u10_c-clear-objects H5JAM-SETUP-N_twithub_u511_c-clear-objects H5JAM-SETUP-N_twithub_u511_c H5JAM-N_twithub_u511_c-clear-objects + H5JAM-NONE_COPY-N_twithub_u511_c H5JAM-CHECKFILE-N_twithub_u511_c-clear-objects H5JAM-SETUP-N_twithub_u512_c-clear-objects H5JAM-SETUP-N_twithub_u512_c H5JAM-N_twithub_u512_c-clear-objects + H5JAM-NONE_COPY-N_twithub_u512_c H5JAM-CHECKFILE-N_twithub_u512_c-clear-objects H5JAM-SETUP-N_twithub_u513_c-clear-objects H5JAM-SETUP-N_twithub_u513_c H5JAM-N_twithub_u513_c-clear-objects + H5JAM-NONE_COPY-N_twithub_u513_c H5JAM-CHECKFILE-N_twithub_u513_c-clear-objects H5JAM-SETUP-N_twithub513_u10_c-clear-objects H5JAM-SETUP-N_twithub513_u10_c H5JAM-N_twithub513_u10_c-clear-objects + H5JAM-NONE_COPY-N_twithub513_u10_c H5JAM-CHECKFILE-N_twithub513_u10_c-clear-objects H5JAM-SETUP-N_twithub513_u511_c-clear-objects H5JAM-SETUP-N_twithub513_u511_c H5JAM-N_twithub513_u511_c-clear-objects + H5JAM-NONE_COPY-N_twithub513_u511_c H5JAM-CHECKFILE-N_twithub513_u511_c-clear-objects H5JAM-SETUP-N_twithub513_u512_c-clear-objects H5JAM-SETUP-N_twithub513_u512_c H5JAM-N_twithub513_u512_c-clear-objects + H5JAM-NONE_COPY-N_twithub513_u512_c H5JAM-CHECKFILE-N_twithub513_u512_c-clear-objects H5JAM-SETUP-N_twithub513_u513_c-clear-objects H5JAM-SETUP-N_twithub513_u513_c H5JAM-N_twithub513_u513_c-clear-objects + H5JAM-NONE_COPY-N_twithub513_u513_c H5JAM-CHECKFILE-N_twithub513_u513_c-clear-objects H5JAM-CHECKFILE-twithub_u10_c-clear-objects H5JAM-twithub_u511_c-clear-objects @@ -100,10 +113,6 @@ SET (CTEST_CUSTOM_MEMCHECK_IGNORE H5JAM-CHECKFILE-twithub513_u512_c-clear-objects H5JAM-twithub513_u513_c-clear-objects H5JAM-CHECKFILE-twithub513_u513_c-clear-objects - H5JAM-SETUP-N_twithub_u10_c-clear-objects - H5JAM-SETUP-N_twithub_u10_c - H5JAM-N_twithub_u10_c-clear-objects - H5JAM-CHECKFILE-N_twithub_u10_c-clear-objects H5JAM-SETUP-twithub_tall-clear-objects H5JAM-SETUP-twithub_tall H5JAM-UNJAM-twithub_tall-clear-objects @@ -125,6 +134,7 @@ SET (CTEST_CUSTOM_MEMCHECK_IGNORE H5JAM-UNJAM_D-N_twithub513_tall-clear-objects H5JAM-CHECKFILE-N_twithub513_tall-clear-objects H5JAM-SETUP-D_twithub_tall-clear-objects + H5JAM-SETUP-D_twithub_tall H5JAM-UNJAM-D_twithub_tall-clear-objects H5JAM-UNJAM_D-D_twithub_tall-clear-objects H5JAM-CHECKFILE-D_twithub_tall-clear-objects @@ -162,18 +172,22 @@ SET (CTEST_CUSTOM_MEMCHECK_IGNORE H5JAM-SETUP-ta_u10-clear-objects H5JAM-SETUP-ta_u10 H5JAM-ta_u10-clear-objects + H5JAM-NONE_COPY-ta_u10 H5JAM-CHECKFILE-ta_u10-clear-objects H5JAM-SETUP-ta_u511-clear-objects H5JAM-SETUP-ta_u511 H5JAM-ta_u511-clear-objects + H5JAM-NONE_COPY-ta_u511 H5JAM-CHECKFILE-ta_u511-clear-objects H5JAM-SETUP-ta_u512-clear-objects H5JAM-SETUP-ta_u512 H5JAM-ta_u512-clear-objects + H5JAM-NONE_COPY-ta_u512 H5JAM-CHECKFILE-ta_u512-clear-objects H5JAM-SETUP-ta_u513-clear-objects H5JAM-SETUP-ta_u513 H5JAM-ta_u513-clear-objects + H5JAM-NONE_COPY-ta_u513 ######### tools/h5ls ######### H5LS-clearall-objects ######### tools/h5repack ######### diff --git a/config/cmake/ConfigureChecks.cmake b/config/cmake/ConfigureChecks.cmake index cea7bf9..f1883cd 100644 --- a/config/cmake/ConfigureChecks.cmake +++ b/config/cmake/ConfigureChecks.cmake @@ -8,11 +8,9 @@ INCLUDE (${CMAKE_ROOT}/Modules/CheckIncludeFiles.cmake) INCLUDE (${CMAKE_ROOT}/Modules/CheckLibraryExists.cmake) INCLUDE (${CMAKE_ROOT}/Modules/CheckSymbolExists.cmake) INCLUDE (${CMAKE_ROOT}/Modules/CheckTypeSize.cmake) +INCLUDE (${CMAKE_ROOT}/Modules/CheckVariableExists.cmake) INCLUDE (${CMAKE_ROOT}/Modules/CheckFortranFunctionExists.cmake) -MESSAGE (STATUS "Configure Checks that still need to be implemented") -MESSAGE (STATUS " GetConsoleScreenBufferInfo function for Windows") - #----------------------------------------------------------------------------- # Always SET this for now IF we are on an OS X box #----------------------------------------------------------------------------- @@ -130,9 +128,9 @@ ENDMACRO (CHECK_LIBRARY_EXISTS_CONCAT) SET (WINDOWS) IF (WIN32) - IF (NOT UNIX AND NOT CYGWIN) + IF (NOT UNIX AND NOT CYGWIN AND NOT MINGW) SET (WINDOWS 1) - ENDIF (NOT UNIX AND NOT CYGWIN) + ENDIF (NOT UNIX AND NOT CYGWIN AND NOT MINGW) ENDIF (WIN32) #IF (WIN32) @@ -176,8 +174,11 @@ IF (WINDOWS) SET (H5_HAVE_LONGJMP 1) SET (H5_STDC_HEADERS 1) SET (H5_HAVE_GETHOSTNAME 1) - SET (H5_HAVE_TIMEZONE 1) + SET (H5_HAVE_GETCONSOLESCREENBUFFERINFO 1) SET (H5_HAVE_FUNCTION 1) + SET (H5_GETTIMEOFDAY_GIVES_TZ 1) + SET (H5_HAVE_TIMEZONE 1) + SET (H5_HAVE_GETTIMEOFDAY 1) SET (H5_LONE_COLON 0) ENDIF (WINDOWS) @@ -258,7 +259,6 @@ CHECK_INCLUDE_FILE_CONCAT ("sys/timeb.h" H5_HAVE_SYS_TIMEB_H) CHECK_INCLUDE_FILE_CONCAT ("sys/types.h" H5_HAVE_SYS_TYPES_H) CHECK_INCLUDE_FILE_CONCAT ("unistd.h" H5_HAVE_UNISTD_H) CHECK_INCLUDE_FILE_CONCAT ("stdlib.h" H5_HAVE_STDLIB_H) -CHECK_INCLUDE_FILE_CONCAT ("memory.h" H5_HAVE_MEMORY_H) CHECK_INCLUDE_FILE_CONCAT ("dlfcn.h" H5_HAVE_DLFCN_H) CHECK_INCLUDE_FILE_CONCAT ("features.h" H5_HAVE_FEATURES_H) CHECK_INCLUDE_FILE_CONCAT ("inttypes.h" H5_HAVE_INTTYPES_H) @@ -505,14 +505,14 @@ MACRO (HDF5_FUNCTION_TEST OTHER_TEST) ENDFOREACH (def) FOREACH (def - H5_HAVE_SYS_TIME_H - H5_HAVE_UNISTD_H - H5_HAVE_SYS_TYPES_H - H5_HAVE_SYS_SOCKET_H + HAVE_SYS_TIME_H + HAVE_UNISTD_H + HAVE_SYS_TYPES_H + HAVE_SYS_SOCKET_H ) - IF ("${def}") + IF ("${H5_${def}}") SET (MACRO_CHECK_FUNCTION_DEFINITIONS "${MACRO_CHECK_FUNCTION_DEFINITIONS} -D${def}") - ENDIF ("${def}") + ENDIF ("${H5_${def}}") ENDFOREACH (def) IF (LARGEFILE) @@ -521,7 +521,7 @@ MACRO (HDF5_FUNCTION_TEST OTHER_TEST) ) ENDIF (LARGEFILE) - # (STATUS "Performing ${OTHER_TEST}") + #MESSAGE (STATUS "Performing ${OTHER_TEST}") TRY_COMPILE (${OTHER_TEST} ${CMAKE_BINARY_DIR} ${HDF5_RESOURCES_DIR}/HDF5Tests.c @@ -571,11 +571,11 @@ IF (NOT WINDOWS) LONE_COLON ) HDF5_FUNCTION_TEST (${test}) - IF (NOT CYGWIN) - HDF5_FUNCTION_TEST (HAVE_TIMEZONE) -# HDF5_FUNCTION_TEST (HAVE_STAT_ST_BLOCKS) - ENDIF (NOT CYGWIN) ENDFOREACH (test) + IF (NOT CYGWIN AND NOT MINGW) + HDF5_FUNCTION_TEST (HAVE_TIMEZONE) +# HDF5_FUNCTION_TEST (HAVE_STAT_ST_BLOCKS) + ENDIF (NOT CYGWIN AND NOT MINGW) ENDIF (NOT WINDOWS) #----------------------------------------------------------------------------- @@ -851,4 +851,4 @@ H5ConversionTests (H5_NO_ALIGNMENT_RESTRICTIONS "Checking IF alignment restricti # problem converting from unsigned long long to long double */ IF (CYGWIN) SET (H5_CYGWIN_ULLONG_TO_LDOUBLE_ROUND_PROBLEM 1) -ENDIF (CYGWIN)
\ No newline at end of file +ENDIF (CYGWIN) diff --git a/config/cmake/H5pubconf.h.in b/config/cmake/H5pubconf.h.in index 0dbd1ec..df9c3a8 100644 --- a/config/cmake/H5pubconf.h.in +++ b/config/cmake/H5pubconf.h.in @@ -270,9 +270,6 @@ /* Define to 1 if you have the `lstat' function. */ #cmakedefine H5_HAVE_LSTAT @H5_HAVE_LSTAT@ -/* Define to 1 if you have the <memory.h> header file. */ -#cmakedefine H5_HAVE_MEMORY_H @H5_HAVE_MEMORY_H@ - /* Define if we have MPE support */ #cmakedefine H5_HAVE_MPE @H5_HAVE_MPE@ @@ -294,6 +291,9 @@ /* Define to 1 if you have the <pthread.h> header file. */ #cmakedefine H5_HAVE_PTHREAD_H @H5_HAVE_PTHREAD_H@ +/* Define to 1 if you have the 'InitOnceExecuteOnce' function. */ +#cmakedefine H5_HAVE_WIN_THREADS @H5_HAVE_WIN_THREADS@ + /* Define to 1 if you have the `random' function. */ #cmakedefine H5_HAVE_RANDOM @H5_HAVE_RANDOM@ @@ -790,4 +790,4 @@ #undef inline #endif -#endif
\ No newline at end of file +#endif diff --git a/config/cmake/HDF5Tests.c b/config/cmake/HDF5Tests.c index 7fb5756..55e91a4 100644 --- a/config/cmake/HDF5Tests.c +++ b/config/cmake/HDF5Tests.c @@ -217,7 +217,9 @@ SIMPLE_TEST(struct tm tm; tm.tm_gmtoff=0); #ifdef HAVE_TIMEZONE +#ifdef HAVE_SYS_TIME_H #include <sys/time.h> +#endif #include <time.h> SIMPLE_TEST(timezone=0); @@ -382,4 +384,21 @@ int main () #endif /* HAVE_GPFS */ +#ifdef HAVE_WIN_THREADS + +#include <windows.h> +int main () +{ + BOOL first_init_g=INIT_ONCE_STATIC_INIT; + BOOL CALLBACK win32_first_thread_init(PINIT_ONCE InitOnce, PVOID Parameter, PVOID *lpContext); + BOOL ret=FALSE; + + ret=InitOnceExecuteOnce(&first_init_g, win32_first_thread_init, NULL, NULL); + exit(ret ? 0 : 1); +} +BOOL CALLBACK +win32_first_thread_init(PINIT_ONCE InitOnce, PVOID Parameter, PVOID *lpContext) +{return TRUE;} + +#endif /* HAVE_WIN_THREADS */ diff --git a/config/cmake/HDFMacros.cmake b/config/cmake/HDFMacros.cmake index 60ee6e8..cf23846 100644 --- a/config/cmake/HDFMacros.cmake +++ b/config/cmake/HDFMacros.cmake @@ -15,7 +15,11 @@ MACRO (EXTERNAL_JPEG_LIBRARY compress_type jpeg_pic) INSTALL_COMMAND "" CMAKE_ARGS -DBUILD_SHARED_LIBS:BOOL=OFF - -DCMAKE_BUILD_TYPE:STRING="Release" + -DJPEG_EXTERNALLY_CONFIGURED:BOOL=ON + -DCMAKE_INSTALL_PREFIX:PATH=${CMAKE_INSTALL_PREFIX} + -DCMAKE_RUNTIME_OUTPUT_DIRECTORY:PATH=${CMAKE_RUNTIME_OUTPUT_DIRECTORY} + -DCMAKE_LIBRARY_OUTPUT_DIRECTORY:PATH=${CMAKE_LIBRARY_OUTPUT_DIRECTORY} + -DCMAKE_ARCHIVE_OUTPUT_DIRECTORY:PATH=${CMAKE_ARCHIVE_OUTPUT_DIRECTORY} -DCMAKE_ANSI_CFLAGS:STRING="${jpeg_pic}" ) ELSEIF (${compress_type} MATCHES "TGZ") @@ -25,13 +29,27 @@ MACRO (EXTERNAL_JPEG_LIBRARY compress_type jpeg_pic) INSTALL_COMMAND "" CMAKE_ARGS -DBUILD_SHARED_LIBS:BOOL=OFF - -DCMAKE_BUILD_TYPE:STRING="Release" + -DJPEG_EXTERNALLY_CONFIGURED:BOOL=ON + -DCMAKE_INSTALL_PREFIX:PATH=${CMAKE_INSTALL_PREFIX} + -DCMAKE_RUNTIME_OUTPUT_DIRECTORY:PATH=${CMAKE_RUNTIME_OUTPUT_DIRECTORY} + -DCMAKE_LIBRARY_OUTPUT_DIRECTORY:PATH=${CMAKE_LIBRARY_OUTPUT_DIRECTORY} + -DCMAKE_ARCHIVE_OUTPUT_DIRECTORY:PATH=${CMAKE_ARCHIVE_OUTPUT_DIRECTORY} -DCMAKE_ANSI_CFLAGS:STRING="${jpeg_pic}" ) ENDIF (${compress_type} MATCHES "SVN") EXTERNALPROJECT_GET_PROPERTY (JPEG BINARY_DIR SOURCE_DIR) - SET (JPEG_LIBRARY "${BINARY_DIR}/bin/${CMAKE_CFG_INTDIR}/libjpeg${CMAKE_STATIC_LIBRARY_SUFFIX}") + IF (${BLDTYPE} MATCHES "Debug") + IF (WIN32 AND NOT MINGW) + SET (DBG_EXT "_D") + ELSE (WIN32 AND NOT MINGW) + SET (DBG_EXT "_debug") + ENDIF (WIN32 AND NOT MINGW) + ELSE (${BLDTYPE} MATCHES "Debug") + SET (DBG_EXT "") + ENDIF (${BLDTYPE} MATCHES "Debug") + + SET (JPEG_LIBRARY "${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/${CMAKE_CFG_INTDIR}/libjpeg${DBG_EXT}${CMAKE_STATIC_LIBRARY_SUFFIX}") SET (JPEG_INCLUDE_DIR_GEN "${BINARY_DIR}") SET (JPEG_INCLUDE_DIR "${SOURCE_DIR}/src") SET (JPEG_FOUND 1) @@ -46,15 +64,10 @@ MACRO (PACKAGE_JPEG_LIBRARY compress_type) COMMENT "Copying ${JPEG_INCLUDE_DIR_GEN}/jconfig.h to ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/" ) SET (EXTERNAL_HEADER_LIST ${EXTERNAL_HEADER_LIST} ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/jconfig.h) - ADD_CUSTOM_TARGET (JPEG-Library-Copy ALL - COMMAND ${CMAKE_COMMAND} -E copy_if_different ${JPEG_LIBRARY} ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/ - COMMENT "Copying ${JPEG_LIBRARY} to ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/" - ) GET_FILENAME_COMPONENT(JPEG_LIB_NAME ${JPEG_LIBRARY} NAME) - SET (EXTERNAL_LIBRARY_LIST ${EXTERNAL_LIBRARY_LIST} ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/${JPEG_LIB_NAME}) + SET (EXTERNAL_LIBRARY_LIST ${EXTERNAL_LIBRARY_LIST} ${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/${JPEG_LIB_NAME}) IF (${compress_type} MATCHES "SVN" OR ${compress_type} MATCHES "TGZ") ADD_DEPENDENCIES (JPEG-GenHeader-Copy JPEG) - ADD_DEPENDENCIES (JPEG-Library-Copy JPEG) ENDIF (${compress_type} MATCHES "SVN" OR ${compress_type} MATCHES "TGZ") ENDMACRO (PACKAGE_JPEG_LIBRARY) @@ -67,6 +80,11 @@ MACRO (EXTERNAL_SZIP_LIBRARY compress_type libtype encoding) INSTALL_COMMAND "" CMAKE_ARGS -DBUILD_SHARED_LIBS:BOOL=${BUILD_SHARED_LIBS} + -DSZIP_EXTERNALLY_CONFIGURED:BOOL=ON + -DCMAKE_INSTALL_PREFIX:PATH=${CMAKE_INSTALL_PREFIX} + -DCMAKE_RUNTIME_OUTPUT_DIRECTORY:PATH=${CMAKE_RUNTIME_OUTPUT_DIRECTORY} + -DCMAKE_LIBRARY_OUTPUT_DIRECTORY:PATH=${CMAKE_LIBRARY_OUTPUT_DIRECTORY} + -DCMAKE_ARCHIVE_OUTPUT_DIRECTORY:PATH=${CMAKE_ARCHIVE_OUTPUT_DIRECTORY} -DSZIP_ENABLE_ENCODING:BOOL=${encoding} ) ELSEIF (${compress_type} MATCHES "TGZ") @@ -76,6 +94,11 @@ MACRO (EXTERNAL_SZIP_LIBRARY compress_type libtype encoding) INSTALL_COMMAND "" CMAKE_ARGS -DBUILD_SHARED_LIBS:BOOL=${BUILD_SHARED_LIBS} + -DSZIP_EXTERNALLY_CONFIGURED:BOOL=ON + -DCMAKE_INSTALL_PREFIX:PATH=${CMAKE_INSTALL_PREFIX} + -DCMAKE_RUNTIME_OUTPUT_DIRECTORY:PATH=${CMAKE_RUNTIME_OUTPUT_DIRECTORY} + -DCMAKE_LIBRARY_OUTPUT_DIRECTORY:PATH=${CMAKE_LIBRARY_OUTPUT_DIRECTORY} + -DCMAKE_ARCHIVE_OUTPUT_DIRECTORY:PATH=${CMAKE_ARCHIVE_OUTPUT_DIRECTORY} -DSZIP_ENABLE_ENCODING:BOOL=${encoding} ) ENDIF (${compress_type} MATCHES "SVN") @@ -83,11 +106,7 @@ MACRO (EXTERNAL_SZIP_LIBRARY compress_type libtype encoding) IF (${BLDTYPE} MATCHES "Debug") IF (WIN32 AND NOT MINGW) - IF (HDF_LEGACY_NAMING) - SET (DBG_EXT "d") - ELSE (HDF_LEGACY_NAMING) - SET (DBG_EXT "_D") - ENDIF (HDF_LEGACY_NAMING) + SET (DBG_EXT "_D") ELSE (WIN32 AND NOT MINGW) SET (DBG_EXT "_debug") ENDIF (WIN32 AND NOT MINGW) @@ -97,12 +116,12 @@ MACRO (EXTERNAL_SZIP_LIBRARY compress_type libtype encoding) IF (${libtype} MATCHES "SHARED") IF (WIN32 AND NOT MINGW) - SET (SZIP_LIBRARY "${BINARY_DIR}/bin/${CMAKE_CFG_INTDIR}/${CMAKE_IMPORT_LIBRARY_PREFIX}szip${DBG_EXT}${CMAKE_IMPORT_LIBRARY_SUFFIX}") + SET (SZIP_LIBRARY "${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/${CMAKE_CFG_INTDIR}/${CMAKE_IMPORT_LIBRARY_PREFIX}szip${DBG_EXT}${CMAKE_IMPORT_LIBRARY_SUFFIX}") ELSE (WIN32 AND NOT MINGW) - SET (SZIP_LIBRARY "${BINARY_DIR}/bin/${CMAKE_CFG_INTDIR}/${CMAKE_SHARED_LIBRARY_PREFIX}szip${DBG_EXT}${CMAKE_SHARED_LIBRARY_SUFFIX}") + SET (SZIP_LIBRARY "${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/${CMAKE_CFG_INTDIR}/${CMAKE_SHARED_LIBRARY_PREFIX}szip${DBG_EXT}${CMAKE_SHARED_LIBRARY_SUFFIX}") ENDIF (WIN32 AND NOT MINGW) ELSE (${libtype} MATCHES "SHARED") - SET (SZIP_LIBRARY "${BINARY_DIR}/bin/${CMAKE_CFG_INTDIR}/libszip${DBG_EXT}${CMAKE_STATIC_LIBRARY_SUFFIX}") + SET (SZIP_LIBRARY "${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/${CMAKE_CFG_INTDIR}/libszip${DBG_EXT}${CMAKE_STATIC_LIBRARY_SUFFIX}") ENDIF (${libtype} MATCHES "SHARED") SET (SZIP_INCLUDE_DIR_GEN "${BINARY_DIR}") SET (SZIP_INCLUDE_DIR "${SOURCE_DIR}/src") @@ -118,30 +137,15 @@ MACRO (PACKAGE_SZIP_LIBRARY compress_type libtype) COMMENT "Copying ${SZIP_INCLUDE_DIR_GEN}/SZconfig.h to ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/" ) SET (EXTERNAL_HEADER_LIST ${EXTERNAL_HEADER_LIST} ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/SZconfig.h) - ADD_CUSTOM_TARGET (SZIP-Library-Copy ALL - COMMAND ${CMAKE_COMMAND} -E copy_if_different ${SZIP_LIBRARY} ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/ - COMMENT "Copying ${SZIP_LIBRARY} to ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/" - ) GET_FILENAME_COMPONENT(SZIP_LIB_NAME ${SZIP_LIBRARY} NAME) - SET (EXTERNAL_LIBRARY_LIST ${EXTERNAL_LIBRARY_LIST} ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/${SZIP_LIB_NAME}) + SET (EXTERNAL_LIBRARY_LIST ${EXTERNAL_LIBRARY_LIST} ${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/${SZIP_LIB_NAME}) IF (${compress_type} MATCHES "SVN" OR ${compress_type} MATCHES "TGZ") ADD_DEPENDENCIES (SZIP-GenHeader-Copy SZIP) - ADD_DEPENDENCIES (SZIP-Library-Copy SZIP) ENDIF (${compress_type} MATCHES "SVN" OR ${compress_type} MATCHES "TGZ") IF (WIN32 AND NOT CYGWIN) IF (${libtype} MATCHES "SHARED") GET_FILENAME_COMPONENT(SZIP_DLL_NAME ${SZIP_LIBRARY} NAME_WE) - # MESSAGE (STATUS "SZIP_DLL_NAME: ${SZIP_DLL_NAME}") - GET_FILENAME_COMPONENT(SZIP_BIN_PATH ${SZIP_LIBRARY} PATH) - # MESSAGE (STATUS "SZIP_BIN_PATH: ${SZIP_BIN_PATH}") - SET (EXTERNAL_LIBRARYDLL_LIST ${EXTERNAL_LIBRARYDLL_LIST} ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/${SZIP_DLL_NAME}${CMAKE_SHARED_LIBRARY_SUFFIX}) - ADD_CUSTOM_TARGET (SZIP-Dll-Copy ALL - COMMAND ${CMAKE_COMMAND} -E copy_if_different ${SZIP_BIN_PATH}/${SZIP_DLL_NAME}${CMAKE_SHARED_LIBRARY_SUFFIX} ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/ - COMMENT "Copying ${SZIP_BIN_PATH}/${SZIP_DLL_NAME}${CMAKE_SHARED_LIBRARY_SUFFIX} to ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/" - ) - IF (${compress_type} MATCHES "SVN" OR ${compress_type} MATCHES "TGZ") - ADD_DEPENDENCIES (SZIP-Dll-Copy SZIP) - ENDIF (${compress_type} MATCHES "SVN" OR ${compress_type} MATCHES "TGZ") + SET (EXTERNAL_LIBRARYDLL_LIST ${EXTERNAL_LIBRARYDLL_LIST} ${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/${SZIP_DLL_NAME}${CMAKE_SHARED_LIBRARY_SUFFIX}) ENDIF (${libtype} MATCHES "SHARED") ENDIF (WIN32 AND NOT CYGWIN) ENDMACRO (PACKAGE_SZIP_LIBRARY) @@ -155,6 +159,11 @@ MACRO (EXTERNAL_ZLIB_LIBRARY compress_type libtype) INSTALL_COMMAND "" CMAKE_ARGS -DBUILD_SHARED_LIBS:BOOL=${BUILD_SHARED_LIBS} + -DZLIB_EXTERNALLY_CONFIGURED:BOOL=ON + -DCMAKE_INSTALL_PREFIX:PATH=${CMAKE_INSTALL_PREFIX} + -DCMAKE_RUNTIME_OUTPUT_DIRECTORY:PATH=${CMAKE_RUNTIME_OUTPUT_DIRECTORY} + -DCMAKE_LIBRARY_OUTPUT_DIRECTORY:PATH=${CMAKE_LIBRARY_OUTPUT_DIRECTORY} + -DCMAKE_ARCHIVE_OUTPUT_DIRECTORY:PATH=${CMAKE_ARCHIVE_OUTPUT_DIRECTORY} -DHDF_LEGACY_NAMING:BOOL=${HDF_LEGACY_NAMING} ) ELSEIF (${compress_type} MATCHES "TGZ") @@ -164,6 +173,11 @@ MACRO (EXTERNAL_ZLIB_LIBRARY compress_type libtype) INSTALL_COMMAND "" CMAKE_ARGS -DBUILD_SHARED_LIBS:BOOL=${BUILD_SHARED_LIBS} + -DZLIB_EXTERNALLY_CONFIGURED:BOOL=ON + -DCMAKE_INSTALL_PREFIX:PATH=${CMAKE_INSTALL_PREFIX} + -DCMAKE_RUNTIME_OUTPUT_DIRECTORY:PATH=${CMAKE_RUNTIME_OUTPUT_DIRECTORY} + -DCMAKE_LIBRARY_OUTPUT_DIRECTORY:PATH=${CMAKE_LIBRARY_OUTPUT_DIRECTORY} + -DCMAKE_ARCHIVE_OUTPUT_DIRECTORY:PATH=${CMAKE_ARCHIVE_OUTPUT_DIRECTORY} -DHDF_LEGACY_NAMING:BOOL=${HDF_LEGACY_NAMING} ) ENDIF (${compress_type} MATCHES "SVN") @@ -171,11 +185,7 @@ MACRO (EXTERNAL_ZLIB_LIBRARY compress_type libtype) IF (${BLDTYPE} MATCHES "Debug") IF (WIN32 AND NOT MINGW) - IF (HDF_LEGACY_NAMING) - SET (DBG_EXT "d") - ELSE (HDF_LEGACY_NAMING) - SET (DBG_EXT "_D") - ENDIF (HDF_LEGACY_NAMING) + SET (DBG_EXT "_D") ELSE (WIN32 AND NOT MINGW) SET (DBG_EXT "_debug") ENDIF (WIN32 AND NOT MINGW) @@ -185,21 +195,22 @@ MACRO (EXTERNAL_ZLIB_LIBRARY compress_type libtype) IF (${libtype} MATCHES "SHARED") IF (WIN32 AND NOT MINGW) - SET (ZLIB_LIBRARY "${BINARY_DIR}/bin/${CMAKE_CFG_INTDIR}/${CMAKE_IMPORT_LIBRARY_PREFIX}zlib1${DBG_EXT}${CMAKE_IMPORT_LIBRARY_SUFFIX}") + SET (ZLIB_LIBRARY "${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/${CMAKE_CFG_INTDIR}/${CMAKE_IMPORT_LIBRARY_PREFIX}zlib1${DBG_EXT}${CMAKE_IMPORT_LIBRARY_SUFFIX}") ELSE (WIN32 AND NOT MINGW) - SET (ZLIB_LIBRARY "${BINARY_DIR}/bin/${CMAKE_CFG_INTDIR}/${CMAKE_SHARED_LIBRARY_PREFIX}z${DBG_EXT}${CMAKE_SHARED_LIBRARY_SUFFIX}") + SET (ZLIB_LIBRARY "${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/${CMAKE_CFG_INTDIR}/${CMAKE_SHARED_LIBRARY_PREFIX}z${DBG_EXT}${CMAKE_SHARED_LIBRARY_SUFFIX}") ENDIF (WIN32 AND NOT MINGW) ELSE (${libtype} MATCHES "SHARED") IF (WIN32 AND NOT MINGW) IF (HDF_LEGACY_NAMING) - SET (ZLIB_LIBRARY "${BINARY_DIR}/bin/${CMAKE_CFG_INTDIR}/zlib${DBG_EXT}${CMAKE_STATIC_LIBRARY_SUFFIX}") + SET (ZLIB_LIBRARY "${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/${CMAKE_CFG_INTDIR}/zlib${DBG_EXT}${CMAKE_STATIC_LIBRARY_SUFFIX}") ELSE (HDF_LEGACY_NAMING) - SET (ZLIB_LIBRARY "${BINARY_DIR}/bin/${CMAKE_CFG_INTDIR}/libzlib${DBG_EXT}${CMAKE_STATIC_LIBRARY_SUFFIX}") + SET (ZLIB_LIBRARY "${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/${CMAKE_CFG_INTDIR}/libzlib${DBG_EXT}${CMAKE_STATIC_LIBRARY_SUFFIX}") ENDIF (HDF_LEGACY_NAMING) ELSE (WIN32 AND NOT MINGW) - SET (ZLIB_LIBRARY "${BINARY_DIR}/bin/${CMAKE_CFG_INTDIR}/libz${DBG_EXT}${CMAKE_STATIC_LIBRARY_SUFFIX}") + SET (ZLIB_LIBRARY "${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/${CMAKE_CFG_INTDIR}/libz${DBG_EXT}${CMAKE_STATIC_LIBRARY_SUFFIX}") ENDIF (WIN32 AND NOT MINGW) ENDIF (${libtype} MATCHES "SHARED") + SET (ZLIB_INCLUDE_DIR_GEN "${BINARY_DIR}") SET (ZLIB_INCLUDE_DIR "${SOURCE_DIR}/src") SET (ZLIB_FOUND 1) @@ -214,30 +225,15 @@ MACRO (PACKAGE_ZLIB_LIBRARY compress_type libtype) COMMENT "Copying ${ZLIB_INCLUDE_DIR_GEN}/zconf.h to ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/" ) SET (EXTERNAL_HEADER_LIST ${EXTERNAL_HEADER_LIST} ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/zconf.h) - ADD_CUSTOM_TARGET (ZLIB-Library-Copy ALL - COMMAND ${CMAKE_COMMAND} -E copy_if_different ${ZLIB_LIBRARY} ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/ - COMMENT "Copying ${ZLIB_LIBRARY} to ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/" - ) GET_FILENAME_COMPONENT(ZLIB_LIB_NAME ${ZLIB_LIBRARY} NAME) - SET (EXTERNAL_LIBRARY_LIST ${EXTERNAL_LIBRARY_LIST} ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/${ZLIB_LIB_NAME}) + SET (EXTERNAL_LIBRARY_LIST ${EXTERNAL_LIBRARY_LIST} ${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/${ZLIB_LIB_NAME}) IF (${compress_type} MATCHES "SVN" OR ${compress_type} MATCHES "TGZ") ADD_DEPENDENCIES (ZLIB-GenHeader-Copy ZLIB) - ADD_DEPENDENCIES (ZLIB-Library-Copy ZLIB) ENDIF (${compress_type} MATCHES "SVN" OR ${compress_type} MATCHES "TGZ") IF (WIN32 AND NOT CYGWIN) IF (${libtype} MATCHES "SHARED") GET_FILENAME_COMPONENT(ZLIB_DLL_NAME ${ZLIB_LIBRARY} NAME_WE) - # MESSAGE (STATUS "ZLIB_DLL_NAME: ${ZLIB_DLL_NAME}") - GET_FILENAME_COMPONENT(ZLIB_BIN_PATH ${ZLIB_LIBRARY} PATH) - # MESSAGE (STATUS "ZLIB_BIN_PATH: ${ZLIB_BIN_PATH}") - SET (EXTERNAL_LIBRARYDLL_LIST ${EXTERNAL_LIBRARYDLL_LIST} ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/${ZLIB_DLL_NAME}${CMAKE_SHARED_LIBRARY_SUFFIX}) - ADD_CUSTOM_TARGET (ZLIB-Dll-Copy ALL - COMMAND ${CMAKE_COMMAND} -E copy_if_different ${ZLIB_BIN_PATH}/${ZLIB_DLL_NAME}${CMAKE_SHARED_LIBRARY_SUFFIX} ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/ - COMMENT "Copying ${ZLIB_BIN_PATH}/${ZLIB_DLL_NAME}${CMAKE_SHARED_LIBRARY_SUFFIX} to ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/" - ) - IF (${compress_type} MATCHES "SVN" OR ${compress_type} MATCHES "TGZ") - ADD_DEPENDENCIES (ZLIB-Dll-Copy ZLIB) - ENDIF (${compress_type} MATCHES "SVN" OR ${compress_type} MATCHES "TGZ") + SET (EXTERNAL_LIBRARYDLL_LIST ${EXTERNAL_LIBRARYDLL_LIST} ${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/${ZLIB_DLL_NAME}${CMAKE_SHARED_LIBRARY_SUFFIX}) ENDIF (${libtype} MATCHES "SHARED") ENDIF (WIN32 AND NOT CYGWIN) ENDMACRO (PACKAGE_ZLIB_LIBRARY) diff --git a/config/cmake/userblockTest.cmake b/config/cmake/userblockTest.cmake new file mode 100644 index 0000000..5e8a808 --- /dev/null +++ b/config/cmake/userblockTest.cmake @@ -0,0 +1,120 @@ +# runTest.cmake executes a command and captures the output in a file. File is then compared +# against a reference file. Exit status of command can also be compared. + +# arguments checking +IF (NOT TEST_PROGRAM) + MESSAGE (FATAL_ERROR "Require TEST_PROGRAM tellub to be defined") +ENDIF (NOT TEST_PROGRAM) +IF (NOT TEST_GET_PROGRAM) + MESSAGE (FATAL_ERROR "Require TEST_GET_PROGRAM getub to be defined") +ENDIF (NOT TEST_GET_PROGRAM) +IF (NOT TEST_FOLDER) + MESSAGE ( FATAL_ERROR "Require TEST_FOLDER to be defined") +ENDIF (NOT TEST_FOLDER) +IF (NOT TEST_HFILE) + MESSAGE (FATAL_ERROR "Require TEST_HFILE the hdf file to be defined") +ENDIF (NOT TEST_HFILE) +IF (NOT TEST_UFILE) + MESSAGE (FATAL_ERROR "Require TEST_UFILE the ub file to be defined") +ENDIF (NOT TEST_UFILE) +IF (NOT TEST_CHECKUB) + MESSAGE (STATUS "Require TEST_CHECKUB - YES or NO - to be defined") +ENDIF (NOT TEST_CHECKUB) +#IF (NOT TEST_EXPECT) +# MESSAGE (STATUS "Require TEST_EXPECT to be defined") +#ENDIF (NOT TEST_EXPECT) +#IF (NOT TEST_OFILE) +# MESSAGE (FATAL_ERROR "Require TEST_OFILE the original hdf file to be defined") +#ENDIF (NOT TEST_OFILE) + +SET (TEST_U_STRING_LEN 0) +SET (TEST_O_STRING_LEN 0) +SET (TEST_H_STRING_LEN 0) +SET (TEST_STRING_SIZE 0) + +IF (TEST_CHECKUB STREQUAL "YES") + # find the length of the user block to check + #s1=`cat $ufile | wc -c | sed -e 's/ //g'` + FILE (STRINGS ${TEST_FOLDER}/${TEST_UFILE} TEST_U_STRING) + STRING (LENGTH ${TEST_U_STRING} TEST_U_STRING_LEN) + + # Get the size of the original user block, if any. + IF (TEST_OFILE) + # 'tellub' calls H5Fget_user_block to get the size + # of the user block + #s2=`$JAM_BIN/tellub $origfile` + EXECUTE_PROCESS ( + COMMAND ${TEST_PROGRAM} ${TEST_OFILE} + WORKING_DIRECTORY ${TEST_FOLDER} + RESULT_VARIABLE TEST_RESULT + OUTPUT_FILE ${TEST_HFILE}.len.txt + OUTPUT_VARIABLE TEST_ERROR + ERROR_VARIABLE TEST_ERROR + ) + IF (NOT ${TEST_RESULT} STREQUAL "0") + MESSAGE (FATAL_ERROR "Failed: The output of ${TEST_PROGRAM} ${TEST_OFILE} is: ${TEST_ERROR}") + ENDIF (NOT ${TEST_RESULT} STREQUAL "0") + FILE (READ ${TEST_HFILE}.len.txt TEST_O_STRING_LEN) + ENDIF (TEST_OFILE) + + MATH( EXPR TEST_STRING_SIZE "${TEST_U_STRING_LEN} + ${TEST_O_STRING_LEN}" ) + + IF (NOT TEST_O_STRING_LEN STREQUAL "0") + #$JAM_BIN/getub -c $s2 $origfile > $cmpfile + EXECUTE_PROCESS ( + COMMAND ${TEST_GET_PROGRAM} -c ${TEST_O_STRING_LEN} ${TEST_OFILE} + WORKING_DIRECTORY ${TEST_FOLDER} + RESULT_VARIABLE TEST_RESULT + OUTPUT_FILE ${TEST_UFILE}.cmp + OUTPUT_VARIABLE TEST_ERROR + ERROR_VARIABLE TEST_ERROR + OUTPUT_STRIP_TRAILING_WHITESPACE + ) + #cat $ufile >> $cmpfile + FILE (STRINGS ${TEST_UFILE} TEST_STREAM NEWLINE_CONSUME) + FILE (APPEND ${TEST_UFILE}.cmp "${TEST_STREAM}") + ELSE (NOT TEST_O_STRING_LEN STREQUAL "0") + FILE (STRINGS ${TEST_UFILE} TEST_STREAM NEWLINE_CONSUME) + FILE (WRITE ${TEST_UFILE}.cmp ${TEST_STREAM}) + ENDIF (NOT TEST_O_STRING_LEN STREQUAL "0") + + #$JAM_BIN/getub -c $size $hfile > $tfile + EXECUTE_PROCESS ( + COMMAND ${TEST_GET_PROGRAM} -c ${TEST_STRING_SIZE} ${TEST_HFILE} + WORKING_DIRECTORY ${TEST_FOLDER} + RESULT_VARIABLE TEST_RESULT + OUTPUT_FILE ${TEST_HFILE}.cmp + OUTPUT_VARIABLE TEST_ERROR + ERROR_VARIABLE TEST_ERROR + OUTPUT_STRIP_TRAILING_WHITESPACE + ) + + # now compare the outputs + EXECUTE_PROCESS ( + COMMAND ${CMAKE_COMMAND} -E compare_files ${TEST_UFILE}.cmp ${TEST_HFILE}.cmp + RESULT_VARIABLE TEST_RESULT + ) + + MESSAGE (STATUS "COMPARE Result: ${TEST_RESULT}: ${TEST_STRING_SIZE}=${TEST_U_STRING_LEN}+${TEST_O_STRING_LEN}") + # if the return value is !=${TEST_EXPECT} bail out + IF (NOT ${TEST_RESULT} STREQUAL ${TEST_EXPECT}) + MESSAGE (FATAL_ERROR "Failed: The output of ${TEST_UFILE} did not match ${TEST_HFILE}.\n${TEST_ERROR}") + ENDIF (NOT ${TEST_RESULT} STREQUAL ${TEST_EXPECT}) +ELSE (TEST_CHECKUB STREQUAL "YES") + # call 'ubsize' to get the size of the user block + #ubsize=`$JAM_BIN/tellub $hfile` + EXECUTE_PROCESS ( + COMMAND ${TEST_PROGRAM} ${TEST_HFILE} + WORKING_DIRECTORY ${TEST_FOLDER} + RESULT_VARIABLE TEST_H_STRING_LEN + OUTPUT_VARIABLE TEST_ERROR + ERROR_VARIABLE TEST_ERROR + ) + IF (NOT TEST_H_STRING_LEN STREQUAL "0") + MESSAGE (FATAL_ERROR "Failed: The output of ${TEST_HFILE} was NOT empty") + ENDIF (NOT TEST_H_STRING_LEN STREQUAL "0") +ENDIF (TEST_CHECKUB STREQUAL "YES") + +# everything went fine... +MESSAGE ("Passed: The output of CHECK matched expectation") + |