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.
This commit is contained in:
David Cole 2011-06-01 22:32:42 -04:00
parent 8af1eaf499
commit b43af94af1
11 changed files with 45 additions and 41 deletions

View File

@ -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
dashmacmini2_release.cmake # Mac Darwin universal
dashsun1_release.cmake # SunOS
# destiny_release.cmake # HPUX -- destiny is dead; long live destiny
magrathea_release.cmake # Linux
file(MAKE_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/logs)
set(RELEASE_SCRIPTS_BATCH_1
dash2win64_release.cmake # Windows
# dash2win64_cygwin.cmake # Cygwin
# blight_cygwin.cmake # Cygwin
v20n250_aix_release.cmake # AIX 5.3
dashmacmini2_release.cmake # Mac Darwin universal
magrathea_release.cmake # Linux
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")

View File

@ -12,7 +12,6 @@ CMAKE_Fortran_COMPILER_FULLPATH:FILEPATH=FALSE
set(CXX g++)
set(CC gcc)
set(SCRIPT_NAME dash2win64cygwin)
set(GIT_COMMAND git)
set(GIT_EXTRA "git config core.autocrlf true")
get_filename_component(path "${CMAKE_CURRENT_LIST_FILE}" PATH)
include(${path}/release_cmake.cmake)

View File

@ -15,6 +15,5 @@ BUILD_QtDialog:BOOL:=TRUE
QT_QMAKE_EXECUTABLE:FILEPATH=c:/Dashboards/Support/qt-build/Qt/bin/qmake.exe
")
get_filename_component(path "${CMAKE_CURRENT_LIST_FILE}" PATH)
set(GIT_COMMAND git)
set(GIT_EXTRA "git config core.autocrlf true")
include(${path}/release_cmake.cmake)

View File

@ -15,6 +15,5 @@ CPACK_SYSTEM_NAME:STRING=Darwin-universal
BUILD_QtDialog:BOOL:=TRUE
QT_QMAKE_EXECUTABLE:FILEPATH=/Users/kitware/Software/QtBinUniversal/bin/qmake
")
set(GIT_COMMAND /opt/local/bin/git)
get_filename_component(path "${CMAKE_CURRENT_LIST_FILE}" PATH)
include(${path}/release_cmake.cmake)

View File

@ -1,4 +1,3 @@
set(CVS_COMMAND "/home/whoffman/bin/cvs")
set(CMAKE_RELEASE_DIRECTORY "/home/whoffman/CMakeReleaseDirectory64")
set(PROCESSORS 2)
set(CFLAGS "-64")

View File

@ -1,4 +1,3 @@
set(CVS_COMMAND "/home/whoffman/bin/cvs")
set(CMAKE_RELEASE_DIRECTORY "/home/whoffman/CMakeReleaseDirectory")
set(PROCESSORS 2)
set(HOST sgi)

View File

@ -3,7 +3,6 @@ set(HOST magrathea)
set(MAKE_PROGRAM "make")
set(CC gcc332s)
set(CXX c++332s)
set(GIT_COMMAND /home/kitware/.userroot/git/bin/git)
set(INITIAL_CACHE "
CMAKE_BUILD_TYPE:STRING=Release
CURSES_LIBRARY:FILEPATH=/usr/i686-gcc-332s/lib/libncurses.a

View File

@ -1,5 +1,3 @@
set(CVSROOT ":pserver:anonymous@cmake.org:/cmake.git")
get_filename_component(SCRIPT_PATH "${CMAKE_CURRENT_LIST_FILE}" PATH)
# default to self extracting tgz, tgz, and tar.Z
@ -30,17 +28,15 @@ endif(NOT DEFINED PROCESSORS)
if(NOT DEFINED CMAKE_CREATE_VERSION)
message(FATAL_ERROR "CMAKE_CREATE_VERSION not defined")
endif(NOT DEFINED CMAKE_CREATE_VERSION)
if(NOT DEFINED CVS_COMMAND)
set(CVS_COMMAND cvs)
endif(NOT DEFINED CVS_COMMAND)
if(NOT DEFINED GIT_COMMAND)
set(GIT_COMMAND git)
endif()
if(${CMAKE_CREATE_VERSION} MATCHES "^(release|maint|next|nightly)$")
set(GIT_BRANCH origin/${CMAKE_CREATE_VERSION})
else()
set(GIT_BRANCH ${CMAKE_CREATE_VERSION})
endif()
set( CMAKE_CHECKOUT "${CVS_COMMAND} -q -d ${CVSROOT} co -d ${CMAKE_CREATE_VERSION} ${CMAKE_CREATE_VERSION}")
if(NOT DEFINED FINAL_PATH )
set(FINAL_PATH ${CMAKE_RELEASE_DIRECTORY}/${CMAKE_CREATE_VERSION}-build)

View File

@ -93,10 +93,8 @@ if [ ! -z "@GIT_COMMAND@" ]; then
check_exit_value $? "git checkout" || exit 1
cd ..
else
# for CVS just run the CMAKE_CHECKOUT command as set
# in release_cmake.cmake
@CMAKE_CHECKOUT@
check_exit_value $? "CVS Checkout cmake source" || exit 1
echo GIT_COMMAND does not exist
exit 1
fi
cd @CMAKE_RELEASE_DIRECTORY@/@CMAKE_CREATE_VERSION@-build

View File

@ -2,13 +2,16 @@ set(PROJECT_PREFIX cmake-)
if(NOT VERSION)
set(VERSION 2.8)
endif()
set(dir "v${VERSION}")
if("${VERSION}" MATCHES "master")
set(VERSION CVS)
set(dir "dev")
endif()
file(GLOB FILES ${CMAKE_CURRENT_SOURCE_DIR} "${PROJECT_PREFIX}*")
list(SORT FILES)
list(REVERSE FILES)
message("${FILES}")
set(UPLOAD_LOC
"kitware@www.cmake.org:/projects/FTP/pub/cmake/v${VERSION}")
"kitware@www.cmake.org:/projects/FTP/pub/cmake/${dir}")
set(count 0)
foreach(file ${FILES})
if(NOT IS_DIRECTORY ${file})
@ -19,8 +22,8 @@ foreach(file ${FILES})
math(EXPR count "${count} + 1")
if("${result}" GREATER 0)
message(FATAL_ERROR "failed to upload file to ${UPLOAD_LOC}")
endif("${result}" GREATER 0)
endif(NOT IS_DIRECTORY ${file})
endif()
endif()
endforeach(file)
if(${count} EQUAL 0)
message(FATAL_ERROR "Error no files uploaded.")

View File

@ -1,7 +1,6 @@
set(CMAKE_RELEASE_DIRECTORY "/bench1/noibm34/CMakeReleaseDirectory")
set(FINAL_PATH /u/noibm34/cmake-release)
set(PROCESSORS 2)
set(CVS_COMMAND /vol/local/bin/cvs)
set(HOST "sshserv.centers.ihost.com")
set(EXTRA_HOP "rsh p90n03")
set(MAKE_PROGRAM "make")