1############################################################################################# 2### ${CTEST_SCRIPT_ARG} is of the form OPTION=VALUE ### 3### BUILD_GENERATOR required [Unix, VS2017, VS201764, VS2015, VS201564, VS2013, VS201364] ### 4### ctest -S HDFconfig.cmake,BUILD_GENERATOR=VS201764 -C Release -VV -O hdf.log ### 5############################################################################################# 6 7cmake_minimum_required (VERSION 3.10) 8############################################################################ 9# Usage: 10# ctest -S HDFconfig.cmake,OPTION=VALUE -C Release -VV -O test.log 11# where valid options for OPTION are: 12# BUILD_GENERATOR - The cmake build generator: 13# Unix * Unix Makefiles 14# VS2017 * Visual Studio 15 2017 15# VS201764 * Visual Studio 15 2017 Win64 16# VS2015 * Visual Studio 14 2015 17# VS201564 * Visual Studio 14 2015 Win64 18# VS2013 * Visual Studio 12 2013 19# VS201364 * Visual Studio 12 2013 Win64 20# 21# INSTALLDIR - root folder where hdf is installed 22# - windowsdefault: C:/Program Files/HDF_Group/HDF/4.2.15 23# - linux default: ./HDF_Group/HDF/4.2.15 24# CTEST_CONFIGURATION_TYPE - Release, Debug, etc - default: Release 25# CTEST_SOURCE_NAME - source folder - default: hdf4 26# STATIC_ONLY - Build/use static libraries 27# FORTRAN_LIBRARIES - Build/use fortran libraries 28# NO_MAC_FORTRAN - Yes to be SHARED on a Mac 29############################################################################## 30 31set (CTEST_SOURCE_VERSION "4.2.15") 32set (CTEST_SOURCE_VERSEXT "") 33 34############################################################################## 35# handle input parameters to script. 36#BUILD_GENERATOR - which CMake generator to use, required 37#INSTALLDIR - HDF-4.2.x root folder 38#CTEST_CONFIGURATION_TYPE - Release, Debug, RelWithDebInfo 39#CTEST_SOURCE_NAME - name of source folder; HDF-4.2.x 40#STATIC_ONLY - Default is YES 41#FORTRAN_LIBRARIES - Default is NO 42#NO_MAC_FORTRAN - set to TRUE to allow shared libs on a Mac 43if (DEFINED CTEST_SCRIPT_ARG) 44 # transform ctest script arguments of the form 45 # script.ctest,var1=value1,var2=value2 46 # to variables with the respective names set to the respective values 47 string (REPLACE "," ";" script_args "${CTEST_SCRIPT_ARG}") 48 foreach (current_var ${script_args}) 49 if ("${current_var}" MATCHES "^([^=]+)=(.+)$") 50 set ("${CMAKE_MATCH_1}" "${CMAKE_MATCH_2}") 51 endif () 52 endforeach () 53endif () 54 55#HPC - run alternate configurations for HPC machines 56if (DEFINED HPC) 57 set (BUILD_GENERATOR "Unix") 58endif () 59 60# build generator must be defined 61if (NOT DEFINED BUILD_GENERATOR) 62 message (FATAL_ERROR "BUILD_GENERATOR must be defined - Unix, VS2017, or VS201764, VS2015, VS201564, VS2013, VS201364") 63endif () 64 65################################################################### 66### Following Line is one of [Release, RelWithDebInfo, Debug] ##### 67### (default use command line -C value) 68set (CTEST_CONFIGURATION_TYPE "$ENV{CMAKE_CONFIG_TYPE}") 69if (NOT DEFINED CTEST_CONFIGURATION_TYPE) 70 set (CTEST_CONFIGURATION_TYPE "Release") 71endif () 72set (ADD_BUILD_OPTIONS "${ADD_BUILD_OPTIONS} -DCTEST_CONFIGURATION_TYPE:STRING=${CTEST_CONFIGURATION_TYPE}") 73################################################################## 74 75if (NOT DEFINED INSTALLDIR) 76 if (WIN32) 77 set (INSTALLDIR "C:/Program Files/HDF_Group/HDF/${CTEST_SOURCE_VERSION}") 78 else () 79 set (INSTALLDIR "${CTEST_SCRIPT_DIRECTORY}/HDF_Group/HDF/${CTEST_SOURCE_VERSION}") 80 endif () 81endif () 82if (NOT DEFINED CTEST_CONFIGURATION_TYPE) 83 set (CTEST_CONFIGURATION_TYPE "Release") 84endif () 85if (NOT DEFINED CTEST_SOURCE_NAME) 86 set (CTEST_SOURCE_NAME "hdf-${CTEST_SOURCE_VERSION}${CTEST_SOURCE_VERSEXT}") 87endif () 88if (NOT DEFINED STATIC_ONLY) 89 set (STATICONLYLIBRARIES "YES") 90else () 91 set (STATICONLYLIBRARIES "NO") 92endif () 93if (NOT DEFINED FORTRAN_LIBRARIES) 94 set (FORTRANLIBRARIES "NO") 95else () 96 set(FORTRANLIBRARIES "YES") 97endif () 98 99set (CTEST_BINARY_NAME "build") 100set (CTEST_DASHBOARD_ROOT "${CTEST_SCRIPT_DIRECTORY}") 101if (WIN32 AND NOT MINGW) 102 set (CTEST_SOURCE_DIRECTORY "${CTEST_DASHBOARD_ROOT}\\${CTEST_SOURCE_NAME}") 103 set (CTEST_BINARY_DIRECTORY "${CTEST_DASHBOARD_ROOT}\\${CTEST_BINARY_NAME}") 104else () 105 set (CTEST_SOURCE_DIRECTORY "${CTEST_DASHBOARD_ROOT}/${CTEST_SOURCE_NAME}") 106 set (CTEST_BINARY_DIRECTORY "${CTEST_DASHBOARD_ROOT}/${CTEST_BINARY_NAME}") 107endif () 108 109################################################################### 110######### Following describes compiler ############ 111if (WIN32 AND NOT MINGW) 112 set (SITE_OS_NAME "Windows") 113 set (SITE_OS_VERSION "WIN7") 114 if (BUILD_GENERATOR STREQUAL "VS201764") 115 set (CTEST_CMAKE_GENERATOR "Visual Studio 15 2017 Win64") 116 set (SITE_OS_BITS "64") 117 set (SITE_COMPILER_NAME "vs2017") 118 set (SITE_COMPILER_VERSION "15") 119 elseif (BUILD_GENERATOR STREQUAL "VS2017") 120 set (CTEST_CMAKE_GENERATOR "Visual Studio 15 2017") 121 set (SITE_OS_BITS "32") 122 set (SITE_COMPILER_NAME "vs2017") 123 set (SITE_COMPILER_VERSION "15") 124 elseif (BUILD_GENERATOR STREQUAL "VS201564") 125 set (CTEST_CMAKE_GENERATOR "Visual Studio 14 2015 Win64") 126 set (SITE_OS_BITS "64") 127 set (SITE_COMPILER_NAME "vs2015") 128 set (SITE_COMPILER_VERSION "14") 129 elseif (BUILD_GENERATOR STREQUAL "VS2015") 130 set (CTEST_CMAKE_GENERATOR "Visual Studio 14 2015") 131 set (SITE_OS_BITS "32") 132 set (SITE_COMPILER_NAME "vs2015") 133 set (SITE_COMPILER_VERSION "14") 134 elseif (BUILD_GENERATOR STREQUAL "VS201364") 135 set (CTEST_CMAKE_GENERATOR "Visual Studio 12 2013 Win64") 136 set (SITE_OS_BITS "64") 137 set (SITE_COMPILER_NAME "vs2013") 138 set (SITE_COMPILER_VERSION "12") 139 elseif (BUILD_GENERATOR STREQUAL "VS2013") 140 set (CTEST_CMAKE_GENERATOR "Visual Studio 12 2013") 141 set (SITE_OS_BITS "32") 142 set (SITE_COMPILER_NAME "vs2013") 143 set (SITE_COMPILER_VERSION "12") 144 elseif (BUILD_GENERATOR STREQUAL "VS201264") 145 set (CTEST_CMAKE_GENERATOR "Visual Studio 11 2012 Win64") 146 set (SITE_OS_BITS "64") 147 set (SITE_COMPILER_NAME "vs2012") 148 set (SITE_COMPILER_VERSION "11") 149 elseif (BUILD_GENERATOR STREQUAL "VS2012") 150 set (CTEST_CMAKE_GENERATOR "Visual Studio 11 2012") 151 set (SITE_OS_BITS "32") 152 set (SITE_COMPILER_NAME "vs2012") 153 set (SITE_COMPILER_VERSION "11") 154 else () 155 message (FATAL_ERROR "Invalid BUILD_GENERATOR must be - Unix, VS2017, or VS201764, VS2015, VS201564, VS2013, VS201364") 156 endif () 157## Set the following to unique id your computer ## 158 set (CTEST_SITE "WIN7${BUILD_GENERATOR}.XXXX") 159else () 160 set (CTEST_CMAKE_GENERATOR "Unix Makefiles") 161## Set the following to unique id your computer ## 162 if (APPLE) 163 set (CTEST_SITE "MAC.XXXX") 164 else () 165 set (CTEST_SITE "LINUX.XXXX") 166 endif () 167 if (APPLE) 168 execute_process (COMMAND xcrun --find cc OUTPUT_VARIABLE XCODE_CC OUTPUT_STRIP_TRAILING_WHITESPACE) 169 execute_process (COMMAND xcrun --find c++ OUTPUT_VARIABLE XCODE_CXX OUTPUT_STRIP_TRAILING_WHITESPACE) 170 set (ENV{CC} "${XCODE_CC}") 171 set (ENV{CXX} "${XCODE_CXX}") 172 set (CTEST_USE_LAUNCHERS 1) 173 endif () 174endif () 175################################################################### 176 177if (WIN32 AND NOT MINGW) 178 include (${CTEST_SCRIPT_DIRECTORY}\\HDF4options.cmake) 179 include (${CTEST_SCRIPT_DIRECTORY}\\CTestScript.cmake) 180else () 181 include (${CTEST_SCRIPT_DIRECTORY}/HDF4options.cmake) 182 include (${CTEST_SCRIPT_DIRECTORY}/CTestScript.cmake) 183endif () 184