diff options
Diffstat (limited to 'Utilities/Release/release_cmake.sh.in')
-rwxr-xr-x | Utilities/Release/release_cmake.sh.in | 154 |
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 0000000..50882c5 --- /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 |