summaryrefslogtreecommitdiffstats
path: root/Utilities/Release/release_cmake.sh.in
blob: 696a3f44545fd4287081a9bd8e33c68540d9a120 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
#!/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

@SIGN@

echo "End release"
date
echo ""
exit 0