[Release] Allow release testers to disable certain components

Not all components build correctly on all targets and the release
script had no way to disable them other than editing the script locally.

This change provides a way to disable the test-suite, compiler-rt and
the libraries, as well as allowing you to re-run on the same directory
without checking out all sources again.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@242919 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Renato Golin 2015-07-22 18:21:39 +00:00
parent 03c5b6047e
commit c6f36fe9f7

View File

@ -18,8 +18,6 @@ else
MAKE=make MAKE=make
fi fi
projects="llvm cfe compiler-rt libcxx libcxxabi test-suite clang-tools-extra libunwind"
# Base SVN URL for the sources. # Base SVN URL for the sources.
Base_url="http://llvm.org/svn/llvm-project" Base_url="http://llvm.org/svn/llvm-project"
@ -32,6 +30,9 @@ do_checkout="yes"
do_debug="no" do_debug="no"
do_asserts="no" do_asserts="no"
do_compare="yes" do_compare="yes"
do_rt="yes"
do_libs="yes"
do_test_suite="yes"
BuildDir="`pwd`" BuildDir="`pwd`"
use_autoconf="no" use_autoconf="no"
ExtraConfigureFlags="" ExtraConfigureFlags=""
@ -55,6 +56,9 @@ function usage() {
echo " -use-autoconf Use autoconf instead of cmake" echo " -use-autoconf Use autoconf instead of cmake"
echo " -svn-path DIR Use the specified DIR instead of a release." echo " -svn-path DIR Use the specified DIR instead of a release."
echo " For example -svn-path trunk or -svn-path branches/release_37" echo " For example -svn-path trunk or -svn-path branches/release_37"
echo " -no-rt Disable check-out & build Compiler-RT"
echo " -no-libs Disable check-out & build libcxx/libcxxabi/libunwind"
echo " -no-test-suite Disable check-out & build test-suite"
} }
if [ `uname -s` = "Darwin" ]; then if [ `uname -s` = "Darwin" ]; then
@ -123,6 +127,15 @@ while [ $# -gt 0 ]; do
-use-autoconf | --use-autoconf ) -use-autoconf | --use-autoconf )
use_autoconf="yes" use_autoconf="yes"
;; ;;
-no-rt )
do_rt="no"
;;
-no-libs )
do_libs="no"
;;
-no-test-suite )
do_test_suite="no"
;;
-help | --help | -h | --h | -\? ) -help | --help | -h | --h | -\? )
usage usage
exit 0 exit 0
@ -167,6 +180,18 @@ if [ -z "$NumJobs" ]; then
NumJobs=3 NumJobs=3
fi fi
# Projects list
projects="llvm cfe clang-tools-extra"
if [ $do_rt = "yes" ]; then
projects="$projects compiler-rt"
fi
if [ $do_libs = "yes" ]; then
projects="$projects libcxx libcxxabi libunwind"
fi
if [ $do_test_suite = "yes" ]; then
projects="$projects test-suite"
fi
# Go to the build directory (may be different from CWD) # Go to the build directory (may be different from CWD)
BuildDir=$BuildDir/$RC BuildDir=$BuildDir/$RC
mkdir -p $BuildDir mkdir -p $BuildDir
@ -215,6 +240,10 @@ function export_sources() {
check_valid_urls check_valid_urls
for proj in $projects ; do for proj in $projects ; do
if [ -d $proj.src ]; then
echo "# Reusing $proj $Release-$RC sources"
continue
fi
echo "# Exporting $proj $Release-$RC sources" echo "# Exporting $proj $Release-$RC sources"
if ! svn export -q $Base_url/$proj/$ExportBranch $proj.src ; then if ! svn export -q $Base_url/$proj/$ExportBranch $proj.src ; then
echo "error: failed to export $proj project" echo "error: failed to export $proj project"
@ -232,19 +261,19 @@ function export_sources() {
ln -s ../../../../clang-tools-extra.src extra ln -s ../../../../clang-tools-extra.src extra
fi fi
cd $BuildDir/llvm.src/projects cd $BuildDir/llvm.src/projects
if [ ! -h test-suite ]; then if [ -d $BuildDir/test-suite.src ] && [ ! -h test-suite ]; then
ln -s ../../test-suite.src test-suite ln -s ../../test-suite.src test-suite
fi fi
if [ ! -h compiler-rt ]; then if [ -d $BuildDir/compiler-rt.src ] && [ ! -h compiler-rt ]; then
ln -s ../../compiler-rt.src compiler-rt ln -s ../../compiler-rt.src compiler-rt
fi fi
if [ ! -h libcxx ]; then if [ -d $BuildDir/libcxx.src ] && [ ! -h libcxx ]; then
ln -s ../../libcxx.src libcxx ln -s ../../libcxx.src libcxx
fi fi
if [ ! -h libcxxabi ]; then if [ -d $BuildDir/libcxxabi.src ] && [ ! -h libcxxabi ]; then
ln -s ../../libcxxabi.src libcxxabi ln -s ../../libcxxabi.src libcxxabi
fi fi
if [ ! -h libunwind ]; then if [ -d $BuildDir/libunwind.src ] && [ ! -h libunwind ]; then
ln -s ../../libunwind.src libunwind ln -s ../../libunwind.src libunwind
fi fi