summaryrefslogtreecommitdiff
path: root/Utilities/Release/release_cmake.sh.in
diff options
context:
space:
mode:
Diffstat (limited to 'Utilities/Release/release_cmake.sh.in')
-rwxr-xr-xUtilities/Release/release_cmake.sh.in154
1 files changed, 154 insertions, 0 deletions
diff --git a/Utilities/Release/release_cmake.sh.in b/Utilities/Release/release_cmake.sh.in
new file mode 100755
index 000000000..50882c5de
--- /dev/null
+++ b/Utilities/Release/release_cmake.sh.in
@@ -0,0 +1,154 @@
+#!/bin/sh
+echo "Start release"
+date
+echo ""
+echo "remove and create working directory @CMAKE_RELEASE_DIRECTORY@"
+rm -rf @CMAKE_RELEASE_DIRECTORY@
+mkdir @CMAKE_RELEASE_DIRECTORY@
+
+check_exit_value()
+{
+ VALUE="$1"
+ if [ "$VALUE" != "0" ]; then
+ echo "error in $2"
+ exit 1
+ fi
+}
+
+if [ ! -z "@CC@" ]; then
+ export CC="@CC@"
+ check_exit_value $? "set CC compiler env var" || exit 1
+fi
+
+if [ ! -z "@FC@" ]; then
+ export FC="@FC@"
+ check_exit_value $? "set FC compiler env var" || exit 1
+fi
+
+if [ ! -z "@CXX@" ]; then
+ export CXX="@CXX@"
+ check_exit_value $? "set CC compiler env var" || exit 1
+fi
+
+if [ ! -z "@LDFLAGS@" ]; then
+ export LDFLAGS="@LDFLAGS@"
+ check_exit_value $? "set LDFLAGS env var" || exit 1
+fi
+
+if [ ! -z "@FFLAGS@" ]; then
+ export FFLAGS="@FFLAGS@"
+ check_exit_value $? "set FFLAGS env var" || exit 1
+fi
+
+if [ ! -z "@CFLAGS@" ]; then
+ export CFLAGS="@CFLAGS@"
+ check_exit_value $? "set CFLAGS env var" || exit 1
+fi
+
+if [ ! -z "@CXXFLAGS@" ]; then
+ export CXXFLAGS="@CXXFLAGS@"
+ check_exit_value $? "setCXXFLAGS env var" || exit 1
+fi
+
+if [ ! -z "@USER_MAKE_RULE_FILE_CONTENTS@" ]; then
+ echo "@USER_MAKE_RULE_FILE_CONTENTS@" > "@USER_MAKE_RULE_FILE@"
+ check_exit_value $? "Create User Rule file" || exit 1
+fi
+echo "Create a directory to build in"
+rm -rf @CMAKE_RELEASE_DIRECTORY@/@CMAKE_CREATE_VERSION@-build
+check_exit_value $? "Remove build tree" || exit 1
+mkdir @CMAKE_RELEASE_DIRECTORY@/@CMAKE_CREATE_VERSION@-build
+check_exit_value $? "Create build directory" || exit 1
+# make sure directory was created
+if [ ! -d @CMAKE_RELEASE_DIRECTORY@/@CMAKE_CREATE_VERSION@-build ]; then
+ echo "Could not create @CMAKE_RELEASE_DIRECTORY@/@CMAKE_CREATE_VERSION@-build"
+ exit -1
+fi
+
+echo "Create initial cache"
+echo "@INITIAL_CACHE@" > @CMAKE_RELEASE_DIRECTORY@/@CMAKE_CREATE_VERSION@-build/CMakeCache.txt
+check_exit_value $? "Create initial cache" || exit 1
+
+# create a user override file user.txt if USER_OVERRIDE is set,
+# and append the cache variable to the cache
+if [ ! -z "@USER_OVERRIDE@" ]; then
+ echo "@USER_OVERRIDE@" > @CMAKE_RELEASE_DIRECTORY@/@CMAKE_CREATE_VERSION@-build/user.txt
+ echo "CMAKE_USER_MAKE_RULES_OVERRIDE:FILEPATH=@CMAKE_RELEASE_DIRECTORY@/@CMAKE_CREATE_VERSION@-build/user.txt" >> @CMAKE_RELEASE_DIRECTORY@/@CMAKE_CREATE_VERSION@-build/CMakeCache.txt
+fi
+
+echo "Checkout the source for @CMAKE_CREATE_VERSION@"
+cd @CMAKE_RELEASE_DIRECTORY@
+if [ ! -z "@GIT_COMMAND@" ]; then
+ # clone the repo without creating any source files in the directory
+ # matching the branch being built (i.e. master CMake-2-8, etc)
+ @GIT_COMMAND@ clone -n git://cmake.org/cmake.git @CMAKE_CREATE_VERSION@
+ check_exit_value $? "Checkout git cmake source" || exit 1
+ # go into the git directory
+ cd @CMAKE_CREATE_VERSION@
+ # run any extra commands if they exist
+ @GIT_EXTRA@
+ check_exit_value $? "git extra cmake source" || exit 1
+ # now checkout a copy on the local branch working
+ @GIT_COMMAND@ checkout -b working @GIT_BRANCH@
+ check_exit_value $? "git checkout" || exit 1
+ cd ..
+else
+ echo GIT_COMMAND does not exist
+ exit 1
+fi
+
+cd @CMAKE_RELEASE_DIRECTORY@/@CMAKE_CREATE_VERSION@-build
+
+if [ ! -z "@CONFIGURE_WITH_CMAKE@" ]; then
+ echo "Run cmake to configure cmake"
+ @CMAKE_CONFIGURE_PATH@ ../@CMAKE_CREATE_VERSION@
+ check_exit_value $? "Configure cmake" || exit 1
+else
+ if [ -z "@INSTALL_PREFIX@" ]; then
+ echo "Run cmake bootstrap --parallel=@PROCESSORS@"
+ ../@CMAKE_CREATE_VERSION@/bootstrap --parallel=@PROCESSORS@
+ check_exit_value $? "Bootstrap cmake" || exit 1
+ else
+ echo "Run cmake bootstrap --prefix=@INSTALL_PREFIX@ --parallel=@PROCESSORS@"
+ ../@CMAKE_CREATE_VERSION@/bootstrap --prefix=@INSTALL_PREFIX@ --parallel=@PROCESSORS@
+ check_exit_value $? "Bootstrap cmake" || exit 1
+ fi
+fi
+
+echo "Build cmake with @MAKE@"
+@MAKE@
+check_exit_value $? "Build cmake" || exit 1
+
+if [ -z "@SKIP_TESTS@" ]; then
+ echo "Run cmake tests"
+ ./bin/ctest --output-on-failure -j @PROCESSORS@ test
+ check_exit_value $? "Test cmake" || exit 1
+fi
+
+# loop over binary generators
+generators="@CPACK_BINARY_GENERATORS@"
+for GEN in $generators; do
+ echo "Create $GEN package"
+ ./bin/cpack -D CMAKE_MAKE_PROGRAM=@MAKE_PROGRAM@ -G $GEN
+ check_exit_value $? "Create $GEN package" || exit 1
+done
+
+# loop over source generators
+generators="@CPACK_SOURCE_GENERATORS@"
+for GEN in $generators; do
+ echo "Create $GEN package"
+ ./bin/cpack -D CMAKE_MAKE_PROGRAM=@MAKE_PROGRAM@ -G $GEN --config CPackSourceConfig.cmake
+ check_exit_value $? "Create $GEN package" || exit 1
+done
+
+
+
+# need to add an extra copy thing here
+if [ ! -z "@EXTRA_COPY@" ]; then
+ @EXTRA_COPY@
+ check_exit_value $? "Extra copy step @EXTRA_COPY@" || exit 1
+fi
+echo "End release"
+date
+echo ""
+exit 0