release_cmake.sh.in 4.8 KB

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