diff options
author | Allen Byrne <50328838+byrnHDF@users.noreply.github.com> | 2023-11-01 19:31:31 (GMT) |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-11-01 19:31:31 (GMT) |
commit | a66684fd7abc7e64fed07993e365ccab693b1c85 (patch) | |
tree | 53259e0cd68931e5e28a629dc4b2c9717df87b03 /release_docs | |
parent | ba9140e5ec7422b18289b15c04095968199e6529 (diff) | |
download | hdf5-a66684fd7abc7e64fed07993e365ccab693b1c85.zip hdf5-a66684fd7abc7e64fed07993e365ccab693b1c85.tar.gz hdf5-a66684fd7abc7e64fed07993e365ccab693b1c85.tar.bz2 |
Merge CMake updates from 1.12 development branch (#3821)
Diffstat (limited to 'release_docs')
-rw-r--r-- | release_docs/INSTALL_CMake.txt | 147 | ||||
-rw-r--r-- | release_docs/RELEASE.txt | 6 |
2 files changed, 74 insertions, 79 deletions
diff --git a/release_docs/INSTALL_CMake.txt b/release_docs/INSTALL_CMake.txt index 0d867d4..e1564f0 100644 --- a/release_docs/INSTALL_CMake.txt +++ b/release_docs/INSTALL_CMake.txt @@ -308,7 +308,7 @@ IV. Further considerations CMake options: HDF5_ALLOW_EXTERNAL_SUPPORT:STRING="TGZ" ZLIB_TGZ_NAME:STRING="zlib_src.ext" - SZAEC_TGZ_NAME:STRING="szaec_src.ext" + LIBAEC_TGZ_NAME:STRING="szaec_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 @@ -317,12 +317,10 @@ IV. Further considerations D. Use original source packages from a compressed file by adding the following CMake options: - BUILD_SZIP_WITH_FETCHCONTENT:BOOL=ON - LIBAEC_TGZ_ORIGNAME:STRING="szip_src.ext" + LIBAEC_TGZ_NAME:STRING="szip_src.ext" LIBAEC_TGZ_ORIGPATH:STRING="some_location" - BUILD_ZLIB_WITH_FETCHCONTENT:BOOL=ON - ZLIB_TGZ_ORIGNAME:STRING="zlib_src.ext" + ZLIB_TGZ_NAME:STRING="zlib_src.ext" ZLIB_TGZ_ORIGPATH:STRING="some_location" HDF5_ALLOW_EXTERNAL_SUPPORT:STRING="TGZ" @@ -330,8 +328,6 @@ IV. Further considerations ZLIB_USE_LOCALCONTENT:BOOL=OFF LIBAEC_USE_LOCALCONTENT:BOOL=OFF or full path to the compressed file and ext is the type of compression file. - The individual filters are enabled by setting the BUILD_<filter>_WITH_FETCHCONTENT - CMake variable to ON. Also set CMAKE_BUILD_TYPE to the configuration type during configuration. See the settings in the config/cmake/cacheinit.cmake file HDF uses for testing. @@ -528,78 +524,82 @@ These five steps are described in detail below. set (HDF5_ALLOW_EXTERNAL_SUPPORT "TGZ" CACHE STRING "Allow External Library Building (NO GIT TGZ)" FORCE) set_property (CACHE HDF5_ALLOW_EXTERNAL_SUPPORT PROPERTY STRINGS NO GIT TGZ) set (ZLIB_PACKAGE_NAME "zlib" CACHE STRING "Name of ZLIB package" FORCE) - set (ZLIB_TGZ_NAME "ZLib.tar.gz" CACHE STRING "Use HDF5_ZLib from compressed file" FORCE) - set (ZLIB_TGZ_ORIGPATH "https://github.com/madler/zlib/releases/download/v1.2.13" CACHE STRING "Use ZLIB from original location" FORCE) - set (ZLIB_TGZ_ORIGNAME "zlib-1.2.13.tar.gz" CACHE STRING "Use ZLIB from original compressed file" FORCE) + set (ZLIB_TGZ_NAME "zlib-1.3.tar.gz" CACHE STRING "Use HDF5_ZLib from compressed file" FORCE) + set (ZLIB_TGZ_ORIGPATH "https://github.com/madler/zlib/releases/download/v1.3" CACHE STRING "Use ZLIB from original location" FORCE) + set (ZLIB_TGZ_NAME "zlib-1.3.tar.gz" CACHE STRING "Use ZLIB from original compressed file" FORCE) set (ZLIB_USE_LOCALCONTENT ON CACHE BOOL "Use local file for ZLIB FetchContent" FORCE) - set (SZIP_PACKAGE_NAME "szip" CACHE STRING "Name of SZIP package" FORCE) set (LIBAEC_PACKAGE_NAME "libaec" CACHE STRING "Name of AEC SZIP package" FORCE) - set (SZIP_TGZ_NAME "SZip.tar.gz" CACHE STRING "Use SZip from compressed file" FORCE) - set (SZAEC_TGZ_NAME "LIBAEC.tar.gz" CACHE STRING "Use SZip AEC from compressed file" FORCE) - set (USE_LIBAEC ON CACHE BOOL "Use libaec szip replacement" FORCE) set (LIBAEC_TGZ_ORIGPATH "https://github.com/MathisRosenhauer/libaec/releases/download/v1.0.6" CACHE STRING "Use LIBAEC from original location" FORCE) - set (LIBAEC_TGZ_ORIGNAME "libaec-1.0.6.tar.gz" CACHE STRING "Use LIBAEC from original compressed file" FORCE) + set (LIBAEC_TGZ_NAME "libaec-1.0.6.tar.gz" CACHE STRING "Use LIBAEC from original compressed file" FORCE) set (LIBAEC_USE_LOCALCONTENT ON CACHE BOOL "Use local file for LIBAEC FetchContent" FORCE) ####################### # filter plugin options ####################### - set (PLUGIN_TGZ_NAME "hdf5_plugins.tar.gz" CACHE STRING "Use PLUGINS from compressed file" FORCE) + set (PLUGIN_TGZ_ORIGPATH "https://github.com/HDFGroup/hdf5_plugins/releases/download/snapshots" CACHE STRING "Use PLUGINS from original location" FORCE) + set (PLUGIN_TGZ_NAME "hdf5_plugins-master.tar.gz" CACHE STRING "Use PLUGINS from compressed file" FORCE) + set (PLUGIN_USE_LOCALCONTENT ON CACHE BOOL "Use local file for PLUGIN FetchContent" FORCE) set (PLUGIN_PACKAGE_NAME "pl" CACHE STRING "Name of PLUGIN package" FORCE) ############ # bitshuffle ########### - set (BSHUF_GIT_URL "https://someurl/bitshuffle.git" CACHE STRING "Use BSHUF from HDF repository" FORCE) + set (BSHUF_GIT_URL "https://github.com/kiyo-masui/bitshuffle.git" CACHE STRING "Use BSHUF from HDF repository" FORCE) set (BSHUF_GIT_BRANCH "master" CACHE STRING "" FORCE) - set (BSHUF_TGZ_NAME "bitshuffle.tar.gz" CACHE STRING "Use BSHUF from compressed file" FORCE) + set (BSHUF_TGZ_ORIGPATH "https://github.com/kiyo-masui/bitshuffle/archive/refs/tags" CACHE STRING "Use PLUGINS from original location" FORCE) + set (BSHUF_TGZ_NAME "bitshuffle-0.5.1.tar.gz" CACHE STRING "Use BSHUF from compressed file" FORCE) set (BSHUF_PACKAGE_NAME "bshuf" CACHE STRING "Name of BSHUF package" FORCE) ####### # blosc ####### - set (BLOSC_GIT_URL "https://github.com/Blosc/c-blosc.git" CACHE STRING "Use BLOSC from Github" FORCE) - set (BLOSC_GIT_BRANCH "master" CACHE STRING "" FORCE) - set (BLOSC_TGZ_NAME "c-blosc.tar.gz" CACHE STRING "Use BLOSC from compressed file" FORCE) + set (BLOSC_GIT_URL "https://github.com/Blosc/c-blosc.git" CACHE STRING "Use BLOSC from Github repository" FORCE) + set (BLOSC_GIT_BRANCH "main" CACHE STRING "" FORCE) + set (BLOSC_TGZ_ORIGPATH "https://github.com/Blosc/c-blosc/archive/refs/tags" CACHE STRING "Use PLUGINS from original location" FORCE) + set (BLOSC_TGZ_NAME "c-blosc-1.21.5.tar.gz" CACHE STRING "Use BLOSC from compressed file" FORCE) set (BLOSC_PACKAGE_NAME "blosc" CACHE STRING "Name of BLOSC package" FORCE) - set (ZLIB_GIT_URL "https://someurl/zlib.git" CACHE STRING "Use ZLIB from HDF repo" FORCE) - set (ZLIB_GIT_BRANCH "master" CACHE STRING "" FORCE) - set (ZLIB_TGZ_NAME "ZLib.tar.gz" CACHE STRING "Use ZLib from compressed file" FORCE) - set (ZLIB_PACKAGE_NAME "zlib" CACHE STRING "Name of ZLIB package" FORCE) + set (BLOSC_ZLIB_GIT_URL "https://github.com/madler/zlib.git" CACHE STRING "Use ZLIB from GitHub repository" FORCE) + set (BLOSC_ZLIB_GIT_BRANCH "develop" CACHE STRING "" FORCE) + set (BLOSC_ZLIB_TGZ_ORIGPATH "https://github.com/madler/zlib/releases/download/v1.3" CACHE STRING "Use PLUGINS from original location" FORCE) + set (BLOSC_ZLIB_TGZ_NAME "zlib-1.3.tar.gz" CACHE STRING "Use ZLib from compressed file" FORCE) + set (BLOSC_ZLIB_PACKAGE_NAME "zlib" CACHE STRING "Name of BLOSC_ZLIB package" FORCE) ####### # bzip2 ###### # - set (BZ2_GIT_URL "https://someurl/bzip2.git" CACHE STRING "Use BZ2 from HDF repository" FORCE) + set (BZ2_GIT_URL "https://github.com/libarchive/bzip2.git" CACHE STRING "Use BZ2 from GitHub repository" FORCE) set (BZ2_GIT_BRANCH "master" CACHE STRING "" FORCE) - set (BZ2_TGZ_NAME "BZ2.tar.gz" CACHE STRING "Use BZ2 from compressed file" FORCE) + set (BZ2_TGZ_ORIGPATH "https://github.com/libarchive/bzip2/archive/refs/tags" CACHE STRING "Use PLUGINS from original location" FORCE) + set (BZ2_TGZ_NAME "bzip2-bzip2-1.0.8.tar.gz" CACHE STRING "Use BZ2 from compressed file" FORCE) set (BZ2_PACKAGE_NAME "bz2" CACHE STRING "Name of BZ2 package" FORCE) ####### # fpzip ####### - set (FPZIP_GIT_URL "https://github.com/LLNL/fpzip" CACHE STRING "Use FPZIP from github repository" FORCE) - set (FPZIP_GIT_BRANCH "master" CACHE STRING "" FORCE) - set (FPZIP_TGZ_NAME "fpzip.tar.gz" CACHE STRING "Use FPZIP from compressed file" FORCE) + set (FPZIP_GIT_URL "https://github.com/LLNL/fpzip.git" CACHE STRING "Use FPZIP from GitHub repository" FORCE) + set (FPZIP_GIT_BRANCH "develop" CACHE STRING "" FORCE) + set (FPZIP_TGZ_ORIGPATH "https://github.com/LLNL/fpzip/releases/download/1.3.0" CACHE STRING "Use PLUGINS from original location" FORCE) + set (FPZIP_TGZ_NAME "fpzip-1.3.0.tar.gz" CACHE STRING "Use FPZIP from compressed file" FORCE) set (FPZIP_PACKAGE_NAME "fpzip" CACHE STRING "Name of FPZIP package" FORCE) ###### # jpeg ###### - set (JPEG_GIT_URL "https://someurl/jpeg.git" CACHE STRING "Use JPEG from HDF repository" FORCE) - set (JPEG_GIT_BRANCH "jpeg9c" CACHE STRING "" FORCE) - #set (JPEG_TGZ_NAME "JPEG9c.tar.gz" CACHE STRING "Use JPEG from compressed file" FORCE) - set (JPEG_TGZ_NAME "JPEG.tar.gz" CACHE STRING "Use JPEG from compressed file" FORCE) + set (JPEG_GIT_URL "No repo www.ijg.org/files" CACHE STRING "Use JPEG from ILG" FORCE) + set (JPEG_GIT_BRANCH "v9e" CACHE STRING "" FORCE) + set (JPEG_TGZ_ORIGPATH "https://www.ijg.org/files" CACHE STRING "Use PLUGINS from original location" FORCE) + set (JPEG_TGZ_NAME "jpegsrc.v9e.tar.gz" CACHE STRING "Use JPEG from compressed file" FORCE) set (JPEG_PACKAGE_NAME "jpeg" CACHE STRING "Name of JPEG package" FORCE) ###### # lz4 ###### set (BUILD_LZ4_LIBRARY_SOURCE ON CACHE BOOL "build the lz4 library within the plugin" FORCE) - set (LZ4_GIT_URL "https://someurl/lz4.git" CACHE STRING "Use LZ4 from HDF repository" FORCE) - set (LZ4_GIT_BRANCH "master" CACHE STRING "" FORCE) - set (LZ4_TGZ_NAME "lz4.tar.gz" CACHE STRING "Use LZ4 from compressed file" FORCE) + set (LZ4_GIT_URL "https://github.com/lz4/lz4.git" CACHE STRING "Use LZ4 from GitHub repository" FORCE) + set (LZ4_GIT_BRANCH "dev" CACHE STRING "" FORCE) + set (LZ4_TGZ_ORIGPATH "https://github.com/lz4/lz4/releases/download/v1.9.4" CACHE STRING "Use PLUGINS from original location" FORCE) + set (LZ4_TGZ_NAME "lz4-1.9.4.tar.gz" CACHE STRING "Use LZ4 from compressed file" FORCE) set (LZ4_PACKAGE_NAME "lz4" CACHE STRING "Name of LZ4 package" FORCE) ###### # lzf ###### - set (LZF_GIT_URL "https://someurl/lzf.git" CACHE STRING "Use LZF from HDF repository" FORCE) - set (LZF_GIT_BRANCH "master" CACHE STRING "" FORCE) - set (LZF_TGZ_NAME "lzf.tar.gz" CACHE STRING "Use LZF from compressed file" FORCE) + set (LZF_URL "http://software.schmorp.de/pkg/liblzf.html" CACHE STRING "LZF home" FORCE) + set (LZF_TGZ_ORIGPATH "http://dist.schmorp.de/liblzf" CACHE STRING "Use LZF from original location" FORCE) + set (LZF_TGZ_NAME "liblzf-3.6.tar.gz" CACHE STRING "Use LZF from compressed file" FORCE) set (LZF_PACKAGE_NAME "lzf" CACHE STRING "Name of LZF package" FORCE) ######## # mafisc @@ -609,23 +609,26 @@ These five steps are described in detail below. ###### # szf ###### - set (SZF_GIT_URL "https://github.com/disheng222/SZ" CACHE STRING "Use SZ from github repository" FORCE) - set (SZF_GIT_BRANCH "master" CACHE STRING "" FORCE) - set (SZF_TGZ_NAME "szf.tar.gz" CACHE STRING "Use SZ from compressed file" FORCE) + set (SZ_GIT_URL "https://github.com/szcompressor/SZ.git" CACHE STRING "Use SZ filter from GitHub repository" FORCE) + set (SZ_GIT_BRANCH "master" CACHE STRING "" FORCE) + set (SZ_TGZ_ORIGPATH "https://github.com/szcompressor/SZ/releases/download/v2.1.12.5" CACHE STRING "Use PLUGINS from original location" FORCE) + set (SZ_TGZ_NAME "SZ-2.1.12.5.tar.gz" CACHE STRING "Use SZ filter from compressed file" FORCE) set (SZF_PACKAGE_NAME "szf" CACHE STRING "Name of SZ package" FORCE) ###### # zfp ###### - set (ZFP_GIT_URL "https://github.com/LLNL/zfp.git" CACHE STRING "Use ZFP from Github" FORCE) - set (ZFP_GIT_BRANCH "master" CACHE STRING "" FORCE) - set (ZFP_TGZ_NAME "zfp.tar.gz" CACHE STRING "Use ZFP from compressed file" FORCE) + set (ZFP_GIT_URL "https://github.com/LLNL/zfp.git" CACHE STRING "Use ZFP from GitHub repository" FORCE) + set (ZFP_GIT_BRANCH "develop" CACHE STRING "" FORCE) + set (ZFP_TGZ_ORIGPATH "https://github.com/LLNL/zfp/releases/download/1.0.0" CACHE STRING "Use PLUGINS from original location" FORCE) + set (ZFP_TGZ_NAME "zfp-1.0.0.tar.gz" CACHE STRING "Use ZFP from compressed file" FORCE) set (ZFP_PACKAGE_NAME "zfp" CACHE STRING "Name of ZFP package" FORCE) ###### # zstd ###### - set (ZSTD_GIT_URL "https://github.com/facebook/zstd" CACHE STRING "Use ZSTD from repository" FORCE) + set (ZSTD_GIT_URL "https://github.com/facebook/zstd.git" CACHE STRING "Use ZSTD from GitHub repository" FORCE) set (ZSTD_GIT_BRANCH "dev" CACHE STRING "" FORCE) - set (ZSTD_TGZ_NAME "zstd.tar.gz" CACHE STRING "Use ZSTD from compressed file" FORCE) + set (ZSTD_TGZ_ORIGPATH "https://github.com/facebook/zstd/releases/download/v1.5.5" CACHE STRING "Use PLUGINS from original location" FORCE) + set (ZSTD_TGZ_NAME "zstd-1.5.5.tar.gz" CACHE STRING "Use ZSTD from compressed file" FORCE) set (ZSTD_PACKAGE_NAME "zstd" CACHE STRING "Name of ZSTD package" FORCE) 2. Configure the cache settings @@ -700,7 +703,6 @@ These five steps are described in detail below. 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" LIBAEC_TGZ_NAME:STRING="libaec_src.ext" PLUGIN_TGZ_NAME:STRING="plugin_src.ext" TGZPATH:STRING="some_location" @@ -709,9 +711,8 @@ These five steps are described in detail below. file such as .bz2, .tar, .tar.gz, .tgz, or .zip. Also define CMAKE_BUILD_TYPE to be the configuration type. - NOTE: the USE_LIBAEC option will use the file named by LIBAEC_TGZ_NAME - to build SZIP instead of the file named by SZIP_TGZ_NAME. This option - is also used to account for the different headers and library names. + NOTE: HDF5 uses the file named by LIBAEC_TGZ_NAME to build SZIP. This + is used to account for the different headers and library names. 4. Test HDF5 @@ -883,25 +884,25 @@ HDF5_ALLOW_EXTERNAL_SUPPORT "Allow External Library Building (NO GIT TGZ)" HDF5_ENABLE_PLUGIN_SUPPORT "Enable PLUGIN Filters" OFF HDF5_ENABLE_SZIP_SUPPORT "Use SZip Filter" OFF HDF5_ENABLE_Z_LIB_SUPPORT "Enable Zlib Filters" ON -PLUGIN_USE_EXTERNAL "Use External Library Building for PLUGINS" 0 -ZLIB_USE_EXTERNAL "Use External Library Building for ZLIB" 0 -SZIP_USE_EXTERNAL "Use External Library Building for SZIP" 0 + +ZLIB_USE_EXTERNAL "Use External Library Building for ZLIB" OFF +ZLIB_TGZ_ORIGPATH "Use ZLIB from original location" "https://github.com/madler/zlib/releases/download/v1.2.13" +ZLIB_TGZ_NAME "Use ZLIB from original compressed file" "zlib-1.2.13.tar.gz" +ZLIB_USE_LOCALCONTENT "Use local file for ZLIB FetchContent" ON + +SZIP_USE_EXTERNAL "Use External Library Building for SZIP" OFF if (HDF5_ENABLE_SZIP_SUPPORT) - HDF5_ENABLE_SZIP_ENCODING "Use SZip Encoding" ON - USE_LIBAEC "Use libaec szip replacement" ON + HDF5_ENABLE_SZIP_ENCODING "Use SZip Encoding" ON +LIBAEC_TGZ_ORIGPATH "Use LIBAEC from original location" "https://github.com/MathisRosenhauer/libaec/releases/download/v1.0.6/libaec-1.0.6.tar.gz" +LIBAEC_TGZ_NAME "Use LIBAEC from original compressed file" "libaec-v1.0.6.tar.gz" +LIBAEC_USE_LOCALCONTENT "Use local file for LIBAEC FetchContent" ON + +PLUGIN_USE_EXTERNAL "Use External Library Building for PLUGINS" OFF if (WINDOWS) - H5_DEFAULT_PLUGINDIR "%ALLUSERSPROFILE%/hdf5/lib/plugin" + H5_DEFAULT_PLUGINDIR "%ALLUSERSPROFILE%/hdf5/lib/plugin" else () - H5_DEFAULT_PLUGINDIR "/usr/local/hdf5/lib/plugin" + H5_DEFAULT_PLUGINDIR "/usr/local/hdf5/lib/plugin" endif () -if (BUILD_SZIP_WITH_FETCHCONTENT) - LIBAEC_TGZ_ORIGPATH "Use LIBAEC from original location" "https://github.com/MathisRosenhauer/libaec/releases/download/v1.0.6/libaec-1.0.6.tar.gz" - LIBAEC_TGZ_ORIGNAME "Use LIBAEC from original compressed file" "libaec-v1.0.6.tar.gz" - LIBAEC_USE_LOCALCONTENT "Use local file for LIBAEC FetchContent" ON -if (BUILD_ZLIB_WITH_FETCHCONTENT) - ZLIB_TGZ_ORIGPATH "Use ZLIB from original location" "https://github.com/madler/zlib/releases/download/v1.2.13" - ZLIB_TGZ_ORIGNAME "Use ZLIB from original compressed file" "zlib-1.2.13.tar.gz" - ZLIB_USE_LOCALCONTENT "Use local file for ZLIB FetchContent" ON NOTE: The BUILD_STATIC_EXECS ("Build Static Executables") option is only valid @@ -1075,15 +1076,15 @@ Available configurations presets can be displayed by executing: Using individual command presets (where <compiler-type> is GNUC or MSVC or Clang): change directory to the hdf5 source folder - cmake --presets=ci-StdShar-<compiler-type> - cmake --build --presets=ci-StdShar-<compiler-type> - ctest --presets=ci-StdShar-<compiler-type> - cpack --presets=ci-StdShar-<compiler-type> + cmake --preset ci-StdShar-<compiler-type> + cmake --build --preset ci-StdShar-<compiler-type> + ctest --preset ci-StdShar-<compiler-type> + cpack --preset ci-StdShar-<compiler-type> Using the workflow preset to configure, build, test and package the standard configuration is: change directory to the hdf5 source folder - execute "cmake --workflow --presets=ci-StdShar-<compiler-type> --fresh" + execute "cmake --workflow --preset ci-StdShar-<compiler-type> --fresh" where <compiler-type> is GNUC or MSVC or Clang Creating your own configurations @@ -1103,7 +1104,7 @@ For instance, to change the support files to use a local directory, edit CMakeUs "inherits": "ci-base", "cacheVariables": { "HDF5_ALLOW_EXTERNAL_SUPPORT": {"type": "STRING", "value": "TGZ"}, - "TGZPATH": {"type": "STRING", "value": "${sourceParentDir}/temp"} + "TGZPATH": {"type": "PATH", "value": "${sourceParentDir}/temp"} } }, { diff --git a/release_docs/RELEASE.txt b/release_docs/RELEASE.txt index 6e80e9b..b7d4135 100644 --- a/release_docs/RELEASE.txt +++ b/release_docs/RELEASE.txt @@ -95,12 +95,6 @@ New Features configure step to use the content in commands like add_subdirectory(), include() or file() operations. - The HDF options (and defaults) for using this are: - BUILD_SZIP_WITH_FETCHCONTENT:BOOL=OFF - LIBAEC_USE_LOCALCONTENT:BOOL=OFF - BUILD_ZLIB_WITH_FETCHCONTENT:BOOL=OFF - ZLIB_USE_LOCALCONTENT:BOOL=OFF - The CMake variables to control the path and file names: LIBAEC_TGZ_ORIGPATH:STRING LIBAEC_TGZ_ORIGNAME:STRING |