summaryrefslogtreecommitdiffstats
path: root/release_docs/INSTALL_CMake.txt
diff options
context:
space:
mode:
authorAllen Byrne <byrn@hdfgroup.org>2018-09-18 16:37:50 (GMT)
committerAllen Byrne <byrn@hdfgroup.org>2018-09-18 16:37:50 (GMT)
commitbff04342f026d450cee1c1fc3a985233042cdec5 (patch)
tree2e0c1c781934524d1628b2c4a417bb6be1086ab4 /release_docs/INSTALL_CMake.txt
parentb6c85139c78ac73ec54e44f84b29c61f7ec55fc4 (diff)
downloadhdf5-bff04342f026d450cee1c1fc3a985233042cdec5.zip
hdf5-bff04342f026d450cee1c1fc3a985233042cdec5.tar.gz
hdf5-bff04342f026d450cee1c1fc3a985233042cdec5.tar.bz2
HDFFV-10569 Update docs with unsupported options
Diffstat (limited to 'release_docs/INSTALL_CMake.txt')
-rw-r--r--release_docs/INSTALL_CMake.txt458
1 files changed, 105 insertions, 353 deletions
diff --git a/release_docs/INSTALL_CMake.txt b/release_docs/INSTALL_CMake.txt
index e33615d..a786932 100644
--- a/release_docs/INSTALL_CMake.txt
+++ b/release_docs/INSTALL_CMake.txt
@@ -12,7 +12,7 @@ Section IV: Further considerations
Section V: Options for building HDF5 Libraries with CMake command line
Section VI: CMake option defaults for HDF5
Section VII: User Defined Options for HDF5 Libraries with CMake
-Section VIII: Options for platform configuration files
+Section VIII: User Defined Compile Flags for HDF5 Libraries with CMake
************************************************************************
@@ -24,7 +24,7 @@ Obtaining HDF5 source code
1. Create a directory for your development; for example, "myhdfstuff".
2. Obtain compressed (*.tar or *.zip) HDF5 source from
- http://www.hdfgroup.org/ftp/HDF5/current/src/
+ https://portal.hdfgroup.org/display/support/Building+HDF5+with+CMake
and put it in "myhdfstuff".
Uncompress the file. There should be a hdf5-1.8."X" folder.
@@ -35,7 +35,8 @@ CMake version
Note:
To change the install prefix from the platform defaults initialize
- the CMake variable, CMAKE_INSTALL_PREFIX.
+ the CMake variable, CMAKE_INSTALL_PREFIX. Users of build scripts
+ will use the INSTALLDIR option.
========================================================================
@@ -48,12 +49,12 @@ the config/cmake/cacheinit.cmake file.
HDF Group recommends using the ctest script mode to build HDF5.
The following files referenced below are available at the HDF web site:
- http://www.hdfgroup.org/HDF5/release/cmakebuild.html
+ https://portal.hdfgroup.org/display/support/Building+HDF5+with+CMake
Single compressed file with all the files needed, including source:
- hdf5-1.8.19-CMake.zip or hdf5-1.8.19-CMake.tar.gz
+ CMake-hdf5-1.8.X.zip or CMake-hdf5-1.8.X.tar.gz
-Individual files
+Individual files included in the above mentioned compressed files
-----------------------------------------------
CMake build script:
CTestScript.cmake
@@ -62,37 +63,44 @@ External compression szip and zlib libraries:
SZip.tar.gz
ZLib.tar.gz
-Platform configuration files:
- HDF518config.cmake
+Examples Source package:
+ HDF5Examples-1.10.x-Source.tar.gz
+
+Configuration files:
+ HDF5config.cmake
+ HDF5options.cmake
+
+Build scripts for windows or linux
-----------------------------------------------
To build HDF5 with the SZIP and ZLIB external libraries you will need to:
1. Change to the development directory "myhdfstuff".
- 2. Download the SZip.tar.gz and ZLib.tar.gz to "myhdfstuff".
- Do not uncompress the files.
+ 2. Download the CMake-hdf5-1.8.X.zip(.tar.gz) file to "myhdfstuff".
+ Uncompress the file.
- 3. Download the CTestScript.cmake file to "myhdfstuff".
+ 3. Change to the source directory "hdf5-1.8.x".
CTestScript.cmake file should not be modified.
- 4. Download the platform configuration file, HDF518config.cmake,
- to "myhdfstuff". Do not modify the file unless you want to change
- default build environment. (See http://www.hdfgroup.org/HDF5/release/chgcmkbuild.html)
+ 4. Edit the platform configuration file, HDF5options.cmake, if you want to change
+ the default build environment.
+ (See https://portal.hdfgroup.org/display/support/How+to+Change+HDF5+CMake+Build+Options)
5. From the "myhdfstuff" directory execute the CTest Script with the
following options:
- On 32-bit Windows with Visual Studio 2012, execute:
- ctest -S HDF518config.cmake,BUILD_GENERATOR=VS2012 -C Release -VV -O hdf5.log
- On 64-bit Windows with Visual Studio 2012, execute:
- ctest -S HDF518config.cmake,BUILD_GENERATOR=VS201264 -C Release -VV -O hdf5.log
- On 32-bit Windows with Visual Studio 2013, execute:
- ctest -S HDF518config.cmake,BUILD_GENERATOR=VS2013 -C Release -VV -O hdf5.log
- On 64-bit Windows with Visual Studio 2013, execute:
- ctest -S HDF518config.cmake,BUILD_GENERATOR=VS201364 -C Release -VV -O hdf5.log
+ On 32-bit Windows with Visual Studio 2017, execute:
+ ctest -S HDF5config.cmake,BUILD_GENERATOR=VS2017 -C Release -VV -O hdf5.log
+ On 64-bit Windows with Visual Studio 2017, execute:
+ ctest -S HDF5config.cmake,BUILD_GENERATOR=VS201764 -C Release -VV -O hdf5.log
+ On 32-bit Windows with Visual Studio 2015, execute:
+ ctest -S HDF5config.cmake,BUILD_GENERATOR=VS2015 -C Release -VV -O hdf5.log
+ On 64-bit Windows with Visual Studio 2015, execute:
+ ctest -S HDF5config.cmake,BUILD_GENERATOR=VS201564 -C Release -VV -O hdf5.log
On Linux and Mac, execute:
- ctest -S HDF518config.cmake,BUILD_GENERATOR=Unix -C Release -VV -O hdf5.log
+ ctest -S HDF5config.cmake,BUILD_GENERATOR=Unix -C Release -VV -O hdf5.log
+ The supplied build scripts are versions of the above.
The command above will configure, build, test, and create an install
package in the myhdfstuff folder. It will have the format:
@@ -103,19 +111,20 @@ To build HDF5 with the SZIP and ZLIB external libraries you will need to:
installer on your system, you will also see a similar file that ends
in either .exe (NSIS) or .msi (WiX).
- The -S option uses the script version of ctest.
+ Notes on the command line options.
+ The -S option uses the script version of ctest.
- The value for the -C option (as shown above, "-C Release") must
- match the setting for CTEST_CONFIGURATION_TYPE in the platform
- configuration file.
+ The value for the -C option (as shown above, "-C Release") must
+ match the setting for CTEST_CONFIGURATION_TYPE in the platform
+ configuration file.
- The -VV option is for most verbose; use -V for less verbose.
+ The -VV option is for most verbose; use -V for less verbose.
- The "-O hdf5.log" option saves the output to a log file hdf5.log.
+ The "-O hdf5.log" option saves the output to a log file hdf5.log.
6. To install, "X" is the current release version
- On Windows, execute:
+ On Windows (with WiX installed), execute:
HDF5-1.8."X"-win32.msi or HDF5-1.8."X"-win64.msi
By default this program will install the hdf5 library into the
"C:\Program Files" directory and will create the following
@@ -159,14 +168,23 @@ To build HDF5 with the SZIP and ZLIB external libraries you will need to:
By default the installation will create the bin, include, lib and cmake
folders in the <install destination directory>/HDF_Group/HDF5/1.8."X"
+ The <install destination directory> depends on the build platform;
+ Windows will set the default to:
+ C:/Program Files/HDF_Group/HDF5/1.8."X"
+ Linux will set the default to:
+ "myhdfstuff/HDF_Group/HDF5/1.8."X"
+ The default can be changed by adding ",INSTALLDIR=<my new dir>" to the
+ "ctest -S HDF5config.cmake..." command. For example on linux:
+ ctest -S HDF5config.cmake,INSTALLDIR=/usr/local/myhdf5,BUILD_GENERATOR=Unix -C Release -VV -O hdf5.log
========================================================================
III. Quick Step Building HDF5 C Static Libraries and Tools with CMake
========================================================================
Notes: This short set of instructions is written for users who want to
- quickly build the just the HDF5 C static library and tools from
+ quickly build just the HDF5 C static library and tools from
the HDF5 source code package using the CMake command line tools.
+ Avoid the use of drive letters in paths on Windows.
Go through these steps:
@@ -201,7 +219,7 @@ Notes: This short set of instructions is written for users who want to
cpack -C Release CPackConfig.cmake
9. To install
- On Windows, execute:
+ On Windows (with WiX installed), execute:
HDF5-1.8."X"-win32.msi or HDF5-1.8."X"-win64.msi
By default this program will install the hdf5 library into the
"C:\Program Files" directory and will create the following
@@ -249,7 +267,7 @@ IV. Further considerations
========================================================================
1. We suggest you obtain the latest CMake for windows from the Kitware
- web site. The HDF5 1.8."X" product requires a minimum CMake version 3.2.2.
+ web site. The HDF5 1.8."X" product requires a minimum CMake version 3.10.
2. If you plan to use Zlib or Szip:
A. Download the binary packages and install them in a central location.
@@ -314,9 +332,21 @@ Notes: CMake and HDF5
how CMake support can be improved on any system. Visit the
KitWare site for more information about CMake.
- 3. Build and test results can be submitted to our CDash server,
- please read the HDF and CDash document at:
- www.hdfgroup.org/CDash/HowToSubmit.
+ 3. Build and test results can be submitted to our CDash server:
+ The CDash server for community submissions of hdf5 is at
+ https://cdash.hdfgroup.org.
+
+ Submitters are requested to register their name and contact info and
+ maintain their test sites. After your first submission, login and go
+ to your "My CDash" link and claim your site.
+
+ We ask that all submissions include the configuration information and
+ contact information in the CTest Notes Files upload step. See the
+ current reports on CDash for examples.
+
+ Please follow the convention that "NIGHTLY" submissions maintain the same
+ configuration every time. "EXPERIMENTAL" submissions can be expected to
+ be different for each submission.
4. See the appendix at the bottom of this file for examples of using
a ctest script for building and testing. Using a ctest script is
@@ -415,7 +445,7 @@ These five steps are described in detail below.
2.1 Visual CMake users, click the Configure button. If this is the first time you are
running cmake-gui in this directory, you will be prompted for the
- generator you wish to use (for example on Windows, Visual Studio 11).
+ generator you wish to use (for example on Windows, Visual Studio 12).
CMake will read in the CMakeLists.txt files from the source directory and
display options for the HDF5 project. After the first configure you
can adjust the cache settings and/or specify the locations of other programs.
@@ -462,7 +492,7 @@ These five steps are described in detail below.
Release and build the solution.
3.2.1 The external libraries (zlib and szip) can be configured
- to allow building the libraries by downloading from an GIT repository.
+ to allow building the libraries by downloading from a GIT repository.
The option is 'HDF5_ALLOW_EXTERNAL_SUPPORT'; by adding the following
configuration option:
-DHDF5_ALLOW_EXTERNAL_SUPPORT:STRING="GIT"
@@ -479,7 +509,7 @@ These five steps are described in detail below.
adding the following configuration option:
-DHDF5_ALLOW_EXTERNAL_SUPPORT:STRING="TGZ"
- The options to control the SVN URL (config/cmake/cacheinit.cmake
+ The options to control the TGZ URL (config/cmake/cacheinit.cmake
file) are:
ZLIB_TGZ_NAME:STRING="zlib_src.ext"
SZIP_TGZ_NAME:STRING="szip_src.ext"
@@ -613,6 +643,25 @@ else ()
H5_DEFAULT_PLUGINDIR "/usr/local/hdf5/lib/plugin"
endif ()
+NOTE:
+ The BUILD_STATIC_EXECS ("Build Static Executables") option is only valid
+ on some unix operating systems. It adds the "-static" flag to cflags. This
+ flag is not available on windows and some modern linux systems will
+ ignore the flag.
+
+ ---------------- Unsupported Library Options ---------------------
+ The threadsafe and C++ interfaces are not compatible
+ with the HDF5_ENABLE_PARALLEL option.
+ Unless ALLOW_UNSUPPORTED has been specified,
+ the following options must be disabled:
+ HDF5_ENABLE_THREADSAFE, HDF5_BUILD_CPP_LIB
+
+ The high-level, C++ and Fortran interfaces are not compatible
+ with the HDF5_ENABLE_THREADSAFE option because the lock is not hoisted
+ into the higher-level API calls.
+ Unless ALLOW_UNSUPPORTED has been specified,
+ the following options must be disabled:
+ HDF5_BUILD_HL_LIB, HDF5_BUILD_CPP_LIB, HDF5_BUILD_FORTRAN
========================================================================
@@ -628,326 +677,29 @@ Copy the contents of the file, both macro and option, into the
UserMacros.cmake file. Then enable the option to the CMake configuration,
build and test process.
+
========================================================================
-VIII. Options for Platform Configuration Files
+VIII. User Defined Compile Flags for HDF5 Libraries with CMake
========================================================================
-Below is the HDF518config.cmake and HDF5options.cmake ctest scripts.
-Execute:
- ctest -S HDF518config.cmake,BUILD_GENERATOR=xxx -C Release -VV -O hdf518.log
-The same scripts can be used on Linux, Mac OSX or a Windows machine by
-adding an option (${CTEST_SCRIPT_ARG}) to the platform configuration script.
-
-
-#############################################################################################
-### ${CTEST_SCRIPT_ARG} is of the form OPTION=VALUE ###
-### BUILD_GENERATOR required [Unix, VS2017, VS201764, VS2015, VS201564, VS2013, VS201364] ###
-### ctest -S HDF518config.cmake,BUILD_GENERATOR=VS201264 -C Release -VV -O hdf518.log ###
-#############################################################################################
-
-cmake_minimum_required (VERSION 3.10)
-############################################################################
-# Usage:
-# ctest -S HDF518config.cmake,OPTION=VALUE -C Release -VV -O test.log
-# where valid options for OPTION are:
-# BUILD_GENERATOR - The cmake build generator:
-# Unix * Unix Makefiles
-# VS2017 * Visual Studio 15 2017
-# VS201764 * Visual Studio 15 2017 Win64
-# VS2015 * Visual Studio 14 2015
-# VS201564 * Visual Studio 14 2015 Win64
-# VS2013 * Visual Studio 12 2013
-# VS201364 * Visual Studio 12 2013 Win64
-#
-# INSTALLDIR - root folder where hdf5 is installed
-# CTEST_CONFIGURATION_TYPE - Release, Debug, etc
-# CTEST_SOURCE_NAME - source folder
-# STATIC_ONLY - Build/use static libraries
-# FORTRAN_LIBRARIES - Build/use fortran libraries
-# NO_MAC_FORTRAN - Yes to be SHARED on a Mac
-##############################################################################
-
-set(CTEST_SOURCE_VERSION 1.8.19)
-set(CTEST_SOURCE_VERSEXT "")
-
-##############################################################################
-# handle input parameters to script.
-#BUILD_GENERATOR - which CMake generator to use, required
-#INSTALLDIR - HDF5-1.8 root folder
-#CTEST_CONFIGURATION_TYPE - Release, Debug, RelWithDebInfo
-#CTEST_SOURCE_NAME - name of source folder; HDF5-1.8
-#STATIC_ONLY - Default is YES
-#FORTRAN_LIBRARIES - Default is NO
-#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 ()
-
-# build generator must be defined
-if (NOT DEFINED BUILD_GENERATOR)
- message (FATAL_ERROR "BUILD_GENERATOR must be defined - Unix, VS2017, or VS201764, VS2015, VS201564, VS2013, VS201364")
-endif ()
-
-###################################################################
-### Following Line is one of [Release, RelWithDebInfo, Debug] #####
-set (CTEST_CONFIGURATION_TYPE "$ENV{CMAKE_CONFIG_TYPE}")
-###################################################################
-
-if (NOT DEFINED INSTALLDIR)
- if (WIN32)
- set (INSTALLDIR "C:/Program Files/HDF_Group/HDF5/${CTEST_SOURCE_VERSION}")
- else ()
- set (INSTALLDIR "${CTEST_SCRIPT_DIRECTORY}/HDF_Group/HDF5/${CTEST_SOURCE_VERSION}")
- endif ()
-endif ()
-if (NOT DEFINED CTEST_CONFIGURATION_TYPE)
- set (CTEST_CONFIGURATION_TYPE "Release")
-endif ()
-if (NOT DEFINED CTEST_SOURCE_NAME)
- set (CTEST_SOURCE_NAME "hdf5-${CTEST_SOURCE_VERSION}${CTEST_SOURCE_VERSEXT}")
-endif ()
-if (NOT DEFINED STATIC_ONLY)
- set (STATICONLYLIBRARIES "YES")
-else ()
- set (STATICONLYLIBRARIES "NO")
-endif ()
-if (NOT DEFINED FORTRAN_LIBRARIES)
- set (FORTRANLIBRARIES "NO")
-else ()
- set(FORTRANLIBRARIES "YES")
-endif ()
-
-set (CTEST_BINARY_NAME "build")
-set (CTEST_DASHBOARD_ROOT "${CTEST_SCRIPT_DIRECTORY}")
-if (WIN32)
- set (CTEST_SOURCE_DIRECTORY "${CTEST_DASHBOARD_ROOT}\\${CTEST_SOURCE_NAME}")
- set (CTEST_BINARY_DIRECTORY "${CTEST_DASHBOARD_ROOT}\\${CTEST_BINARY_NAME}")
-else ()
- set (CTEST_SOURCE_DIRECTORY "${CTEST_DASHBOARD_ROOT}/${CTEST_SOURCE_NAME}")
- set (CTEST_BINARY_DIRECTORY "${CTEST_DASHBOARD_ROOT}/${CTEST_BINARY_NAME}")
-endif ()
-
-###################################################################
-######### Following describes compiler ############
-if (WIN32)
- set (SITE_OS_NAME "Windows")
- set (SITE_OS_VERSION "WIN7")
- if (${BUILD_GENERATOR} STREQUAL "VS201764")
- set (CTEST_CMAKE_GENERATOR "Visual Studio 15 2017 Win64")
- set (SITE_OS_BITS "64")
- set (SITE_COMPILER_NAME "vs2017")
- set (SITE_COMPILER_VERSION "15")
- elseif (${BUILD_GENERATOR} STREQUAL "VS2017")
- set (CTEST_CMAKE_GENERATOR "Visual Studio 15 2017")
- set (SITE_OS_BITS "32")
- set (SITE_COMPILER_NAME "vs2017")
- set (SITE_COMPILER_VERSION "15")
- elseif (${BUILD_GENERATOR} STREQUAL "VS201564")
- set (CTEST_CMAKE_GENERATOR "Visual Studio 14 2015 Win64")
- set (SITE_OS_BITS "64")
- set (SITE_COMPILER_NAME "vs2015")
- set (SITE_COMPILER_VERSION "14")
- elseif (${BUILD_GENERATOR} STREQUAL "VS2015")
- set (CTEST_CMAKE_GENERATOR "Visual Studio 14 2015")
- set (SITE_OS_BITS "32")
- set (SITE_COMPILER_NAME "vs2015")
- set (SITE_COMPILER_VERSION "14")
- elseif (${BUILD_GENERATOR} STREQUAL "VS201364")
- set (CTEST_CMAKE_GENERATOR "Visual Studio 12 2013 Win64")
- set (SITE_OS_BITS "64")
- set (SITE_COMPILER_NAME "vs2013")
- set (SITE_COMPILER_VERSION "12")
- elseif (${BUILD_GENERATOR} STREQUAL "VS2013")
- set (CTEST_CMAKE_GENERATOR "Visual Studio 12 2013")
- set (SITE_OS_BITS "32")
- set (SITE_COMPILER_NAME "vs2013")
- set (SITE_COMPILER_VERSION "12")
- elseif (${BUILD_GENERATOR} STREQUAL "VS201264")
- set (CTEST_CMAKE_GENERATOR "Visual Studio 11 2012 Win64")
- set (SITE_OS_BITS "64")
- set (SITE_COMPILER_NAME "vs2012")
- set (SITE_COMPILER_VERSION "11")
- elseif (${BUILD_GENERATOR} STREQUAL "VS2012")
- set (CTEST_CMAKE_GENERATOR "Visual Studio 11 2012")
- set (SITE_OS_BITS "32")
- set (SITE_COMPILER_NAME "vs2012")
- set (SITE_COMPILER_VERSION "11")
- else ()
- message (FATAL_ERROR "Invalid BUILD_GENERATOR must be - Unix, VS2017, or VS201764, VS2015, VS201564, VS2013, VS201364")
- endif ()
-## Set the following to unique id your computer ##
- set (CTEST_SITE "WIN7${BUILD_GENERATOR}.XXXX")
-else ()
- set (CTEST_CMAKE_GENERATOR "Unix Makefiles")
-## Set the following to unique id your computer ##
- if (APPLE)
- set (CTEST_SITE "MAC.XXXX")
- else ()
- set (CTEST_SITE "LINUX.XXXX")
- endif ()
- if (APPLE)
- 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}")
- set (CTEST_USE_LAUNCHERS 1)
- set (RR_WARNINGS_COMMON "-Wno-format-nonliteral -Wno-cast-align -Wno-unused -Wno-unused-variable -Wno-unused-function -Wno-self-assign -Wno-unused-parameter -Wno-sign-compare")
- set (RR_WARNINGS_C "${RR_WARNINGS_COMMON} -Wno-deprecated-declarations -Wno-uninitialized")
- set (RR_WARNINGS_CXX "${RR_WARNINGS_COMMON} -Woverloaded-virtual -Wshadow -Wwrite-strings -Wc++11-compat")
- set (RR_FLAGS_COMMON "-g -O0 -fstack-protector-all -D_FORTIFY_SOURCE=2")
- set (RR_FLAGS_C "${RR_FLAGS_COMMON}")
- set (RR_FLAGS_CXX "${RR_FLAGS_COMMON}")
- set (ENV{CFLAGS} "${RR_WARNINGS_C} ${RR_FLAGS_C}")
- set (ENV{CXXFLAGS} "${RR_WARNINGS_CXX} ${RR_FLAGS_CXX}")
- endif ()
-endif ()
-###################################################################
-
-###################################################################
-######### Following is for submission to CDash ############
-###################################################################
-set (MODEL "Experimental")
-###################################################################
-
-###################################################################
-##### Following controls CDash submission #####
-#set (LOCAL_SUBMIT "TRUE")
-##### Following controls test process #####
-#set (LOCAL_SKIP_TEST "TRUE")
-#set (LOCAL_MEMCHECK_TEST "TRUE")
-#set (LOCAL_COVERAGE_TEST "TRUE")
-##### Following controls cpack command #####
-#set (LOCAL_NO_PACKAGE "TRUE")
-##### Following controls source update #####
-#set (LOCAL_UPDATE "TRUE")
-set (REPOSITORY_URL "https://git@bitbucket.hdfgroup.org/scm/hdffv/hdf5.git")
-set (REPOSITORY_BRANCH "hdf5_1_8")
-
-#uncomment to use a compressed source file: *.tar on linux or mac *.zip on windows
-#set (CTEST_USE_TAR_SOURCE "${CTEST_SOURCE_VERSION}${CTEST_SOURCE_VERSEXT}")
-###################################################################
-
-###################################################################
-if (${STATICONLYLIBRARIES})
- set (ADD_BUILD_OPTIONS "${ADD_BUILD_OPTIONS} -DBUILD_SHARED_LIBS:BOOL=OFF")
- ######### Following describes computer ############
- ## following is optional to describe build ##
- set (SITE_BUILDNAME_SUFFIX "STATIC")
-endif ()
-###################################################################
-#### fortran ####
-if (${FORTRANLIBRARIES})
- set (ADD_BUILD_OPTIONS "${ADD_BUILD_OPTIONS} -DHDF5_BUILD_FORTRAN:BOOL=ON")
- ### enable Fortran 2003 depends on HDF5_BUILD_FORTRAN
- set (ADD_BUILD_OPTIONS "${ADD_BUILD_OPTIONS} -DHDF5_ENABLE_F2003:BOOL=ON")
-else ()
- set (ADD_BUILD_OPTIONS "${ADD_BUILD_OPTIONS} -DHDF5_BUILD_FORTRAN:BOOL=OFF")
- ### enable Fortran 2003 depends on HDF5_BUILD_FORTRAN
- set (ADD_BUILD_OPTIONS "${ADD_BUILD_OPTIONS} -DHDF5_ENABLE_F2003:BOOL=OFF")
-endif ()
-
-### change install prefix
-set (ADD_BUILD_OPTIONS "${ADD_BUILD_OPTIONS} -DCMAKE_INSTALL_PREFIX:PATH=${INSTALLDIR}")
-set (ADD_BUILD_OPTIONS "${ADD_BUILD_OPTIONS} -DCTEST_CONFIGURATION_TYPE:STRING=$ENV{CMAKE_CONFIG_TYPE}")
-
-###################################################################
-
-if (WIN32)
- set (BINFILEBASE "HDF5-${CTEST_SOURCE_VERSION}${CTEST_SOURCE_VERSEXT}-win${SITE_OS_BITS}")
- include (${CTEST_SCRIPT_DIRECTORY}\\HDF5options.cmake)
- include (${CTEST_SCRIPT_DIRECTORY}\\CTestScript.cmake)
- if (EXISTS "${CTEST_BINARY_DIRECTORY}\\${BINFILEBASE}.exe")
- file (COPY "${CTEST_BINARY_DIRECTORY}\\${BINFILEBASE}.exe" DESTINATION ${CTEST_SCRIPT_DIRECTORY})
- endif ()
- if (EXISTS "${CTEST_BINARY_DIRECTORY}\\${BINFILEBASE}.msi")
- file (COPY "${CTEST_BINARY_DIRECTORY}\\${BINFILEBASE}.msi" DESTINATION ${CTEST_SCRIPT_DIRECTORY})
- endif ()
- if (EXISTS "${CTEST_BINARY_DIRECTORY}\\${BINFILEBASE}.zip")
- file (COPY "${CTEST_BINARY_DIRECTORY}\\${BINFILEBASE}.zip" DESTINATION ${CTEST_SCRIPT_DIRECTORY})
- endif ()
-else ()
- set (BINFILEBASE "HDF5-${CTEST_SOURCE_VERSION}${CTEST_SOURCE_VERSEXT}")
- include (${CTEST_SCRIPT_DIRECTORY}/HDF5options.cmake)
- include (${CTEST_SCRIPT_DIRECTORY}/CTestScript.cmake)
- if (APPLE)
- if (EXISTS "${CTEST_BINARY_DIRECTORY}/${BINFILEBASE}-Darwin.dmg")
- file (COPY "${CTEST_BINARY_DIRECTORY}/${BINFILEBASE}-Darwin.dmg" DESTINATION ${CTEST_SCRIPT_DIRECTORY})
- endif ()
- if (EXISTS "${CTEST_BINARY_DIRECTORY}/${BINFILEBASE}-Darwin.tar.gz")
- file (COPY "${CTEST_BINARY_DIRECTORY}/${BINFILEBASE}-Darwin.tar.gz" DESTINATION ${CTEST_SCRIPT_DIRECTORY})
- endif ()
- if (EXISTS "${CTEST_BINARY_DIRECTORY}/${BINFILEBASE}-Darwin.sh")
- file (COPY "${CTEST_BINARY_DIRECTORY}/${BINFILEBASE}-Darwin.sh" DESTINATION ${CTEST_SCRIPT_DIRECTORY})
- endif ()
- else ()
- if (CYGWIN)
- if (EXISTS "${CTEST_BINARY_DIRECTORY}/${BINFILEBASE}-CYGWIN.sh")
- file (COPY "${CTEST_BINARY_DIRECTORY}/${BINFILEBASE}-CYGWIN.sh" DESTINATION ${CTEST_SCRIPT_DIRECTORY})
- endif ()
- if (EXISTS "${CTEST_BINARY_DIRECTORY}/${BINFILEBASE}-CYGWIN.tar.gz")
- file (COPY "${CTEST_BINARY_DIRECTORY}/${BINFILEBASE}-CYGWIN.tar.gz" DESTINATION ${CTEST_SCRIPT_DIRECTORY})
- endif ()
- else ()
- if (EXISTS "${CTEST_BINARY_DIRECTORY}/${BINFILEBASE}-Linux.sh")
- file (COPY "${CTEST_BINARY_DIRECTORY}/${BINFILEBASE}-Linux.sh" DESTINATION ${CTEST_SCRIPT_DIRECTORY})
- endif ()
- if (EXISTS "${CTEST_BINARY_DIRECTORY}/${BINFILEBASE}-Linux.tar.gz")
- file (COPY "${CTEST_BINARY_DIRECTORY}/${BINFILEBASE}-Linux.tar.gz" DESTINATION ${CTEST_SCRIPT_DIRECTORY})
- endif ()
- endif ()
- endif ()
-endif ()
-
-HDF5options.cmake:
-#############################################################################################
-#### Change default configuration of options in config/cmake/cacheinit.cmake file ###
-#### format: set(ADD_BUILD_OPTIONS "${ADD_BUILD_OPTIONS} -DXXX:YY=ZZZZ") ###
-#############################################################################################
-
-### uncomment/comment and change the following lines for other configuration options
-
-#############################################################################################
-#### alternate toolsets ####
-#set(CMAKE_GENERATOR_TOOLSET "Intel C++ Compiler 17.0")
-
-#############################################################################################
-#### ext libraries ####
-
-### ext libs from tgz
-set(ADD_BUILD_OPTIONS "${ADD_BUILD_OPTIONS} -DHDF5_ALLOW_EXTERNAL_SUPPORT:STRING=TGZ -DTGZPATH:PATH=${CTEST_SCRIPT_DIRECTORY}")
-### ext libs from git
-#set(ADD_BUILD_OPTIONS "${ADD_BUILD_OPTIONS} -DHDF5_ALLOW_EXTERNAL_SUPPORT:STRING=GIT")
-### ext libs on system
-#set(ADD_BUILD_OPTIONS "${ADD_BUILD_OPTIONS} -DZLIB_LIBRARY:FILEPATH=some_location/lib/zlib.lib -DZLIB_INCLUDE_DIR:PATH=some_location/include")
-#set(ADD_BUILD_OPTIONS "${ADD_BUILD_OPTIONS} -DSZIP_LIBRARY:FILEPATH=some_location/lib/szlib.lib -DSZIP_INCLUDE_DIR:PATH=some_location/include")
-
-### disable ext zlib building
-#set(ADD_BUILD_OPTIONS "${ADD_BUILD_OPTIONS} -DHDF5_ENABLE_Z_LIB_SUPPORT:BOOL=OFF")
-### disable ext szip building
-#set(ADD_BUILD_OPTIONS "${ADD_BUILD_OPTIONS} -DHDF5_ENABLE_SZIP_SUPPORT:BOOL=OFF")
-#set(ADD_BUILD_OPTIONS "${ADD_BUILD_OPTIONS} -DHDF5_ENABLE_SZIP_ENCODING:BOOL=OFF")
-
-#############################################################################################
-### disable test program builds
-
-#set(ADD_BUILD_OPTIONS "${ADD_BUILD_OPTIONS} -DBUILD_TESTING:BOOL=OFF")
+Custom compiler flags can be added by defining the CMAKE_C_FLAGS and
+CMAKE_CXX_FLAGS variables.
+Using a cmake script:
+ set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -O2")
+Defined on the configure line:
+ cmake -G "Visual Studio 12 2013" -DCMAKE_C_FLAGS:STRING=-O2 ..
-#############################################################################################
-### disable packaging
+Debug symbols are enabled with configuration selections Debug or RelWithDebInfo.
+The difference between Debug and RelWithDebInfo configurations is that
+RelWithDebInfo optimizes the code similar to Release. It produces fully optimized
+code, but also creates the symbol table and the debug metadata to give the
+debugger input to map the execution back to the original code.
+RelwithDebInfo configuration should not affect the performance when the code
+is run without a debugger attached.
-#set(ADD_BUILD_OPTIONS "${ADD_BUILD_OPTIONS} -DHDF5_NO_PACKAGES:BOOL=ON")
-### Create install package with external libraries (szip, zlib)
-set(ADD_BUILD_OPTIONS "${ADD_BUILD_OPTIONS} -DHDF5_PACKAGE_EXTLIBS:BOOL=ON")
+The HDF5_ENABLE_COVERAGE option will add "-g -O0 -fprofile-arcs -ftest-coverage"
+to CMAKE_C_FLAGS.
-#############################################################################################
========================================================================
For further assistance, send email to help@hdfgroup.org