release_cmake.sh.in 4.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158
  1. #!/bin/sh
  2. echo "Start release"
  3. date
  4. echo ""
  5. echo "remove and create working directory @CMAKE_RELEASE_DIRECTORY@"
  6. rm -rf @CMAKE_RELEASE_DIRECTORY@
  7. mkdir @CMAKE_RELEASE_DIRECTORY@
  8. @ENV@
  9. check_exit_value()
  10. {
  11. VALUE="$1"
  12. if [ "$VALUE" != "0" ]; then
  13. echo "error in $2"
  14. exit 1
  15. fi
  16. }
  17. CMAKE_DOC_TARBALL=""
  18. if [ ! -z "@CMAKE_DOC_TARBALL_NAME@" ] ; then
  19. CMAKE_DOC_TARBALL=@CMAKE_RELEASE_DIRECTORY@/@CMAKE_DOC_TARBALL_NAME@
  20. mv "$HOME/@CMAKE_DOC_TARBALL_STAGED@" "$CMAKE_DOC_TARBALL"
  21. check_exit_value $? "mv doc tarball" || exit 1
  22. fi
  23. if [ ! -z "@CC@" ]; then
  24. export CC="@CC@"
  25. check_exit_value $? "set CC compiler env var" || exit 1
  26. fi
  27. if [ ! -z "@FC@" ]; then
  28. export FC="@FC@"
  29. check_exit_value $? "set FC compiler env var" || exit 1
  30. fi
  31. if [ ! -z "@CXX@" ]; then
  32. export CXX="@CXX@"
  33. check_exit_value $? "set CC compiler env var" || exit 1
  34. fi
  35. if [ ! -z "@LDFLAGS@" ]; then
  36. export LDFLAGS="@LDFLAGS@"
  37. check_exit_value $? "set LDFLAGS env var" || exit 1
  38. fi
  39. if [ ! -z "@FFLAGS@" ]; then
  40. export FFLAGS="@FFLAGS@"
  41. check_exit_value $? "set FFLAGS env var" || exit 1
  42. fi
  43. if [ ! -z "@CFLAGS@" ]; then
  44. export CFLAGS="@CFLAGS@"
  45. check_exit_value $? "set CFLAGS env var" || exit 1
  46. fi
  47. if [ ! -z "@CXXFLAGS@" ]; then
  48. export CXXFLAGS="@CXXFLAGS@"
  49. check_exit_value $? "setCXXFLAGS env var" || exit 1
  50. fi
  51. if [ ! -z "@USER_MAKE_RULE_FILE_CONTENTS@" ]; then
  52. echo "@USER_MAKE_RULE_FILE_CONTENTS@" > "@USER_MAKE_RULE_FILE@"
  53. check_exit_value $? "Create User Rule file" || exit 1
  54. fi
  55. echo "Create a directory to build in"
  56. rm -rf @CMAKE_RELEASE_DIRECTORY@/@CMAKE_CREATE_VERSION@-build
  57. check_exit_value $? "Remove build tree" || exit 1
  58. mkdir @CMAKE_RELEASE_DIRECTORY@/@CMAKE_CREATE_VERSION@-build
  59. check_exit_value $? "Create build directory" || exit 1
  60. # make sure directory was created
  61. if [ ! -d @CMAKE_RELEASE_DIRECTORY@/@CMAKE_CREATE_VERSION@-build ]; then
  62. echo "Could not create @CMAKE_RELEASE_DIRECTORY@/@CMAKE_CREATE_VERSION@-build"
  63. exit -1
  64. fi
  65. echo "Create initial cache"
  66. echo "@INITIAL_CACHE@" > @CMAKE_RELEASE_DIRECTORY@/@CMAKE_CREATE_VERSION@-build/CMakeCache.txt
  67. check_exit_value $? "Create initial cache" || exit 1
  68. # create a user override file user.txt if USER_OVERRIDE is set,
  69. # and append the cache variable to the cache
  70. if [ ! -z "@USER_OVERRIDE@" ]; then
  71. echo "@USER_OVERRIDE@" > @CMAKE_RELEASE_DIRECTORY@/@CMAKE_CREATE_VERSION@-build/user.txt
  72. 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
  73. fi
  74. # Point build at pre-built documentation tarball, if any.
  75. if [ ! -z "$CMAKE_DOC_TARBALL" ]; then
  76. echo "CMAKE_DOC_TARBALL:FILEPATH=$CMAKE_DOC_TARBALL" >> @CMAKE_RELEASE_DIRECTORY@/@CMAKE_CREATE_VERSION@-build/CMakeCache.txt
  77. fi
  78. echo "Checkout the source for @CMAKE_CREATE_VERSION@"
  79. cd @CMAKE_RELEASE_DIRECTORY@
  80. if [ ! -z "@GIT_COMMAND@" ]; then
  81. # clone the repo without creating any source files in the directory
  82. # matching the branch being built (i.e. master CMake-2-8, etc)
  83. @GIT_COMMAND@ clone -n https://gitlab.kitware.com/cmake/cmake.git @CMAKE_CREATE_VERSION@
  84. check_exit_value $? "git clone cmake source" || exit 1
  85. # go into the git directory
  86. cd @CMAKE_CREATE_VERSION@
  87. # run any extra commands if they exist
  88. @GIT_EXTRA@
  89. check_exit_value $? "git extra cmake source" || exit 1
  90. @GIT_FETCH@
  91. check_exit_value $? "git extra fetch" || exit 1
  92. # now checkout a copy on the local branch working
  93. @GIT_COMMAND@ checkout -b working @GIT_BRANCH@
  94. check_exit_value $? "git checkout" || exit 1
  95. cd ..
  96. else
  97. echo GIT_COMMAND does not exist
  98. exit 1
  99. fi
  100. cd @CMAKE_RELEASE_DIRECTORY@/@CMAKE_CREATE_VERSION@-build
  101. if [ ! -z "@CONFIGURE_WITH_CMAKE@" ]; then
  102. echo "Run cmake to configure cmake"
  103. @CMAKE_CONFIGURE_PATH@ ../@CMAKE_CREATE_VERSION@
  104. check_exit_value $? "Configure cmake" || exit 1
  105. else
  106. echo "Run cmake bootstrap @BOOTSTRAP_ARGS@ --parallel=@PROCESSORS@"
  107. ../@CMAKE_CREATE_VERSION@/bootstrap @BOOTSTRAP_ARGS@ --parallel=@PROCESSORS@
  108. check_exit_value $? "Bootstrap cmake" || exit 1
  109. fi
  110. echo "Build cmake with @MAKE@"
  111. @MAKE@
  112. check_exit_value $? "Build cmake" || exit 1
  113. if [ -z "@SKIP_TESTS@" ]; then
  114. echo "Run cmake tests"
  115. ./bin/ctest --output-on-failure -j @PROCESSORS@ @EXTRA_CTEST_ARGS@
  116. check_exit_value $? "Test cmake" || exit 1
  117. fi
  118. # loop over binary generators
  119. generators="@CPACK_BINARY_GENERATORS@"
  120. for GEN in $generators; do
  121. echo "Create $GEN package"
  122. ./bin/cpack -D CMAKE_MAKE_PROGRAM=@MAKE_PROGRAM@ -G $GEN
  123. check_exit_value $? "Create $GEN package" || exit 1
  124. done
  125. # loop over source generators
  126. generators="@CPACK_SOURCE_GENERATORS@"
  127. for GEN in $generators; do
  128. echo "Create $GEN package"
  129. ./bin/cpack -D CMAKE_MAKE_PROGRAM=@MAKE_PROGRAM@ -G $GEN --config CPackSourceConfig.cmake
  130. check_exit_value $? "Create $GEN package" || exit 1
  131. done
  132. echo "End release"
  133. date
  134. echo ""
  135. exit 0