From 073f52424766cc4a8ac9d56966cb58c054ce3801 Mon Sep 17 00:00:00 2001
From: Allen Byrne <byrn@hdfgroup.org>
Date: Thu, 31 Aug 2017 13:37:38 -0500
Subject: HDFFV-10284 Add VS2017 support

---
 bin/release                           |   4 +-
 config/cmake/scripts/HDF5config.cmake | 102 +++++++++++++++++-----------------
 release_docs/INSTALL_CMake.txt        |  67 ++++++++++++----------
 3 files changed, 92 insertions(+), 81 deletions(-)

diff --git a/bin/release b/bin/release
index 09c033d..6358b0d 100755
--- a/bin/release
+++ b/bin/release
@@ -214,12 +214,12 @@ tar2cmakezip()
     fi
 
     # step 2: add batch file for building CMake on window
-    cp /mnt/scr1/pre-release/hdf5/CMake/build-VS2012-32.bat $cmziptmpdir
-    cp /mnt/scr1/pre-release/hdf5/CMake/build-VS2012-64.bat $cmziptmpdir
     cp /mnt/scr1/pre-release/hdf5/CMake/build-VS2013-32.bat $cmziptmpdir
     cp /mnt/scr1/pre-release/hdf5/CMake/build-VS2013-64.bat $cmziptmpdir
     cp /mnt/scr1/pre-release/hdf5/CMake/build-VS2015-32.bat $cmziptmpdir
     cp /mnt/scr1/pre-release/hdf5/CMake/build-VS2015-64.bat $cmziptmpdir
+    cp /mnt/scr1/pre-release/hdf5/CMake/build-VS2017-32.bat $cmziptmpdir
+    cp /mnt/scr1/pre-release/hdf5/CMake/build-VS2017-64.bat $cmziptmpdir
 
     # step 3: add SZIP.tar.gz, ZLib.tar.gz and cmake files
     cp /mnt/scr1/pre-release/hdf5/CMake/SZip.tar.gz $cmziptmpdir
diff --git a/config/cmake/scripts/HDF5config.cmake b/config/cmake/scripts/HDF5config.cmake
index e500f14..e7b73b3 100755
--- a/config/cmake/scripts/HDF5config.cmake
+++ b/config/cmake/scripts/HDF5config.cmake
@@ -11,8 +11,8 @@
 #
 #############################################################################################
 ### ${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         ###
+### BUILD_GENERATOR required [Unix, VS2017, VS201764, VS2015, VS201564, VS2013, VS201364] ###
+### ctest -S HDF5config.cmake,BUILD_GENERATOR=VS201764 -C Release -VV -O hdf5.log         ###
 #############################################################################################
 
 cmake_minimum_required (VERSION 3.2.2 FATAL_ERROR)
@@ -21,13 +21,13 @@ cmake_minimum_required (VERSION 3.2.2 FATAL_ERROR)
 #     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
+#            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
+#            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
+#            VS201364  * Visual Studio 12 2013 Win64
 #
 #     INSTALLDIR  -  root folder where hdf5 is installed
 #     CTEST_CONFIGURATION_TYPE  - Release, Debug, etc
@@ -65,25 +65,7 @@ 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 ()
+  message (FATAL_ERROR "BUILD_GENERATOR must be defined - Unix, VS2017, or VS201764, VS2015, VS201564, VS2013, VS201364")
 endif ()
 
 ###################################################################
@@ -135,31 +117,49 @@ endif ()
 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 ()
+  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 ()
diff --git a/release_docs/INSTALL_CMake.txt b/release_docs/INSTALL_CMake.txt
index 7cb0225..e2489f4 100644
--- a/release_docs/INSTALL_CMake.txt
+++ b/release_docs/INSTALL_CMake.txt
@@ -656,10 +656,21 @@ 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.
 
 
+#
+# Copyright by The HDF Group.
+# All rights reserved.
+#
+# This file is part of HDF5.  The full HDF5 copyright notice, including
+# terms governing use, modification, and redistribution, is contained in
+# the COPYING file, which can be found at the root of the source code
+# distribution tree, or in https://support.hdfgroup.org/ftp/HDF5/releases.
+# If you do not have access to either file, you may request a copy from
+# help@hdfgroup.org.
+#
 #############################################################################################
 ### ${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         ###
+### BUILD_GENERATOR required [Unix, VS2017, VS201764, VS2015, VS201564, VS2013, VS201364] ###
+### ctest -S HDF5config.cmake,BUILD_GENERATOR=VS201764 -C Release -VV -O hdf5.log         ###
 #############################################################################################
 
 cmake_minimum_required (VERSION 3.2.2 FATAL_ERROR)
@@ -668,13 +679,13 @@ cmake_minimum_required (VERSION 3.2.2 FATAL_ERROR)
 #     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
+#            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
+#            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
+#            VS201364  * Visual Studio 12 2013 Win64
 #
 #     INSTALLDIR  -  root folder where hdf5 is installed
 #     CTEST_CONFIGURATION_TYPE  - Release, Debug, etc
@@ -685,7 +696,7 @@ cmake_minimum_required (VERSION 3.2.2 FATAL_ERROR)
 #     NO_MAC_FORTRAN  - Yes to be SHARED on a Mac
 ##############################################################################
 
-set (CTEST_SOURCE_VERSION 1.10.1)
+set (CTEST_SOURCE_VERSION "1.11.0")
 set (CTEST_SOURCE_VERSEXT "")
 
 ##############################################################################
@@ -712,25 +723,7 @@ 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 ()
+  message (FATAL_ERROR "BUILD_GENERATOR must be defined - Unix, VS2017, or VS201764, VS2015, VS201564, VS2013, VS201364")
 endif ()
 
 ###################################################################
@@ -782,30 +775,48 @@ endif ()
 if (WIN32)
   set (SITE_OS_NAME "Windows")
   set (SITE_OS_VERSION "WIN7")
-  if (${BUILD_GENERATOR} STREQUAL "VS201564")
+  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")
-- 
cgit v0.12