summaryrefslogtreecommitdiffstats
path: root/Utilities/Release/create-cmake-release.cmake
diff options
context:
space:
mode:
authorDavid Cole <david.cole@kitware.com>2011-06-02 02:32:42 (GMT)
committerDavid Cole <david.cole@kitware.com>2011-06-02 18:36:14 (GMT)
commitb43af94af1c3f80237fd9889bd5a48e02e279f17 (patch)
tree94af7860b77c56a22488335ce7d2d63000176830 /Utilities/Release/create-cmake-release.cmake
parent8af1eaf499cb539719fa1698ea3031a70a861728 (diff)
downloadCMake-b43af94af1c3f80237fd9889bd5a48e02e279f17.zip
CMake-b43af94af1c3f80237fd9889bd5a48e02e279f17.tar.gz
CMake-b43af94af1c3f80237fd9889bd5a48e02e279f17.tar.bz2
CMake: eliminate use of cvs in the Release scripts
Set GIT_COMMAND to "git" -- each machine involved in building the CMake release binaries has the right "git" in the PATH. Separate the release scripts into two batches so we can build multiple releases on the same machine, in serial, if necessary. We currnetly do this with the Windows and Cygwin release binaries on dash2win64. Sort the files to be uploaded, so that sorting them by modification time (file copy / upload time) is equivalent to sorting them alphabetically.
Diffstat (limited to 'Utilities/Release/create-cmake-release.cmake')
-rw-r--r--Utilities/Release/create-cmake-release.cmake50
1 files changed, 32 insertions, 18 deletions
diff --git a/Utilities/Release/create-cmake-release.cmake b/Utilities/Release/create-cmake-release.cmake
index fd91665..75b0061 100644
--- a/Utilities/Release/create-cmake-release.cmake
+++ b/Utilities/Release/create-cmake-release.cmake
@@ -1,28 +1,42 @@
if(NOT DEFINED CMAKE_CREATE_VERSION)
- message(FATAL_ERROR "CMAKE_CREATE_VERSION not defined")
-endif(NOT DEFINED CMAKE_CREATE_VERSION)
+ set(CMAKE_CREATE_VERSION "release")
+ message("Using default value of 'release' for CMAKE_CREATE_VERSION")
+endif()
-set(RELEASE_SCRIPTS
+file(MAKE_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/logs)
+
+set(RELEASE_SCRIPTS_BATCH_1
+ dash2win64_release.cmake # Windows
dashmacmini2_release.cmake # Mac Darwin universal
- dashsun1_release.cmake # SunOS
-# destiny_release.cmake # HPUX -- destiny is dead; long live destiny
magrathea_release.cmake # Linux
- dash2win64_release.cmake # Windows
-# dash2win64_cygwin.cmake # Cygwin
-# blight_cygwin.cmake # Cygwin
- v20n250_aix_release.cmake # AIX 5.3
+ dashsun1_release.cmake # SunOS
+ v20n250_aix_release.cmake # AIX 5.3
ferrari_sgi64_release.cmake # IRIX 64
- ferrari_sgi_release.cmake # IRIX 64
+ ferrari_sgi_release.cmake # IRIX
)
-file(WRITE create-${CMAKE_CREATE_VERSION}.sh "#!/bin/bash")
-make_directory(${CMAKE_CURRENT_SOURCE_DIR}/logs)
+set(RELEASE_SCRIPTS_BATCH_2
+ dash2win64_cygwin.cmake # Cygwin
+)
-foreach(f ${RELEASE_SCRIPTS})
- file(APPEND create-${CMAKE_CREATE_VERSION}.sh
+function(write_batch_shell_script filename)
+ set(scripts ${ARGN})
+ set(i 0)
+ file(WRITE ${filename} "#!/bin/bash")
+ foreach(f ${scripts})
+ math(EXPR x "420*(${i}/4)")
+ math(EXPR y "160*(${i}%4)")
+ file(APPEND ${filename}
"
${CMAKE_COMMAND} -DCMAKE_CREATE_VERSION=${CMAKE_CREATE_VERSION} -P ${CMAKE_ROOT}/Utilities/Release/${f} < /dev/null >& ${CMAKE_CURRENT_SOURCE_DIR}/logs/${f}-${CMAKE_CREATE_VERSION}.log &
- xterm -geometry 80x10 -sb -sl 2000 -T ${f}-${CMAKE_CREATE_VERSION}.log -e tail -f ${CMAKE_CURRENT_SOURCE_DIR}/logs/${f}-${CMAKE_CREATE_VERSION}.log&")
-endforeach(f)
-execute_process(COMMAND chmod a+x create-${CMAKE_CREATE_VERSION}.sh)
-message("Run ./create-${CMAKE_CREATE_VERSION}.sh")
+xterm -geometry 64x6+${x}+${y} -sb -sl 2000 -T ${f}-${CMAKE_CREATE_VERSION}.log -e tail -f ${CMAKE_CURRENT_SOURCE_DIR}/logs/${f}-${CMAKE_CREATE_VERSION}.log&
+")
+ math(EXPR i "${i}+1")
+ endforeach(f)
+ execute_process(COMMAND chmod a+x ${filename})
+endfunction()
+
+write_batch_shell_script("create-${CMAKE_CREATE_VERSION}-batch1.sh" ${RELEASE_SCRIPTS_BATCH_1})
+write_batch_shell_script("create-${CMAKE_CREATE_VERSION}-batch2.sh" ${RELEASE_SCRIPTS_BATCH_2})
+
+message("Run ./create-${CMAKE_CREATE_VERSION}-batch1.sh, then after all those builds complete, run ./create-${CMAKE_CREATE_VERSION}-batch2.sh")