summaryrefslogtreecommitdiffstats
path: root/config/cmake
diff options
context:
space:
mode:
authorMohamad Chaarawi <chaarawi@hdfgroup.org>2015-10-05 21:16:47 (GMT)
committerMohamad Chaarawi <chaarawi@hdfgroup.org>2015-10-05 21:16:47 (GMT)
commitd05369f41d078275b9f8879283ff9504a6a9f520 (patch)
tree23ba6bc147ac64fed79a19a8e3b87e15d0783123 /config/cmake
parent81e4ce7805a034e7684f48a208621180cc168921 (diff)
parent4dc2218ab5622f81c3dd9d68020ac7357f413c50 (diff)
downloadhdf5-d05369f41d078275b9f8879283ff9504a6a9f520.zip
hdf5-d05369f41d078275b9f8879283ff9504a6a9f520.tar.gz
hdf5-d05369f41d078275b9f8879283ff9504a6a9f520.tar.bz2
[svn-r27959] - merge from trunk (pre-VDS)
- fix VOL initialization and Native plugin registration with new FAPL changes
Diffstat (limited to 'config/cmake')
-rw-r--r--config/cmake/HDF5Macros.cmake1
-rw-r--r--config/cmake/HDF5_Examples.cmake.in70
-rw-r--r--config/cmake/HDF5_Process_Flex_Files.cmake84
-rw-r--r--config/cmake/README.txt.cmake.in33
-rw-r--r--config/cmake/mccacheinit.cmake2
-rw-r--r--config/cmake/userblockTest.cmake8
6 files changed, 161 insertions, 37 deletions
diff --git a/config/cmake/HDF5Macros.cmake b/config/cmake/HDF5Macros.cmake
index 976b910..bd86f34 100644
--- a/config/cmake/HDF5Macros.cmake
+++ b/config/cmake/HDF5Macros.cmake
@@ -39,5 +39,4 @@ macro (H5_SET_LIB_OPTIONS libtarget libname libtype)
endif (${libtype} MATCHES "SHARED")
endif (HDF5_BUILD_FRAMEWORKS)
endif (APPLE)
-
endmacro (H5_SET_LIB_OPTIONS)
diff --git a/config/cmake/HDF5_Examples.cmake.in b/config/cmake/HDF5_Examples.cmake.in
index d0c0509..65e2e9e 100644
--- a/config/cmake/HDF5_Examples.cmake.in
+++ b/config/cmake/HDF5_Examples.cmake.in
@@ -1,20 +1,48 @@
cmake_minimum_required(VERSION 3.1.0 FATAL_ERROR)
###############################################################################################################
-# This script will build and run the examples from a compressed file
+# This script will build and run the examples from a folder
# Execute from a command line:
-# ctest -S HDF5_Examples.cmake,HDF5Examples -C Release -V -O test.log
+# ctest -S HDF5_Examples.cmake,OPTION=VALUE -C Release -V -O test.log
###############################################################################################################
-set(INSTALLDIR "@CMAKE_INSTALL_PREFIX@")
set(CTEST_CMAKE_GENERATOR "@CMAKE_GENERATOR@")
-set(STATICLIBRARIES "@H5_ENABLE_STATIC_LIB@")
-set(CTEST_SOURCE_NAME ${CTEST_SCRIPT_ARG})
set(CTEST_DASHBOARD_ROOT ${CTEST_SCRIPT_DIRECTORY})
-set(CTEST_BUILD_CONFIGURATION "Release")
-#set(NO_MAC_FORTRAN "true")
#set(BUILD_OPTIONS "${BUILD_OPTIONS} -DHDF_BUILD_FORTRAN:BOOL=ON")
-set(BUILD_OPTIONS "${BUILD_OPTIONS} -DHDF_ENABLE_F2003:BOOL=ON")
-#set(CTEST_USE_TAR_SOURCE "${CTEST_SCRIPT_ARG}")
+
+# handle input parameters to script.
+#INSTALLDIR - HDF5 root folder
+#CTEST_BUILD_CONFIGURATION - Release, Debug, RelWithDebInfo
+#CTEST_SOURCE_NAME - name of source folder; HDF4Examples
+#STATICLIBRARIES - Default is YES
+#NO_MAC_FORTRAN - set to TRUE to allow shared libs on a Mac)
+if(DEFINED CTEST_SCRIPT_ARG)
+ # transform ctest script arguments of the form
+ # script.ctest,var1=value1,var2=value2
+ # to variables with the respective names set to the respective values
+ string(REPLACE "," ";" script_args "${CTEST_SCRIPT_ARG}")
+ foreach(current_var ${script_args})
+ if ("${current_var}" MATCHES "^([^=]+)=(.+)$")
+ set("${CMAKE_MATCH_1}" "${CMAKE_MATCH_2}")
+ endif()
+ endforeach()
+endif()
+if(NOT DEFINED INSTALLDIR)
+ set(INSTALLDIR "@CMAKE_INSTALL_PREFIX@")
+endif()
+if(NOT DEFINED CTEST_BUILD_CONFIGURATION)
+ set(CTEST_BUILD_CONFIGURATION "Release")
+endif()
+if(NOT DEFINED CTEST_SOURCE_NAME)
+ set(CTEST_SOURCE_NAME "HDF5Examples")
+endif()
+if(NOT DEFINED STATICLIBRARIES)
+ set(STATICLIBRARIES "YES")
+endif()
+
+#TAR_SOURCE - name of tarfile
+#if(NOT DEFINED TAR_SOURCE)
+# set(CTEST_USE_TAR_SOURCE "HDF5Examples-1.10.1-Source")
+#endif()
###############################################################################################################
# Adjust the following SET Commands as needed
@@ -42,7 +70,7 @@ endif(WIN32)
# For any comments please contact cdashhelp@hdfgroup.org
#
###############################################################################################################
-
+
#-----------------------------------------------------------------------------
# MAC machines need special option
#-----------------------------------------------------------------------------
@@ -53,14 +81,14 @@ if(APPLE)
set(ENV{CC} "${XCODE_CC}")
set(ENV{CXX} "${XCODE_CXX}")
if(NOT NO_MAC_FORTRAN)
- # Shared fortran is not supported, build static
+ # Shared fortran is not supported, build static
set(BUILD_OPTIONS "${BUILD_OPTIONS} -DBUILD_SHARED_LIBS:BOOL=OFF -DCMAKE_ANSI_CFLAGS:STRING=-fPIC")
else(NOT NO_MAC_FORTRAN)
set(BUILD_OPTIONS "${BUILD_OPTIONS} -DHDF_BUILD_FORTRAN:BOOL=OFF")
endif(NOT NO_MAC_FORTRAN)
set(BUILD_OPTIONS "${BUILD_OPTIONS} -DCTEST_USE_LAUNCHERS:BOOL=ON -DCMAKE_BUILD_WITH_INSTALL_RPATH:BOOL=OFF")
endif(APPLE)
-
+
#-----------------------------------------------------------------------------
set(CTEST_CMAKE_COMMAND "\"${CMAKE_COMMAND}\"")
## --------------------------
@@ -69,19 +97,19 @@ if(CTEST_USE_TAR_SOURCE)
## --------------------------
if(WIN32)
message(STATUS "extracting... [${CMAKE_EXECUTABLE_NAME} -E tar -xvf ${CTEST_USE_TAR_SOURCE}.zip]")
- execute_process(COMMAND ${CMAKE_EXECUTABLE_NAME} -E tar -xvf ${CTEST_USE_TAR_SOURCE}.zip RESULT_VARIABLE rv)
- else(WIN32)
+ execute_process(COMMAND ${CMAKE_EXECUTABLE_NAME} -E tar -xvf ${CTEST_DASHBOARD_ROOT}\\${CTEST_USE_TAR_SOURCE}.zip RESULT_VARIABLE rv)
+ else()
message(STATUS "extracting... [${CMAKE_EXECUTABLE_NAME} -E tar -xvf ${CTEST_USE_TAR_SOURCE}.tar]")
- execute_process(COMMAND ${CMAKE_EXECUTABLE_NAME} -E tar -xvf ${CTEST_USE_TAR_SOURCE}.tar RESULT_VARIABLE rv)
- endif(WIN32)
-
+ execute_process(COMMAND ${CMAKE_EXECUTABLE_NAME} -E tar -xvf ${CTEST_DASHBOARD_ROOT}/${CTEST_USE_TAR_SOURCE}.tar RESULT_VARIABLE rv)
+ endif()
+
if(NOT rv EQUAL 0)
message(STATUS "extracting... [error-(${rv}) clean up]")
file(REMOVE_RECURSE "${CTEST_SOURCE_DIRECTORY}")
message(FATAL_ERROR "error: extract of ${CTEST_SOURCE_NAME} failed")
endif(NOT rv EQUAL 0)
endif(CTEST_USE_TAR_SOURCE)
-
+
#-----------------------------------------------------------------------------
## Clear the build directory
## --------------------------
@@ -104,11 +132,11 @@ endif()
set (CTEST_CONFIGURE_COMMAND
"${CTEST_CMAKE_COMMAND} -C \"${CTEST_SOURCE_DIRECTORY}/config/cmake/cacheinit.cmake\" -DCMAKE_BUILD_TYPE:STRING=${CTEST_BUILD_CONFIGURATION} ${BUILD_OPTIONS} \"-G${CTEST_CMAKE_GENERATOR}\" \"${CTEST_SOURCE_DIRECTORY}\""
)
-
+
#-----------------------------------------------------------------------------
## -- set output to english
set($ENV{LC_MESSAGES} "en_EN")
-
+
#-----------------------------------------------------------------------------
configure_file(${CTEST_SOURCE_DIRECTORY}/config/cmake/CTestCustom.cmake ${CTEST_BINARY_DIRECTORY}/CTestCustom.cmake)
ctest_read_custom_files ("${CTEST_BINARY_DIRECTORY}")
@@ -122,5 +150,5 @@ if(res GREATER 0)
message (FATAL_ERROR "tests FAILED")
endif(res GREATER 0)
#-----------------------------------------------------------------------------
-##############################################################################################################
+##############################################################################################################
message(STATUS "DONE") \ No newline at end of file
diff --git a/config/cmake/HDF5_Process_Flex_Files.cmake b/config/cmake/HDF5_Process_Flex_Files.cmake
new file mode 100644
index 0000000..2306e93
--- /dev/null
+++ b/config/cmake/HDF5_Process_Flex_Files.cmake
@@ -0,0 +1,84 @@
+# post process flex/bison files
+
+message (STATUS "File: ${GEN_DIR} ${FILE_PARSE} ${FILE_ANALYZE}")
+
+if (FILE_PARSE)
+ # fix H5LTparse.c to declare H5LTyyparse return type as an hid_t
+ # instead of int. Currently the generated function H5LTyyparse is
+ # generated with a return value of type int, which is a mapping to the
+ # flex yyparse function. The return value in the HL library should be
+ # an hid_t.
+ # I propose to not use flex to generate this function, but for now I am
+ # adding a perl command to find and replace this function declaration in
+ # H5LTparse.c.
+ file (READ ${GEN_DIR}/${FILE_PARSE}.c TEST_STREAM)
+ string (REGEX REPLACE "int yyparse" "hid_t yyparse" TEST_STREAM "${TEST_STREAM}")
+ string (REGEX REPLACE "int\nyyparse" "hid_t\nyyparse" TEST_STREAM "${TEST_STREAM}")
+ string (REGEX REPLACE "int H5LTyyparse" "hid_t H5LTyyparse" TEST_STREAM "${TEST_STREAM}")
+ file (WRITE ${FILE_PARSE}.c "${TEST_STREAM}")
+ message (STATUS "replacing signature in H5LTparse.c")
+
+ # Add code that disables warnings in the flex/bison-generated code.
+ #
+ # Note that the GCC pragmas did not exist until gcc 4.2. Earlier versions
+ # will simply ignore them, but we want to avoid those warnings.
+ file (READ ${FILE_PARSE}.c TEST_STREAM)
+ file (WRITE ${FILE_PARSE}.c "
+#if __GNUC__ >= 4 && __GNUC_MINOR__ >=2\n
+#pragma GCC diagnostic ignored \"-Wconversion\"\n
+#pragma GCC diagnostic ignored \"-Wimplicit-function-declaration\"\n
+#pragma GCC diagnostic ignored \"-Wlarger-than=\"\n
+#pragma GCC diagnostic ignored \"-Wmissing-prototypes\"\n
+#pragma GCC diagnostic ignored \"-Wnested-externs\"\n
+#pragma GCC diagnostic ignored \"-Wold-style-definition\"\n
+#pragma GCC diagnostic ignored \"-Wsign-compare\"\n
+#pragma GCC diagnostic ignored \"-Wsign-conversion\"\n
+#pragma GCC diagnostic ignored \"-Wstrict-prototypes\"\n
+#pragma GCC diagnostic ignored \"-Wswitch-default\"\n
+#pragma GCC diagnostic ignored \"-Wunused-function\"\n
+#pragma GCC diagnostic ignored \"-Wunused-macros\"\n
+#pragma GCC diagnostic ignored \"-Wunused-parameter\"\n
+#pragma GCC diagnostic ignored \"-Wredundant-decls\"\n
+#elif defined __SUNPRO_CC\n
+#pragma disable_warn\n
+#elif defined _MSC_VER\n
+#pragma warning(push, 1)\n
+#endif\n
+ ")
+ file (APPEND ${FILE_PARSE}.c "${TEST_STREAM}")
+ message (STATUS "processed pragma in ${FILE_PARSE}")
+ file (READ ${GEN_DIR}/${FILE_PARSE}.h TEST_STREAM)
+ file (WRITE ${FILE_PARSE}.h "${TEST_STREAM}")
+endif (FILE_PARSE)
+
+if (FILE_ANALYZE)
+ # Add code that disables warnings in the flex/bison-generated code.
+ #
+ # Note that the GCC pragmas did not exist until gcc 4.2. Earlier versions
+ # will simply ignore them, but we want to avoid those warnings.
+ file (READ ${GEN_DIR}/${FILE_ANALYZE} TEST_STREAM)
+ file (WRITE ${FILE_ANALYZE} "
+#if __GNUC__ >= 4 && __GNUC_MINOR__ >=2\n
+#pragma GCC diagnostic ignored \"-Wconversion\"\n
+#pragma GCC diagnostic ignored \"-Wimplicit-function-declaration\"\n
+#pragma GCC diagnostic ignored \"-Wlarger-than=\"\n
+#pragma GCC diagnostic ignored \"-Wmissing-prototypes\"\n
+#pragma GCC diagnostic ignored \"-Wnested-externs\"\n
+#pragma GCC diagnostic ignored \"-Wold-style-definition\"\n
+#pragma GCC diagnostic ignored \"-Wsign-compare\"\n
+#pragma GCC diagnostic ignored \"-Wsign-conversion\"\n
+#pragma GCC diagnostic ignored \"-Wstrict-prototypes\"\n
+#pragma GCC diagnostic ignored \"-Wswitch-default\"\n
+#pragma GCC diagnostic ignored \"-Wunused-function\"\n
+#pragma GCC diagnostic ignored \"-Wunused-macros\"\n
+#pragma GCC diagnostic ignored \"-Wunused-parameter\"\n
+#pragma GCC diagnostic ignored \"-Wredundant-decls\"\n
+#elif defined __SUNPRO_CC\n
+#pragma disable_warn\n
+#elif defined _MSC_VER\n
+#pragma warning(push, 1)\n
+#endif\n
+ ")
+ file (APPEND ${FILE_ANALYZE} "${TEST_STREAM}")
+ message (STATUS "processed pragma in ${FILE_ANALYZE}")
+endif (FILE_ANALYZE)
diff --git a/config/cmake/README.txt.cmake.in b/config/cmake/README.txt.cmake.in
index a12c5aa..ec40abe 100644
--- a/config/cmake/README.txt.cmake.in
+++ b/config/cmake/README.txt.cmake.in
@@ -1,11 +1,11 @@
@HDF5_PACKAGE_NAME@ version @HDF5_PACKAGE_VERSION_STRING@
------------------------------------------------------------------------------
-This directory contains the binary (release) distribution of
+This directory contains the binary (release) distribution of
@HDF5_PACKAGE_NAME@ @HDF5_PACKAGE_VERSION_MAJOR@ that was compiled on;
- @BINARY_PLATFORM@.
+ @BINARY_PLATFORM@.
-It was built with the following options:
+It was built with the following options:
-- @LIB_TYPE@ C/C++/Fortran libraries
-- SZIP (encoder enabled) and ZLIB
-- @LIB_TYPE@ HDF5 tools
@@ -24,27 +24,38 @@ Installation
After Installation
===========================================================================
-The examples folder, HDF5Examples, located in the
+The examples folder, HDF5Examples, located in the
HDF5 install folder, can be built and tested with CMake and the supplied
HDF5_Examples.cmake file. The HDF5_Examples.cmake expects HDF5 to have
-been installed in the default location with above compilers. Also, the CMake
+been installed in the default location with above compilers. Also, the CMake
utility should be installed.
To test the installation with the examples;
Create a directory to run the examples.
Copy HDF5Examples folder to this directory.
Copy HDF5_Examples.cmake to this directory.
- Edit HDF5_Examples.cmake line 8 to set INSTALLDIR to where HDF5 is installed.
- (The default should be correct unless you installed into a different folder.)
- Execute from this directory:
- ctest -S HDF5_Examples.cmake,HDF5Examples -C Release -V -O test.log
+ The default source folder is defined as "HDF5Examples". It can be changed
+ with the CTEST_SOURCE_NAME script option.
+ The default installation folder is defined as "@CMAKE_INSTALL_PREFIX@".
+ It can be changed with the INSTALLDIR script option.
+ The default ctest configuration is defined as "Release". It can be changed
+ with the CTEST_BUILD_CONFIGURATION script option. Note that this must
+ be the same as the value used with the -C command line option.
+ The default build configuration is defined to build and use static libraries.
+ Shared libraries can be used with the STATICLIBRARIES script option set to "NO".
+ Other options can be changed by editing the HDF5_Examples.cmake file.
+
+ If the defaults are okay, execute from this directory:
+ ctest -S HDF5_Examples.cmake -C Release -V -O test.log
+ If the defaults need change, execute from this directory:
+ ctest -S HDF5_Examples.cmake,CTEST_SOURCE_NAME=MyExamples,INSTALLDIR=MyLocation -C Release -V -O test.log
When executed, the ctest script will save the results to the log file, test.log, as
-indicated by the ctest command. If you wish the to see more build and test information,
+indicated by the ctest command. If you wish the to see more build and test information,
add "-VV" to the ctest command. The output should show;
100% tests passed, 0 tests failed out of 156.
-For more information see USING_CMake_Examples.txt in the install folder.
+For more information see USING_CMake_Examples.txt in the install folder.
===========================================================================
Documentation for this release can be found at the following URL:
diff --git a/config/cmake/mccacheinit.cmake b/config/cmake/mccacheinit.cmake
index 39ec124..19ecc15 100644
--- a/config/cmake/mccacheinit.cmake
+++ b/config/cmake/mccacheinit.cmake
@@ -4,6 +4,8 @@
# EXTERNAL cache entries
########################
+set (CMAKE_INSTALL_FRAMEWORK_PREFIX "Library/Frameworks" CACHE STRING "Frameworks installation directory" FORCE)
+
set (BUILD_SHARED_LIBS OFF CACHE BOOL "Build Shared Libraries" FORCE)
set (BUILD_TESTING ON CACHE BOOL "Build HDF5 Unit Testing" FORCE)
diff --git a/config/cmake/userblockTest.cmake b/config/cmake/userblockTest.cmake
index 2e0740b..fab470c 100644
--- a/config/cmake/userblockTest.cmake
+++ b/config/cmake/userblockTest.cmake
@@ -1,4 +1,4 @@
-# runTest.cmake executes a command and captures the output in a file. File is then compared
+# userblockTest.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
@@ -56,9 +56,9 @@ if (TEST_CHECKUB STREQUAL "YES")
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 (
@@ -72,7 +72,7 @@ if (TEST_CHECKUB STREQUAL "YES")
)
#cat $ufile >> $cmpfile
file (STRINGS ${TEST_UFILE} TEST_STREAM NEWLINE_CONSUME)
- file (APPEND ${TEST_HFILE}-ub.cmp "${TEST_STREAM}")
+ file (APPEND ${TEST_HFILE}-ub.cmp "${TEST_STREAM}")
else (NOT TEST_O_STRING_LEN STREQUAL "0")
file (STRINGS ${TEST_UFILE} TEST_STREAM NEWLINE_CONSUME)
file (WRITE ${TEST_HFILE}-ub.cmp ${TEST_STREAM})