#!/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@ @ENV@ check_exit_value() { VALUE="$1" if [ "$VALUE" != "0" ]; then echo "error in $2" exit 1 fi } CMAKE_DOC_TARBALL="" if [ ! -z "@CMAKE_DOC_TARBALL_NAME@" ] ; then CMAKE_DOC_TARBALL=@CMAKE_RELEASE_DIRECTORY@/@CMAKE_DOC_TARBALL_NAME@ mv "$HOME/@CMAKE_DOC_TARBALL_STAGED@" "$CMAKE_DOC_TARBALL" check_exit_value $? "mv doc tarball" || 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 # Point build at pre-built documentation tarball, if any. if [ ! -z "$CMAKE_DOC_TARBALL" ]; then echo "CMAKE_DOC_TARBALL:FILEPATH=$CMAKE_DOC_TARBALL" >> @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 https://gitlab.kitware.com/cmake/cmake.git @CMAKE_CREATE_VERSION@ check_exit_value $? "git clone 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 @GIT_FETCH@ check_exit_value $? "git extra fetch" || 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 echo "Run cmake bootstrap @BOOTSTRAP_ARGS@ --parallel=@PROCESSORS@" ../@CMAKE_CREATE_VERSION@/bootstrap @BOOTSTRAP_ARGS@ --parallel=@PROCESSORS@ check_exit_value $? "Bootstrap cmake" || exit 1 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@ @EXTRA_CTEST_ARGS@ 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 echo "End release" date echo "" exit 0