diff options
-rw-r--r-- | Tests/CMakeLists.txt | 4 | ||||
-rwxr-xr-x | Utilities/Release/push.bash | 70 | ||||
-rw-r--r-- | Utilities/Release/upload_release.cmake | 40 |
3 files changed, 72 insertions, 42 deletions
diff --git a/Tests/CMakeLists.txt b/Tests/CMakeLists.txt index 698cb1d..6901077 100644 --- a/Tests/CMakeLists.txt +++ b/Tests/CMakeLists.txt @@ -770,14 +770,14 @@ if(BUILD_TESTING) file(WRITE "${_TEST_DIR}/nightly-cmake.sh" "cd ${_TEST_DIR} ${CMake_BINARY_DIR}/bin/cmake -DCMAKE_CREATE_VERSION=nightly -P ${CMake_SOURCE_DIR}/Utilities/Release/${script} -${CMake_BINARY_DIR}/bin/cmake -DDIR=dev -P ${CMake_SOURCE_DIR}/Utilities/Release/upload_release.cmake +${CMake_SOURCE_DIR}/Utilities/Release/push.bash --dir dev -- '${CMake_BUILD_NIGHTLY_RELEASES}' ") add_test(${name} /bin/sh ${_TEST_DIR}/nightly-cmake.sh) if(COMMAND SET_TESTS_PROPERTIES AND COMMAND GET_TEST_PROPERTY) set_tests_properties (${name} PROPERTIES TIMEOUT ${CMAKE_LONG_TEST_TIMEOUT}) endif() endmacro() - if(CMAKE_BUILD_NIGHTLY_RELEASES) + if(CMake_BUILD_NIGHTLY_RELEASES) ADD_NIGHTLY_BUILD_TEST(CMakeNightlyWin32 win32_release.cmake) ADD_NIGHTLY_BUILD_TEST(CMakeNightlyWin64 diff --git a/Utilities/Release/push.bash b/Utilities/Release/push.bash new file mode 100755 index 0000000..1c8efe9 --- /dev/null +++ b/Utilities/Release/push.bash @@ -0,0 +1,70 @@ +#!/usr/bin/env bash + +usage='usage: push.bash [<options>] [--] <dest> + +Options: + + --dir <dir> Specify subdirectory under destination. + Defaults to "v<version>". + --version <ver> CMake <major>.<minor> version number to push. + Defaults to version of source tree. +' + +die() { + echo "$@" 1>&2; exit 1 +} + +cmake_source_dir="${BASH_SOURCE%/*}/../.." + +cmake_version_component() +{ + sed -n " +/^set(CMake_VERSION_${1}/ {s/set(CMake_VERSION_${1} *\([0-9]*\))/\1/;p;} +" "${cmake_source_dir}/Source/CMakeVersion.cmake" +} + + +version='' +dir='' +while test "$#" != 0; do + case "$1" in + --dir) shift; dir="$1" ;; + --version) shift; version="$1" ;; + --) shift ; break ;; + -*) die "$usage" ;; + *) break ;; + esac + shift +done +test "$#" = 1 || die "$usage" +readonly dest="$1" + +if test -z "$version"; then + cmake_version_major="$(cmake_version_component MAJOR)" + cmake_version_minor="$(cmake_version_component MINOR)" + version="${cmake_version_major}.${cmake_version_minor}" +fi +readonly version + +if test -z "$dir"; then + dir="v${version}" +fi +readonly dir + +for f in cmake-${version}*; do + if ! test -f "${f}"; then + continue + fi + + echo "pushing '${f}'" + + # Make a copy with a new timestamp and atomically rename into place. + tf="${dest}/${dir}/.tmp.${f}" + df="${dest}/${dir}/${f}" + cp "${f}" "${tf}" + mv "${tf}" "${df}" + + # Pause to give each file a distinct time stamp even with 1s resolution + # so that sorting by time also sorts alphabetically. + sleep 1.1 +done diff --git a/Utilities/Release/upload_release.cmake b/Utilities/Release/upload_release.cmake deleted file mode 100644 index d78e68a..0000000 --- a/Utilities/Release/upload_release.cmake +++ /dev/null @@ -1,40 +0,0 @@ -set(CTEST_RUN_CURRENT_SCRIPT 0) -if(NOT VERSION) - include(${CMAKE_CURRENT_LIST_DIR}/../../Source/CMakeVersion.cmake) - set(VERSION ${CMake_VERSION_MAJOR}.${CMake_VERSION_MINOR}) -endif() -if(NOT DEFINED PROJECT_PREFIX) - set(PROJECT_PREFIX cmake-${VERSION}) -endif() -if(NOT DEFINED DIR) - set(DIR "v${VERSION}") -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/${DIR}") -set(count 0) -foreach(file ${FILES}) - if(NOT IS_DIRECTORY ${file}) - message("upload ${file} ${UPLOAD_LOC}") - execute_process(COMMAND - scp ${file} ${UPLOAD_LOC} - RESULT_VARIABLE result) - if("${result}" GREATER 0) - message(FATAL_ERROR "failed to upload file to ${UPLOAD_LOC}") - endif() - - # Pause to give each upload a distinct (to the nearest second) - # time stamp - if(COMMAND ctest_sleep) - ctest_sleep(2) - endif() - - math(EXPR count "${count} + 1") - endif() -endforeach() -if(${count} EQUAL 0) - message(FATAL_ERROR "Error no files uploaded.") -endif() |