mirror of
https://github.com/HDFGroup/hdf5.git
synced 2024-12-15 07:40:23 +08:00
1a4bda1bd8
the option from the CMake cache init files. Fixes HDFFV-10184
988 lines
46 KiB
Plaintext
988 lines
46 KiB
Plaintext
************************************************************************
|
|
* Build and Install HDF5 C, C++, Fortran and High-Level Libraries *
|
|
* and tools with CMake *
|
|
************************************************************************
|
|
|
|
Table of Contents
|
|
|
|
Section I: Preconditions
|
|
Section II: Quick Step Building HDF5 Libraries with CMake Script Mode
|
|
Section III: Quick Step Building HDF5 Libraries with CMake Command Mode
|
|
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
|
|
|
|
************************************************************************
|
|
|
|
|
|
========================================================================
|
|
I. Preconditions
|
|
========================================================================
|
|
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/
|
|
and put it in "myhdfstuff".
|
|
Uncompress the file. There should be a hdf5-1.10."X" folder.
|
|
|
|
CMake version
|
|
1. We suggest you obtain the latest CMake from the Kitware web site.
|
|
The HDF5 1.10."X" product requires a minimum CMake version 3.2.2,
|
|
where "X" is the current HDF5 release version.
|
|
|
|
Note:
|
|
To change the install prefix from the platform defaults initialize
|
|
the CMake variable, CMAKE_INSTALL_PREFIX.
|
|
|
|
|
|
========================================================================
|
|
II. Quick Step Building HDF5 Libraries with CMake Script Mode
|
|
========================================================================
|
|
This short set of instructions is written for users who want to quickly
|
|
build the HDF5 C and C++ static libraries and tools with SZIP and ZLIB
|
|
compression included. This procedure will use the default settings in
|
|
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
|
|
|
|
Single compressed file with all the files needed, including source:
|
|
hdf5-1.10.X-CMake.zip or hdf5-1.10.X-CMake.tar.gz
|
|
|
|
Individual files
|
|
-----------------------------------------------
|
|
CMake build script:
|
|
CTestScript.cmake
|
|
|
|
External compression szip and zlib libraries:
|
|
SZip.tar.gz
|
|
ZLib.tar.gz
|
|
|
|
Platform configuration files:
|
|
HDF518config.cmake
|
|
-----------------------------------------------
|
|
|
|
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.
|
|
|
|
3. Download the CTestScript.cmake file to "myhdfstuff".
|
|
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)
|
|
|
|
5. From the "myhdfstuff" directory execute the CTest Script with the
|
|
following options:
|
|
|
|
On 32-bit Windows with Visual Studio 2012, execute:
|
|
ctest -S HDF5config.cmake,BUILD_GENERATOR=VS2012 -C Release -VV -O hdf5.log
|
|
On 64-bit Windows with Visual Studio 2012, execute:
|
|
ctest -S HDF5config.cmake,BUILD_GENERATOR=VS201264 -C Release -VV -O hdf5.log
|
|
On 32-bit Windows with Visual Studio 2013, execute:
|
|
ctest -S HDF5config.cmake,BUILD_GENERATOR=VS2013 -C Release -VV -O hdf5.log
|
|
On 64-bit Windows with Visual Studio 2013, execute:
|
|
ctest -S HDF5config.cmake,BUILD_GENERATOR=VS201364 -C Release -VV -O hdf5.log
|
|
On Linux and Mac, execute:
|
|
ctest -S HDF5config.cmake,BUILD_GENERATOR=Unix -C Release -VV -O hdf5.log
|
|
|
|
The command above will configure, build, test, and create an install
|
|
package in the myhdfstuff folder. It will have the format:
|
|
HDF5-1.10.NN-<platform>.<zip or tar.gz>
|
|
|
|
On Unix, <platform> will be "Linux". A similar .sh file will also be created.
|
|
On Windows, <platform> will be "win64" or "win32". If you have an
|
|
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.
|
|
|
|
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 "-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:
|
|
HDF5-1.10."X"-win32.msi or HDF5-1.10."X"-win64.msi
|
|
By default this program will install the hdf5 library into the
|
|
"C:\Program Files" directory and will create the following
|
|
directory structure:
|
|
HDF_Group
|
|
--HDF5
|
|
----1.10."X"
|
|
------bin
|
|
------include
|
|
------lib
|
|
------cmake
|
|
|
|
On Linux, change to the install destination directory
|
|
(create it if doesn't exist) and execute:
|
|
<path-to>/myhdfstuff/HDF5-1.10."X"-Linux.sh
|
|
After accepting the license, the script will prompt:
|
|
By default the HDF5 will be installed in:
|
|
"<current directory>/HDF5-1.10."X"-Linux"
|
|
Do you want to include the subdirectory HDF5-1.10."X"-Linux?
|
|
Saying no will install in: "<current directory>" [Yn]:
|
|
Note that the script will create the following directory structure
|
|
relative to the install point:
|
|
HDF_Group
|
|
--HDF5
|
|
----1.10."X"
|
|
------bin
|
|
------include
|
|
------lib
|
|
------share
|
|
|
|
On Mac you will find HDF5-1.10."X"-Darwin.dmg in the myhdfstuff folder. Click
|
|
on the dmg file to proceed with installation. After accepting the license,
|
|
there will be a folder with the following structure:
|
|
HDF_Group
|
|
--HDF5
|
|
----1.10."X"
|
|
------bin
|
|
------include
|
|
------lib
|
|
------share
|
|
|
|
By default the installation will create the bin, include, lib and cmake
|
|
folders in the <install destination directory>/HDF_Group/HDF5/1.10."X"
|
|
|
|
|
|
========================================================================
|
|
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
|
|
the HDF5 source code package using the CMake command line tools.
|
|
|
|
Go through these steps:
|
|
|
|
1. Change to the development directory "myhdfstuff".
|
|
|
|
2. Uncompress the HDF5 source file
|
|
|
|
3. Create a folder "build" in the "myhdfstuff" directory.
|
|
|
|
4. Change into the "build" folder.
|
|
|
|
5. Configure the C library, tools and tests with one of the following commands:
|
|
|
|
On Windows 32 bit
|
|
cmake -G "Visual Studio 12 2013" -DCMAKE_BUILD_TYPE:STRING=Release -DBUILD_SHARED_LIBS:BOOL=OFF -DBUILD_TESTING:BOOL=ON -DHDF5_BUILD_TOOLS:BOOL=ON ..\hdf5-1.10."X"
|
|
|
|
On Windows 64 bit
|
|
cmake -G "Visual Studio 12 2013 Win64" -DCMAKE_BUILD_TYPE:STRING=Release -DBUILD_SHARED_LIBS:BOOL=OFF -DBUILD_TESTING:BOOL=ON -DHDF5_BUILD_TOOLS:BOOL=ON ..\hdf5-1.10."X"
|
|
|
|
On Linux and Mac
|
|
cmake -G "Unix Makefiles" -DCMAKE_BUILD_TYPE:STRING=Release -DBUILD_SHARED_LIBS:BOOL=OFF -DBUILD_TESTING:BOOL=ON -DHDF5_BUILD_TOOLS:BOOL=ON ../hdf5-1.10."X"
|
|
|
|
where "X" is the current release version.
|
|
|
|
6. Build the C library, tools and tests with this command:
|
|
cmake --build . --config Release
|
|
|
|
7. Test the C library and tools with this command:
|
|
ctest . -C Release
|
|
|
|
8. Create an install image with this command:
|
|
cpack -C Release CPackConfig.cmake
|
|
|
|
9. To install
|
|
On Windows, execute:
|
|
HDF5-1.10."X"-win32.msi or HDF5-1.10."X"-win64.msi
|
|
By default this program will install the hdf5 library into the
|
|
"C:\Program Files" directory and will create the following
|
|
directory structure:
|
|
HDF_Group
|
|
--HDF5
|
|
----1.10."X"
|
|
------bin
|
|
------include
|
|
------lib
|
|
------cmake
|
|
|
|
On Linux, change to the install destination directory
|
|
(create if doesn't exist) and execute:
|
|
<path-to>/myhdfstuff/build/HDF5-1.10."X"-Linux.sh
|
|
After accepting the license, the script will prompt:
|
|
By default the HDF5 will be installed in:
|
|
"<current directory>/HDF5-1.10."X"-Linux"
|
|
Do you want to include the subdirectory HDF5-1.10."X"-Linux?
|
|
Saying no will install in: "<current directory>" [Yn]:
|
|
Note that the script will create the following directory structure
|
|
relative to the install point:
|
|
HDF_Group
|
|
--HDF5
|
|
----1.10."X"
|
|
------bin
|
|
------include
|
|
------lib
|
|
------share
|
|
|
|
On Mac you will find HDF5-1.10."X"-Darwin.dmg in the build folder. Click
|
|
on the dmg file to proceed with installation. After accepting the license,
|
|
there will be a folder with the following structure:
|
|
HDF_Group
|
|
--HDF5
|
|
----1.10."X"
|
|
------bin
|
|
------include
|
|
------lib
|
|
------share
|
|
|
|
|
|
========================================================================
|
|
IV. Further considerations
|
|
========================================================================
|
|
|
|
1. We suggest you obtain the latest CMake for windows from the Kitware
|
|
web site. The HDF5 1.10."X" product requires a minimum CMake version 3.2.2.
|
|
|
|
2. If you plan to use Zlib or Szip:
|
|
A. Download the binary packages and install them in a central location.
|
|
For example on Windows, create a folder extlibs and install the
|
|
packages there. Add the following CMake options:
|
|
-DZLIB_LIBRARY:FILEPATH=some_location/lib/zlib.lib
|
|
-DZLIB_INCLUDE_DIR:PATH=some_location/include
|
|
-DSZIP_LIBRARY:FILEPATH=some_location/lib/szlib.lib
|
|
-DSZIP_INCLUDE_DIR:PATH=some_location/include
|
|
where "some_location" is the full path to the extlibs folder.
|
|
|
|
B. Use source packages from an SVN server by adding the following CMake
|
|
options:
|
|
HDF5_ALLOW_EXTERNAL_SUPPORT:STRING="GIT"
|
|
ZLIB_GIT_URL:STRING="http://some_location/zlib"
|
|
SZIP_GIT_URL:STRING="http://some_location/szip"
|
|
where "some_location" is the URL to the GIT repository. Also set
|
|
CMAKE_BUILD_TYPE to the configuration type.
|
|
|
|
C. Use source packages from a compressed file by adding the following
|
|
CMake options:
|
|
HDF5_ALLOW_EXTERNAL_SUPPORT:STRING="TGZ"
|
|
ZLIB_TGZ_NAME:STRING="zlib_src.ext"
|
|
SZIP_TGZ_NAME:STRING="szip_src.ext"
|
|
TGZPATH:STRING="some_location"
|
|
where "some_location" is the URL or full path to the compressed
|
|
file and ext is the type of compression file. Also set CMAKE_BUILD_TYPE
|
|
to the configuration type during configuration
|
|
|
|
3. If you are building on Apple Darwin platforms, you should add the
|
|
following options:
|
|
Compiler choice - use xcode by setting the ENV variables of CC and CXX
|
|
Shared fortran is not supported, build static:
|
|
BUILD_SHARED_LIBS:BOOL=OFF
|
|
Additional options:
|
|
CMAKE_ANSI_CFLAGS:STRING=-fPIC
|
|
CTEST_USE_LAUNCHERS:BOOL=ON
|
|
CMAKE_BUILD_WITH_INSTALL_RPATH:BOOL=OFF
|
|
|
|
4. Windows developers should install NSIS or WiX to create an install image with CPack.
|
|
Visual Studio Express users will not be able to package HDF5 into
|
|
an install image executable.
|
|
|
|
5. Developers can copy the config/cmake/cacheinit.cmake file and alter the
|
|
the settings for the developers' environment. Then the only options needed
|
|
on the command line are those options that are different. Example using HDF
|
|
default cache file:
|
|
cmake -C ../config/cmake/cacheinit.cmake -G "Visual Studio 12 2013" \
|
|
-DHDF5_ENABLE_SZIP_SUPPORT:BOOL=OFF -DHDF5_ENABLE_Z_LIB_SUPPORT:BOOL=OFF \
|
|
-DCMAKE_BUILD_TYPE:STRING=Release ..
|
|
|
|
Notes: CMake and HDF5
|
|
|
|
1. Using CMake for building and using HDF5 is under active development.
|
|
While we have attempted to provide error-free files, please
|
|
understand that development with CMake has not been extensively
|
|
tested outside of HDF. The CMake specific files may change
|
|
before the next release.
|
|
|
|
2. CMake support for HDF5 development should be usable on any
|
|
system where CMake is supported. Please send us any comments on
|
|
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.
|
|
|
|
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
|
|
preferred because of its flexibility.
|
|
|
|
Notes: CMake in General
|
|
|
|
1. More information about using CMake can be found at the KitWare site at
|
|
www.cmake.org.
|
|
|
|
2. CMake uses the command line; however, the visual CMake tool is
|
|
available for the configuration step. The steps are similar for
|
|
all the operating systems supported by CMake.
|
|
|
|
|
|
========================================================================
|
|
V. Options for Building HDF5 Libraries with the CMake Command Line
|
|
========================================================================
|
|
|
|
To build the HDF5 Libraries with CMake, go through these five steps:
|
|
|
|
1. Run CMake
|
|
2. Configure the cache settings
|
|
3. Build HDF5
|
|
4. Test HDF5
|
|
5. Package HDF5 (create install image)
|
|
|
|
These five steps are described in detail below.
|
|
|
|
========================================================================
|
|
|
|
1. Run CMake
|
|
|
|
The visual CMake executable is named "cmake-gui.exe" on Windows and should be
|
|
available in your Start menu. For Linux, UNIX, and Mac users the
|
|
executable is named "cmake-gui" and can be found where CMake was
|
|
installed.
|
|
|
|
Specify the source and build directories.
|
|
|
|
***** Make the build and source directories different. ******
|
|
|
|
For example on Windows, if the source is at c:\MyHDFstuff\hdf5,
|
|
then use c:\MyHDFstuff\hdf5\build or c:\MyHDFstuff\build\hdf5 as the
|
|
build directory.
|
|
|
|
RECOMMENDED:
|
|
Users can perform the configuration step without using the visual
|
|
cmake-gui program. We use the file cacheinit.cmake in the
|
|
config/cmake source folder for our testing. This file enables all of the
|
|
basic options and we turn specific options on or off for testing
|
|
using the following command line within the build directory:
|
|
|
|
cmake -C <sourcepath>/config/cmake/cacheinit.cmake -G "<generator>" [-D<options>] <sourcepath>
|
|
|
|
Where <generator> is
|
|
* MinGW Makefiles
|
|
* NMake Makefiles
|
|
* Unix Makefiles
|
|
* Visual Studio 11 2012
|
|
* Visual Studio 11 2012 Win64
|
|
* Visual Studio 12 2013
|
|
* Visual Studio 12 2013 Win64
|
|
* Visual Studio 14 2015
|
|
* Visual Studio 14 2015 Win64
|
|
|
|
<options> is:
|
|
* SZIP_INCLUDE_DIR:PATH=<path to szip includes directory>
|
|
* SZIP_LIBRARY:FILEPATH=<path to szip/library file>
|
|
* ZLIB_INCLUDE_DIR:PATH=<path to zlib includes directory>
|
|
* ZLIB_LIBRARY:FILEPATH=<path to zlib/library file>
|
|
* <HDF5OPTION>:BOOL=[ON | OFF]
|
|
|
|
<cacheinit.cmake> is:
|
|
# This is the CMakeCache file used by HDF Group for daily tests.
|
|
########################
|
|
# EXTERNAL cache entries
|
|
########################
|
|
set (CMAKE_INSTALL_FRAMEWORK_PREFIX "Library/Frameworks" CACHE STRING "Frameworks installation directory" FORCE)
|
|
set (HDF_PACKAGE_EXT "" CACHE STRING "Name of HDF package extension" FORCE)
|
|
set (HDF5_BUILD_FORTRAN ON CACHE BOOL "Build FORTRAN support" FORCE)
|
|
set (HDF5_BUILD_GENERATORS OFF CACHE BOOL "Build Test Generators" FORCE)
|
|
set (HDF5_ENABLE_Z_LIB_SUPPORT ON CACHE BOOL "Enable Zlib Filters" FORCE)
|
|
set (HDF5_ENABLE_SZIP_SUPPORT ON CACHE BOOL "Use SZip Filter" FORCE)
|
|
set (HDF5_ENABLE_SZIP_ENCODING ON CACHE BOOL "Use SZip Encoding" FORCE)
|
|
set (HDF5_ENABLE_HSIZET ON CACHE BOOL "Enable datasets larger than memory" FORCE)
|
|
set (ALLOW_UNSUPPORTED OFF CACHE BOOL "Enable unsupported combinations of configuration options" FORCE)
|
|
set (HDF5_ENABLE_DEPRECATED_SYMBOLS ON CACHE BOOL "Enable deprecated public API symbols" FORCE)
|
|
set (HDF5_ENABLE_DIRECT_VFD OFF CACHE BOOL "Build the Direct I/O Virtual File Driver" FORCE)
|
|
set (HDF5_ENABLE_PARALLEL OFF CACHE BOOL "Enable parallel build (requires MPI)" FORCE)
|
|
set (MPIEXEC_MAX_NUMPROCS "3" CACHE STRING "Minimum number of processes for HDF parallel tests" FORCE)
|
|
set (HDF5_BUILD_PARALLEL_ALL OFF CACHE BOOL "Build Parallel Programs" FORCE)
|
|
set (HDF5_ENABLE_COVERAGE OFF CACHE BOOL "Enable code coverage for Libraries and Programs" FORCE)
|
|
set (HDF5_ENABLE_USING_MEMCHECKER OFF CACHE BOOL "Indicate that a memory checker is used" FORCE)
|
|
set (HDF5_MEMORY_ALLOC_SANITY_CHECK OFF CACHE BOOL "Indicate that internal memory allocation sanity checks are enabled" FORCE)
|
|
set (HDF5_DISABLE_COMPILER_WARNINGS OFF CACHE BOOL "Disable compiler warnings" FORCE)
|
|
set (HDF5_ENABLE_ALL_WARNINGS ON CACHE BOOL "Enable all warnings" FORCE)
|
|
set (HDF5_USE_FOLDERS ON CACHE BOOL "Enable folder grouping of projects in IDEs." FORCE)
|
|
set (HDF5_USE_16_API_DEFAULT OFF CACHE BOOL "Use the HDF5 1.6.x API by default" FORCE)
|
|
set (HDF5_USE_18_API_DEFAULT OFF CACHE BOOL "Use the HDF5 1.8.x API by default" FORCE)
|
|
set (HDF5_ENABLE_THREADSAFE OFF CACHE BOOL "(WINDOWS)Enable Threadsafety" FORCE)
|
|
set (HDF_TEST_EXPRESS "2" CACHE STRING "Control testing framework (0-3)" FORCE)
|
|
set (HDF5_PACKAGE_EXTLIBS OFF CACHE BOOL "(WINDOWS)CPACK - include external libraries" FORCE)
|
|
set (HDF5_NO_PACKAGES OFF CACHE BOOL "CPACK - Disable packaging" FORCE)
|
|
set (HDF5_ALLOW_EXTERNAL_SUPPORT "NO" CACHE STRING "Allow External Library Building (NO GIT SVN TGZ)" FORCE)
|
|
set_property (CACHE HDF5_ALLOW_EXTERNAL_SUPPORT PROPERTY STRINGS NO GIT SVN TGZ)
|
|
set (ZLIB_TGZ_NAME "ZLib.tar.gz" CACHE STRING "Use ZLib from compressed file" FORCE)
|
|
set (SZIP_TGZ_NAME "SZip.tar.gz" CACHE STRING "Use SZip from compressed file" FORCE)
|
|
set (ZLIB_PACKAGE_NAME "zlib" CACHE STRING "Name of ZLIB package" FORCE)
|
|
set (SZIP_PACKAGE_NAME "szip" CACHE STRING "Name of SZIP package" FORCE)
|
|
|
|
2. Configure the cache settings
|
|
|
|
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).
|
|
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.
|
|
|
|
Any conflicts or new values will be highlighted by the configure
|
|
process in red. Once you are happy with all the settings and there are no
|
|
more values in red, click the Generate button to produce the appropriate
|
|
build files.
|
|
|
|
On Windows, if you are using a Visual Studio generator, the solution and
|
|
project files will be created in the build folder.
|
|
|
|
On linux, if you are using the Unix Makefiles generator, the Makefiles will
|
|
be created in the build folder.
|
|
|
|
2.2 Preferred command line example on Windows in c:\MyHDFstuff\hdf5\build directory:
|
|
|
|
cmake -C ../config/cmake/cacheinit.cmake -G "Visual Studio 12 2013" \
|
|
-DHDF5_ENABLE_SZIP_SUPPORT:BOOL=OFF -DHDF5_ENABLE_Z_LIB_SUPPORT:BOOL=OFF \
|
|
-DCMAKE_BUILD_TYPE:STRING=Release ..
|
|
|
|
2.3 On Windows, if you are using a Visual Studio Express version you must
|
|
be sure that the following two options are correctly set/unset:
|
|
|
|
HDF5_NO_PACKAGES:BOOL=ON
|
|
HDF5_USE_FOLDERS:BOOL=OFF
|
|
|
|
3. Build HDF5
|
|
|
|
On Windows, you can build HDF5 using either the Visual Studio Environment
|
|
or the command line. The command line can be used on all platforms;
|
|
Windows, linux, Unix, and Mac.
|
|
|
|
To build from the command line, navigate to your build directory and
|
|
execute the following:
|
|
|
|
cmake --build . --config {Debug | Release}
|
|
|
|
NOTE: "--config {Debug | Release}" may be optional on your platform. We
|
|
recommend choosing either Debug or Release on Windows.
|
|
|
|
3.1 If you wish to use the Visual Studio environment, open the solution
|
|
file in your build directory. Be sure to select either Debug or
|
|
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.
|
|
The option is 'HDF5_ALLOW_EXTERNAL_SUPPORT'; by adding the following
|
|
configuration option:
|
|
-DHDF5_ALLOW_EXTERNAL_SUPPORT:STRING="GIT"
|
|
|
|
The options to control the GIT URL (config/cmake/cacheinit.cmake file) are:
|
|
ZLIB_GIT_URL:STRING="http://${git_url}/zlib"
|
|
SZIP_GIT_URL:STRING="http://${git_url}/szip"
|
|
${git_url} should be changed to your location. Also define CMAKE_BUILD_TYPE
|
|
to be the configuration type.
|
|
|
|
3.2.2 Or the external libraries (zlib and szip) can be configured
|
|
to allow building the libraries by using a compressed file.
|
|
The option is 'HDF5_ALLOW_EXTERNAL_SUPPORT' and is enabled by
|
|
adding the following configuration option:
|
|
-DHDF5_ALLOW_EXTERNAL_SUPPORT:STRING="TGZ"
|
|
|
|
The options to control the SVN URL (config/cmake/cacheinit.cmake
|
|
file) are:
|
|
ZLIB_TGZ_NAME:STRING="zlib_src.ext"
|
|
SZIP_TGZ_NAME:STRING="szip_src.ext"
|
|
TGZPATH:STRING="some_location"
|
|
where "some_location/xxxx_src.ext" is the URL or full path to
|
|
the compressed file and where ext is the type of the compression
|
|
file such as .bz2, .tar, .tar.gz, .tgz, or .zip. Also define
|
|
CMAKE_BUILD_TYPE to be the configuration type.
|
|
|
|
4. Test HDF5
|
|
|
|
To test the build, navigate to your build directory and execute:
|
|
|
|
ctest . -C {Debug | Release}
|
|
|
|
NOTE: "-C {Debug | Release}" may be optional on your platform. We
|
|
recommend choosing either Debug or Release to match the build
|
|
step on Windows.
|
|
|
|
5. Packaging HDF5 (create an install image)
|
|
|
|
To package the build into a simple installer using WiX toolset or the NullSoft installer NSIS
|
|
on Windows, or into compressed files (.tar.gz, .sh, .zip), use the CPack tool.
|
|
|
|
To package the build, navigate to your build directory and execute;
|
|
|
|
cpack -C {Debug | Release} CPackConfig.cmake
|
|
|
|
NOTE: See note 8 of this document for NSIS information.
|
|
See note 9 of this document for WiX information.
|
|
Also, if you are using a Visual Studio Express version or
|
|
want to disable the packaging components, set HDF5_NO_PACKAGES
|
|
to ON (on the command line add -DHDF5_NO_PACKAGES:BOOL=ON)
|
|
|
|
6. The files that support building HDF5 with CMake are all the files in the
|
|
config/cmake folder, the CMakeLists.txt files in each source folder, and
|
|
CTestConfig.cmake. CTestConfig.cmake is specific to the internal testing
|
|
performed by The HDF Group. It should be altered for the user's
|
|
installation and needs. The cacheinit.cmake file settings are used by
|
|
The HDF Group for daily testing. It should be altered/ignored for the user's
|
|
installation and needs.
|
|
|
|
7. More information about using CMake can be found at the KitWare site,
|
|
www.cmake.org.
|
|
|
|
8. Nullsoft Scriptable Install System
|
|
The Nullsoft Scriptable Install System (NSIS) is an open source installation
|
|
system. It was created by the WinAmp authors to distribute that application,
|
|
but it is now a general-purpose system which anyone might use. NSIS installers
|
|
recognize /S for silent installation and /D=dir to specify the
|
|
"output directory", which is where the program will be installed. These
|
|
options are case-sensitive, so be sure to type them in upper case.
|
|
|
|
9. WiX Toolset
|
|
WiX--the Windows Installer XML toolset--lets developers create installers for
|
|
Windows Installer, the Windows installation engine. See http://wixtoolset.org.
|
|
|
|
|
|
========================================================================
|
|
VI. CMake Option Defaults for HDF5
|
|
========================================================================
|
|
|
|
In the options listed below, there are three columns of information:
|
|
Option Name, Option Description, and Option Default.
|
|
The config/cmake/cacheinit.cmake file can override the following values.
|
|
|
|
---------------- General Build Options ---------------------
|
|
BUILD_SHARED_LIBS "Build Shared Libraries" ON
|
|
BUILD_STATIC_EXECS "Build Static Executables" OFF
|
|
BUILD_TESTING "Build HDF5 Unit Testing" ON
|
|
|
|
---------------- HDF5 Build Options ---------------------
|
|
HDF5_BUILD_CPP_LIB "Build HDF5 C++ Library" ON
|
|
HDF5_BUILD_EXAMPLES "Build HDF5 Library Examples" ON
|
|
HDF5_BUILD_FORTRAN "Build FORTRAN support" OFF
|
|
HDF5_BUILD_JAVA "Build JAVA support" OFF
|
|
HDF5_BUILD_HL_LIB "Build HIGH Level HDF5 Library" ON
|
|
HDF5_BUILD_TOOLS "Build HDF5 Tools" ON
|
|
|
|
---------------- HDF5 Advanced Options ---------------------
|
|
ALLOW_UNSUPPORTED "Allow unsupported combinations of configure options" OFF
|
|
HDF5_DISABLE_COMPILER_WARNINGS "Disable compiler warnings" OFF
|
|
HDF5_ENABLE_INSTRUMENT "Instrument The library" OFF
|
|
HDF5_ENABLE_CODESTACK "Enable the function stack tracing (for developer debugging)." OFF
|
|
HDF5_ENABLE_COVERAGE "Enable code coverage for Libraries and Programs" OFF
|
|
HDF5_ENABLE_DEBUG_APIS "Turn on extra debug output in all packages" OFF
|
|
HDF5_ENABLE_DEPRECATED_SYMBOLS "Enable deprecated public API symbols" ON
|
|
HDF5_ENABLE_DIRECT_VFD "Build the Direct I/O Virtual File Driver" OFF
|
|
HDF5_ENABLE_EMBEDDED_LIBINFO "embed library info into executables" ON
|
|
HDF5_ENABLE_HSIZET "Enable datasets larger than memory" ON
|
|
HDF5_ENABLE_LARGE_FILE "Enable support for large (64-bit) files on Linux." ON
|
|
HDF5_ENABLE_PARALLEL "Enable parallel build (requires MPI)" OFF
|
|
HDF5_ENABLE_TRACE "Enable API tracing capability" OFF
|
|
HDF5_ENABLE_USING_MEMCHECKER "Indicate that a memory checker is used" OFF
|
|
HDF5_GENERATE_HEADERS "Rebuild Generated Files" ON
|
|
HDF5_JAVA_PACK_JRE "Package a JRE installer directory" OFF
|
|
HDF5_MEMORY_ALLOC_SANITY_CHECK "Indicate that internal memory allocation sanity checks are enabled" OFF
|
|
HDF5_METADATA_TRACE_FILE "Enable metadata trace file collection" OFF
|
|
HDF5_NO_PACKAGES "Do not include CPack Packaging" OFF
|
|
HDF5_PACK_EXAMPLES "Package the HDF5 Library Examples Compressed File" OFF
|
|
HDF5_PACK_MACOSX_FRAMEWORK "Package the HDF5 Library in a Frameworks" OFF
|
|
HDF5_PACKAGE_EXTLIBS "CPACK - include external libraries" OFF
|
|
HDF5_STRICT_FORMAT_CHECKS "Whether to perform strict file format checks" OFF
|
|
HDF_TEST_EXPRESS "Control testing framework (0-3)" "0"
|
|
HDF5_TEST_VFD "Execute tests with different VFDs" OFF
|
|
HDF5_USE_16_API_DEFAULT "Use the HDF5 1.6.x API by default" OFF
|
|
HDF5_USE_18_API_DEFAULT "Use the HDF5 1.8.x API by default" OFF
|
|
HDF5_USE_FOLDERS "Enable folder grouping of projects in IDEs." OFF
|
|
HDF5_WANT_DATA_ACCURACY "IF data accuracy is guaranteed during data conversions" ON
|
|
HDF5_WANT_DCONV_EXCEPTION "exception handling functions is checked during data conversions" ON
|
|
HDF5_ENABLE_THREADSAFE "Enable Threadsafety" OFF
|
|
SKIP_HDF5_FORTRAN_SHARED "Do not build the fortran shared libraries" OFF
|
|
if (APPLE)
|
|
HDF5_BUILD_WITH_INSTALL_NAME "Build with library install_name set to the installation path" OFF
|
|
if (CMAKE_BUILD_TYPE MATCHES Debug)
|
|
HDF5_ENABLE_TRACE "Enable API tracing capability" ON
|
|
if (HDF5_TEST_VFD)
|
|
HDF5_TEST_FHEAP_VFD "Execute fheap test with different VFDs" ON
|
|
|
|
---------------- External Library Options ---------------------
|
|
HDF5_ALLOW_EXTERNAL_SUPPORT "Allow External Library Building" "NO"
|
|
HDF5_ENABLE_SZIP_SUPPORT "Use SZip Filter" OFF
|
|
HDF5_ENABLE_Z_LIB_SUPPORT "Enable Zlib Filters" OFF
|
|
ZLIB_USE_EXTERNAL "Use External Library Building for ZLIB" 0
|
|
SZIP_USE_EXTERNAL "Use External Library Building for SZIP" 0
|
|
if (HDF5_ENABLE_SZIP_SUPPORT)
|
|
HDF5_ENABLE_SZIP_ENCODING "Use SZip Encoding" OFF
|
|
if (WINDOWS)
|
|
H5_DEFAULT_PLUGINDIR "%ALLUSERSPROFILE%/hdf5/lib/plugin"
|
|
else ()
|
|
H5_DEFAULT_PLUGINDIR "/usr/local/hdf5/lib/plugin"
|
|
endif ()
|
|
|
|
|
|
|
|
========================================================================
|
|
VII. User Defined Options for HDF5 Libraries with CMake
|
|
========================================================================
|
|
|
|
Support for User Defined macros and options has been added. The file
|
|
UserMacros.cmake has an example of the technique. In the folder,
|
|
config/cmake/UserMacros, is an implementation for Windows Visual Studio
|
|
users for linking libraries to the static CRT - Windows_MT.cmake.
|
|
|
|
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
|
|
========================================================================
|
|
|
|
Below is the HDF5config.cmake and HDF5options.cmake ctest scripts.
|
|
Execute:
|
|
ctest -S HDF5config.cmake,BUILD_GENERATOR=xxx -C Release -VV -O hdf5.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, VS2015, VS201564, VS2013, VS201364, VS2012, VS201264] ###
|
|
### ctest -S HDF5config.cmake,BUILD_GENERATOR=VS201264 -C Release -VV -O hdf5.log ###
|
|
#############################################################################################
|
|
|
|
cmake_minimum_required (VERSION 3.2.2 FATAL_ERROR)
|
|
############################################################################
|
|
# Usage:
|
|
# ctest -S HDF5config.cmake,OPTION=VALUE -C Release -VV -O test.log
|
|
# where valid options for OPTION are:
|
|
# BUILD_GENERATOR - The cmake build generator:
|
|
# Unix * Unix Makefiles
|
|
# VS2015 * Visual Studio 14 2015
|
|
# VS201564 * Visual Studio 14 2015 Win64
|
|
# VS2013 * Visual Studio 12 2013
|
|
# VS201364 * Visual Studio 12 2013 Win64
|
|
# VS2012 * Visual Studio 11 2012
|
|
# VS201264 * Visual Studio 11 2012 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
|
|
# JAVA_LIBRARIES - Build/use java libraries
|
|
# NO_MAC_FORTRAN - Yes to be SHARED on a Mac
|
|
##############################################################################
|
|
|
|
set (CTEST_SOURCE_VERSION 1.10.1)
|
|
set (CTEST_SOURCE_VERSEXT "")
|
|
|
|
##############################################################################
|
|
# handle input parameters to script.
|
|
#BUILD_GENERATOR - which CMake generator to use, required
|
|
#INSTALLDIR - HDF5-1.10.0 root folder
|
|
#CTEST_CONFIGURATION_TYPE - Release, Debug, RelWithDebInfo
|
|
#CTEST_SOURCE_NAME - name of source folder; HDF5-1.10.0
|
|
#STATIC_ONLY - Default is YES
|
|
#FORTRAN_LIBRARIES - Default is NO
|
|
#JAVA_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, VS2015, VS201564, VS2013, VS201364, VS2012, or VS201264")
|
|
else ()
|
|
if (${BUILD_GENERATOR} STREQUAL "Unix")
|
|
set (CTEST_CMAKE_GENERATOR "Unix Makefiles")
|
|
elseif (${BUILD_GENERATOR} STREQUAL "VS2015")
|
|
set (CTEST_CMAKE_GENERATOR "Visual Studio 14 2015")
|
|
elseif (${BUILD_GENERATOR} STREQUAL "VS201564")
|
|
set (CTEST_CMAKE_GENERATOR "Visual Studio 14 2015 Win64")
|
|
elseif (${BUILD_GENERATOR} STREQUAL "VS2013")
|
|
set (CTEST_CMAKE_GENERATOR "Visual Studio 12 2013")
|
|
elseif (${BUILD_GENERATOR} STREQUAL "VS201364")
|
|
set (CTEST_CMAKE_GENERATOR "Visual Studio 12 2013 Win64")
|
|
elseif (${BUILD_GENERATOR} STREQUAL "VS2012")
|
|
set (CTEST_CMAKE_GENERATOR "Visual Studio 11 2012")
|
|
elseif (${BUILD_GENERATOR} STREQUAL "VS201264")
|
|
set (CTEST_CMAKE_GENERATOR "Visual Studio 11 2012 Win64")
|
|
else ()
|
|
message (FATAL_ERROR "Invalid BUILD_GENERATOR must be - Unix, VS2015, VS201564, VS2013, VS201364, VS2012, or VS201264")
|
|
endif ()
|
|
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 ()
|
|
if (NOT DEFINED JAVA_LIBRARIES)
|
|
set (JAVALIBRARIES "NO")
|
|
else ()
|
|
set (JAVALIBRARIES "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 "VS201564")
|
|
set (SITE_OS_BITS "64")
|
|
set (SITE_COMPILER_NAME "vs2015")
|
|
set (SITE_COMPILER_VERSION "14")
|
|
elseif (${BUILD_GENERATOR} STREQUAL "VS2015")
|
|
set (SITE_OS_BITS "32")
|
|
set (SITE_COMPILER_NAME "vs2015")
|
|
set (SITE_COMPILER_VERSION "14")
|
|
elseif (${BUILD_GENERATOR} STREQUAL "VS201364")
|
|
set (SITE_OS_BITS "64")
|
|
set (SITE_COMPILER_NAME "vs2013")
|
|
set (SITE_COMPILER_VERSION "12")
|
|
elseif (${BUILD_GENERATOR} STREQUAL "VS2013")
|
|
set (SITE_OS_BITS "32")
|
|
set (SITE_COMPILER_NAME "vs2013")
|
|
set (SITE_COMPILER_VERSION "12")
|
|
elseif (${BUILD_GENERATOR} STREQUAL "VS201264")
|
|
set (SITE_OS_BITS "64")
|
|
set (SITE_COMPILER_NAME "vs2012")
|
|
set (SITE_COMPILER_VERSION "11")
|
|
elseif (${BUILD_GENERATOR} STREQUAL "VS2012")
|
|
set (SITE_OS_BITS "32")
|
|
set (SITE_COMPILER_NAME "vs2012")
|
|
set (SITE_COMPILER_VERSION "11")
|
|
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 "develop")
|
|
|
|
#uncomment to use a compressed source file: *.tar on linux or mac *.zip on windows
|
|
#set(CTEST_USE_TAR_SOURCE "${CTEST_SOURCE_VERSION}")
|
|
###################################################################
|
|
|
|
###################################################################
|
|
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 ()
|
|
#### java ####
|
|
if (${JAVALIBRARIES})
|
|
set (ADD_BUILD_OPTIONS "${ADD_BUILD_OPTIONS} -DHDF5_BUILD_JAVA:BOOL=ON")
|
|
else ()
|
|
set (ADD_BUILD_OPTIONS "${ADD_BUILD_OPTIONS} -DHDF5_BUILD_JAVA: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")
|
|
|
|
#############################################################################################
|
|
### disable packaging
|
|
|
|
#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")
|
|
|
|
#############################################################################################
|
|
|
|
========================================================================
|
|
For further assistance, send email to help@hdfgroup.org
|
|
========================================================================
|
|
|
|
|
|
|