summaryrefslogtreecommitdiffstats
path: root/bin
diff options
context:
space:
mode:
authorAlbert Cheng <acheng@hdfgroup.org>2013-01-16 20:33:13 (GMT)
committerAlbert Cheng <acheng@hdfgroup.org>2013-01-16 20:33:13 (GMT)
commit50ddf1c76158ce90830a8b954b40eacb7681cbb2 (patch)
treef106218e15ef098147b990ca0c19960fec62ca97 /bin
parentfa9373afeb0a8fc790d14c02dc03976232d356e1 (diff)
downloadhdf5-50ddf1c76158ce90830a8b954b40eacb7681cbb2.zip
hdf5-50ddf1c76158ce90830a8b954b40eacb7681cbb2.tar.gz
hdf5-50ddf1c76158ce90830a8b954b40eacb7681cbb2.tar.bz2
[svn-r23171] cmakehdf5 is a build command script similar to buildhdf5.
This has been developed and tested in the trunk branch and is now made available in the v1.8 branch. Tested: Linux (Jam), linux 64 (koala), ppc64 (ostrich), Mac (fred, duck and Owl) passed. Failed in SunOS (linew). Will fix when the new Sun is available.
Diffstat (limited to 'bin')
-rwxr-xr-xbin/cmakehdf5196
1 files changed, 196 insertions, 0 deletions
diff --git a/bin/cmakehdf5 b/bin/cmakehdf5
new file mode 100755
index 0000000..4627828
--- /dev/null
+++ b/bin/cmakehdf5
@@ -0,0 +1,196 @@
+#! /bin/sh
+# Build and Test HDF5 using cmake.
+# Author: Allen Byrne
+# Albert Cheng
+# Creation Date: Nov 2012
+
+# Copyright: The HDF Group, 2012
+
+# Debug: remove the comment hash if you want DPRINT to do echo
+DPRINT=:
+#DPRINT=echo
+
+# variable names
+progname=`basename $0` # program name
+cminfile="cmakemin.$$" # Cmake minimum file
+cfgfile=$progname.$$ # configure file
+$DPRINT $cfgfile
+
+# Remove temporary generated files if exit 0
+trap "rm -f $cminfile $cfgfile" 0
+
+#==========
+# main
+#==========
+# First generate the two needed input files, the $cimnfile and $cfgfile.
+# Then use ctest to use the two input files.
+
+#==========
+# create the configure file
+#==========
+# Create the cmake minimum required file to be used by the following
+# configure file. Though not absolute needed, it is better to generate
+# this file before the configure file. Quote the EOF to preven substitution
+# in the text.
+#==========
+#==========
+cat > $cfgfile <<'EOF'
+cmake_minimum_required(VERSION 2.8.6 FATAL_ERROR)
+########################################################
+# This dashboard is maintained by The HDF Group
+# For any comments please contact cdashhelp@hdfgroup.org
+#
+########################################################
+
+set (CTEST_DASHBOARD_ROOT ${CTEST_SCRIPT_DIRECTORY})
+set (CTEST_SOURCE_DIRECTORY "../hdf5")
+set (CTEST_BINARY_DIRECTORY ".")
+set (CTEST_CMAKE_GENERATOR "Unix Makefiles")
+set (CTEST_BUILD_CONFIGURATION "Release")
+
+# -- CDash variables
+#set (LOCAL_NO_SUBMIT TRUE)
+set (MODEL "Experimental")
+set (CDASH_LOCAL TRUE)
+set (SITE_BUILDNAME_SUFFIX "SHARED")
+
+# -- URL set for internal check, default is to not update
+set (LOCAL_SKIP_UPDATE TRUE)
+set (REPOSITORY_URL "http://svn.hdfgroup.uiuc.edu/hdf5/branches/hdf5_1_8")
+# -- Standard build options
+set (ADD_BUILD_OPTIONS "-DCMAKE_INSTALL_PREFIX:PATH=/usr/local/hdf5.1.8 -DHDF5_ALLOW_EXTERNAL_SUPPORT:STRING=\"SVN\" -DHDF5_PACKAGE_EXTLIBS:BOOL=ON")
+
+# Use multiple CPU cores to build
+SET (CTEST_BUILD_FLAGS "-j4")
+
+# -----------------------------------------------------------
+# -- Get environment
+# -----------------------------------------------------------
+ ## -- set hostname
+ ## --------------------------
+ find_program (HOSTNAME_CMD NAMES hostname)
+ exec_program (${HOSTNAME_CMD} ARGS OUTPUT_VARIABLE HOSTNAME)
+ set (CTEST_SITE "${HOSTNAME}${CTEST_SITE_EXT}")
+ find_program (UNAME NAMES uname)
+ macro (getuname name flag)
+ exec_program ("${UNAME}" ARGS "${flag}" OUTPUT_VARIABLE "${name}")
+ endmacro (getuname)
+
+ getuname (osname -s)
+ getuname (osrel -r)
+ getuname (cpu -m)
+
+ if (SITE_BUILDNAME_SUFFIX)
+ set (CTEST_BUILD_NAME "${osname}-${osrel}-${cpu}-${SITE_BUILDNAME_SUFFIX}")
+ else (SITE_BUILDNAME_SUFFIX)
+ set (CTEST_BUILD_NAME "${osname}-${osrel}-${cpu}")
+ endif (SITE_BUILDNAME_SUFFIX)
+# -----------------------------------------------------------
+
+set (BUILD_OPTIONS "${ADD_BUILD_OPTIONS} -DSITE:STRING=${CTEST_SITE} -DBUILDNAME:STRING=${CTEST_BUILD_NAME}")
+
+#-----------------------------------------------------------------------------
+# MAC machines need special option
+#-----------------------------------------------------------------------------
+if (APPLE)
+ # Compiler choice
+ execute_process(COMMAND xcrun --find cc OUTPUT_VARIABLE XCODE_CC OUTPUT_STRIP_TRAILING_WHITESPACE)
+ execute_process(COMMAND xcrun --find c++ OUTPUT_VARIABLE XCODE_CXX OUTPUT_STRIP_TRAILING_WHITESPACE)
+ SET(ENV{CC} "${XCODE_CC}")
+ SET(ENV{CXX} "${XCODE_CXX}")
+ # Shared fortran is not supported, build static
+ set (BUILD_OPTIONS "${BUILD_OPTIONS} -DBUILD_SHARED_LIBS:BOOL=OFF -DCMAKE_ANSI_CFLAGS:STRING=-fPIC")
+ set (BUILD_OPTIONS "${BUILD_OPTIONS} -DCTEST_USE_LAUNCHERS:BOOL=ON -DCMAKE_BUILD_WITH_INSTALL_RPATH:BOOL=OFF")
+endif (APPLE)
+
+
+# -----------------------------------------------------------
+find_package (Subversion)
+set (CTEST_UPDATE_COMMAND "${Subversion_SVN_EXECUTABLE}")
+# -- Only clean build folder if LOCAL_CLEAR_BUILD is set
+if (LOCAL_CLEAR_BUILD)
+ set (CTEST_START_WITH_EMPTY_BINARY_DIRECTORY TRUE)
+ ctest_empty_binary_directory (${CTEST_BINARY_DIRECTORY})
+endif (LOCAL_CLEAR_BUILD)
+
+#-----------------------------------------------------------------------------
+# Send the main script as a note.
+list (APPEND CTEST_NOTES_FILES
+ "${CMAKE_CURRENT_LIST_FILE}"
+ "${CTEST_SOURCE_DIRECTORY}/config/cmake/cacheinit.cmake"
+ )
+
+# Check for required variables.
+foreach (req
+ CTEST_CMAKE_GENERATOR
+ CTEST_SITE
+ CTEST_BUILD_NAME
+ )
+ if (NOT DEFINED ${req})
+ message(FATAL_ERROR "The containing script must set ${req}")
+ endif (NOT DEFINED ${req})
+endforeach (req)
+
+## -- set output to english
+set($ENV{LC_MESSAGES} "en_EN")
+
+#-----------------------------------------------------------------------------
+# Initialize the CTEST commands
+#------------------------------
+SET (CTEST_CMAKE_COMMAND "\"${CMAKE_COMMAND}\"")
+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}\"")
+
+# Print summary information.
+foreach (v
+ CTEST_SITE
+ CTEST_BUILD_NAME
+ CTEST_SOURCE_DIRECTORY
+ CTEST_BINARY_DIRECTORY
+ CTEST_CMAKE_GENERATOR
+ CTEST_BUILD_CONFIGURATION
+ CTEST_CONFIGURE_COMMAND
+ CTEST_SCRIPT_DIRECTORY
+ )
+ set (vars "${vars} ${v}=[${${v}}]\n")
+endforeach (v)
+message ("Dashboard script configuration:\n${vars}\n")
+
+CTEST_START (${MODEL} TRACK ${MODEL})
+if (NOT LOCAL_SKIP_UPDATE)
+ CTEST_UPDATE (SOURCE "${CTEST_SOURCE_DIRECTORY}")
+endif (NOT LOCAL_SKIP_UPDATE)
+CTEST_CONFIGURE (BUILD "${CTEST_BINARY_DIRECTORY}")
+message ("Configure DONE")
+CTEST_READ_CUSTOM_FILES ("${CTEST_BINARY_DIRECTORY}")
+if (NOT LOCAL_NO_SUBMIT)
+ CTEST_SUBMIT (PARTS Update Configure Notes)
+endif (NOT LOCAL_NO_SUBMIT)
+CTEST_BUILD (BUILD "${CTEST_BINARY_DIRECTORY}" APPEND)
+if (NOT LOCAL_NO_SUBMIT)
+ CTEST_SUBMIT (PARTS Build)
+endif (NOT LOCAL_NO_SUBMIT)
+message ("build DONE")
+if (NOT LOCAL_SKIP_TEST)
+ CTEST_TEST (BUILD "${CTEST_BINARY_DIRECTORY}" APPEND)
+ if (NOT LOCAL_NO_SUBMIT)
+ CTEST_SUBMIT (PARTS Test)
+ endif (NOT LOCAL_NO_SUBMIT)
+ message ("test DONE")
+endif (NOT LOCAL_SKIP_TEST)
+
+message ("DONE")
+EOF
+
+
+# Run ctest
+date
+ctest -S $cfgfile -C Release -O testhdf.log
+exit_code=$?
+if [ $exit_code = 0 ]; then
+ echo Complete without error
+else
+ echo Error encountered
+fi
+date
+exit $exit_code