mirror of
https://github.com/Gericom/teak-llvm.git
synced 2025-06-19 11:35:51 -04:00
test-release.sh: Update to fetch source from GitHub
Summary: This also changes the test-release.sh script to build using the monorepo layout instead of copying sub-projects into llvm/tools or llvm/projects. Reviewers: jdoerfert, hans Reviewed By: hans Subscribers: hans, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D70353
This commit is contained in:
parent
bfebc63a3d
commit
c97f303880
@ -43,6 +43,7 @@ do_polly="yes"
|
|||||||
BuildDir="`pwd`"
|
BuildDir="`pwd`"
|
||||||
ExtraConfigureFlags=""
|
ExtraConfigureFlags=""
|
||||||
ExportBranch=""
|
ExportBranch=""
|
||||||
|
git_ref=""
|
||||||
|
|
||||||
function usage() {
|
function usage() {
|
||||||
echo "usage: `basename $0` -release X.Y.Z -rc NUM [OPTIONS]"
|
echo "usage: `basename $0` -release X.Y.Z -rc NUM [OPTIONS]"
|
||||||
@ -60,8 +61,7 @@ function usage() {
|
|||||||
echo " -use-gzip Use gzip instead of xz."
|
echo " -use-gzip Use gzip instead of xz."
|
||||||
echo " -use-ninja Use ninja instead of make/gmake."
|
echo " -use-ninja Use ninja instead of make/gmake."
|
||||||
echo " -configure-flags FLAGS Extra flags to pass to the configure step."
|
echo " -configure-flags FLAGS Extra flags to pass to the configure step."
|
||||||
echo " -svn-path DIR Use the specified DIR instead of a release."
|
echo " -git-ref sha Use the specified git ref for testing instead of a release."
|
||||||
echo " For example -svn-path trunk or -svn-path branches/release_37"
|
|
||||||
echo " -no-rt Disable check-out & build Compiler-RT"
|
echo " -no-rt Disable check-out & build Compiler-RT"
|
||||||
echo " -no-libs Disable check-out & build libcxx/libcxxabi/libunwind"
|
echo " -no-libs Disable check-out & build libcxx/libcxxabi/libunwind"
|
||||||
echo " -no-libcxxabi Disable check-out & build libcxxabi"
|
echo " -no-libcxxabi Disable check-out & build libcxxabi"
|
||||||
@ -88,13 +88,14 @@ while [ $# -gt 0 ]; do
|
|||||||
-final | --final )
|
-final | --final )
|
||||||
RC=final
|
RC=final
|
||||||
;;
|
;;
|
||||||
-svn-path | --svn-path )
|
-git-ref | --git-ref )
|
||||||
shift
|
shift
|
||||||
Release="test"
|
Release="test"
|
||||||
Release_no_dot="test"
|
Release_no_dot="test"
|
||||||
ExportBranch="$1"
|
ExportBranch="$1"
|
||||||
RC="`echo $ExportBranch | sed -e 's,/,_,g'`"
|
RC="`echo $ExportBranch | sed -e 's,/,_,g'`"
|
||||||
echo "WARNING: Using the branch $ExportBranch instead of a release tag"
|
git_ref="$1"
|
||||||
|
echo "WARNING: Using the ref $git_ref instead of a release tag"
|
||||||
echo " This is intended to aid new packagers in trialing "
|
echo " This is intended to aid new packagers in trialing "
|
||||||
echo " builds without requiring a tag to be created first"
|
echo " builds without requiring a tag to be created first"
|
||||||
;;
|
;;
|
||||||
@ -196,6 +197,17 @@ if [ -z "$Triple" ]; then
|
|||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
if [ "$Release" != "test" ]; then
|
||||||
|
if [ -n "$git_ref" ]; then
|
||||||
|
echo "error: can't specify both -release and -git-ref"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
git_ref=llvmorg-$Release
|
||||||
|
if [ "$RC" != "final" ]; then
|
||||||
|
git_ref="$git_ref-$RC"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
# Figure out how many make processes to run.
|
# Figure out how many make processes to run.
|
||||||
if [ -z "$NumJobs" ]; then
|
if [ -z "$NumJobs" ]; then
|
||||||
NumJobs=`sysctl -n hw.activecpu 2> /dev/null || true`
|
NumJobs=`sysctl -n hw.activecpu 2> /dev/null || true`
|
||||||
@ -211,7 +223,7 @@ if [ -z "$NumJobs" ]; then
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
# Projects list
|
# Projects list
|
||||||
projects="llvm cfe clang-tools-extra"
|
projects="llvm clang clang-tools-extra"
|
||||||
if [ $do_rt = "yes" ]; then
|
if [ $do_rt = "yes" ]; then
|
||||||
projects="$projects compiler-rt"
|
projects="$projects compiler-rt"
|
||||||
fi
|
fi
|
||||||
@ -288,60 +300,37 @@ fi
|
|||||||
|
|
||||||
check_program_exists ${MAKE}
|
check_program_exists ${MAKE}
|
||||||
|
|
||||||
# Make sure that the URLs are valid.
|
|
||||||
function check_valid_urls() {
|
|
||||||
for proj in $projects ; do
|
|
||||||
echo "# Validating $proj SVN URL"
|
|
||||||
|
|
||||||
if ! svn ls $Base_url/$proj/$ExportBranch > /dev/null 2>&1 ; then
|
|
||||||
echo "$proj does not have a $ExportBranch branch/tag!"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
}
|
|
||||||
|
|
||||||
# Export sources to the build directory.
|
# Export sources to the build directory.
|
||||||
function export_sources() {
|
function export_sources() {
|
||||||
check_valid_urls
|
SrcDir=$BuildDir/llvm-project
|
||||||
|
mkdir -p $SrcDir
|
||||||
|
echo "# Using git ref: $git_ref"
|
||||||
|
|
||||||
for proj in $projects ; do
|
# GitHub allows you to download a tarball of any commit using the URL:
|
||||||
case $proj in
|
# https://github.com/$organization/$repo/archive/$ref.tar.gz
|
||||||
llvm)
|
curl -L https://github.com/llvm/llvm-project/archive/$git_ref.tar.gz | \
|
||||||
projsrc=$proj.src
|
tar -C $SrcDir --strip-components=1 -xzf -
|
||||||
;;
|
|
||||||
cfe)
|
|
||||||
projsrc=llvm.src/tools/clang
|
|
||||||
;;
|
|
||||||
lld|lldb|polly)
|
|
||||||
projsrc=llvm.src/tools/$proj
|
|
||||||
;;
|
|
||||||
clang-tools-extra)
|
|
||||||
projsrc=llvm.src/tools/clang/tools/extra
|
|
||||||
;;
|
|
||||||
compiler-rt|libcxx|libcxxabi|libunwind|openmp)
|
|
||||||
projsrc=llvm.src/projects/$proj
|
|
||||||
;;
|
|
||||||
test-suite)
|
|
||||||
projsrc=$proj.src
|
|
||||||
;;
|
|
||||||
*)
|
|
||||||
echo "error: unknown project $proj"
|
|
||||||
exit 1
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
|
|
||||||
if [ -d $projsrc ]; then
|
if [ "$do_test_suite" = "yes" ]; then
|
||||||
echo "# Reusing $proj $Release-$RC sources in $projsrc"
|
TestSuiteSrcDir=$BuildDir/llvm-test-suite
|
||||||
continue
|
mkdir -p $TestSuiteSrcDir
|
||||||
fi
|
|
||||||
echo "# Exporting $proj $Release-$RC sources to $projsrc"
|
|
||||||
if ! svn export -q $Base_url/$proj/$ExportBranch $projsrc ; then
|
|
||||||
echo "error: failed to export $proj project"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
|
|
||||||
cd $BuildDir
|
# We can only use named refs, like branches and tags, that exist in
|
||||||
|
# both the llvm-project and test-suite repos if we want to run the
|
||||||
|
# test suite.
|
||||||
|
# If the test-suite fails to download assume we are using a ref that
|
||||||
|
# doesn't exist in the test suite and disable it.
|
||||||
|
set +e
|
||||||
|
curl -L https://github.com/llvm/test-suite/archive/$git_ref.tar.gz | \
|
||||||
|
tar -C $TestSuiteSrcDir --strip-components=1 -xzf -
|
||||||
|
if [ $? -ne -0 ]; then
|
||||||
|
echo "$git_ref not found in test-suite repo, test-suite disabled."
|
||||||
|
do_test_suite="no"
|
||||||
|
fi
|
||||||
|
set -e
|
||||||
|
fi
|
||||||
|
|
||||||
|
cd $BuildDir
|
||||||
}
|
}
|
||||||
|
|
||||||
function configure_llvmCore() {
|
function configure_llvmCore() {
|
||||||
@ -369,6 +358,7 @@ function configure_llvmCore() {
|
|||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
|
|
||||||
|
project_list=${projects// /;}
|
||||||
echo "# Using C compiler: $c_compiler"
|
echo "# Using C compiler: $c_compiler"
|
||||||
echo "# Using C++ compiler: $cxx_compiler"
|
echo "# Using C++ compiler: $cxx_compiler"
|
||||||
|
|
||||||
@ -378,12 +368,14 @@ function configure_llvmCore() {
|
|||||||
echo "#" env CC="$c_compiler" CXX="$cxx_compiler" \
|
echo "#" env CC="$c_compiler" CXX="$cxx_compiler" \
|
||||||
cmake -G "$generator" \
|
cmake -G "$generator" \
|
||||||
-DCMAKE_BUILD_TYPE=$BuildType -DLLVM_ENABLE_ASSERTIONS=$Assertions \
|
-DCMAKE_BUILD_TYPE=$BuildType -DLLVM_ENABLE_ASSERTIONS=$Assertions \
|
||||||
$ExtraConfigureFlags $BuildDir/llvm.src \
|
-DLLVM_ENABLE_PROJECTS="$project_list" \
|
||||||
|
$ExtraConfigureFlags $BuildDir/llvm-project/llvm \
|
||||||
2>&1 | tee $LogDir/llvm.configure-Phase$Phase-$Flavor.log
|
2>&1 | tee $LogDir/llvm.configure-Phase$Phase-$Flavor.log
|
||||||
env CC="$c_compiler" CXX="$cxx_compiler" \
|
env CC="$c_compiler" CXX="$cxx_compiler" \
|
||||||
cmake -G "$generator" \
|
cmake -G "$generator" \
|
||||||
-DCMAKE_BUILD_TYPE=$BuildType -DLLVM_ENABLE_ASSERTIONS=$Assertions \
|
-DCMAKE_BUILD_TYPE=$BuildType -DLLVM_ENABLE_ASSERTIONS=$Assertions \
|
||||||
$ExtraConfigureFlags $BuildDir/llvm.src \
|
-DLLVM_ENABLE_PROJECTS="$project_list" \
|
||||||
|
$ExtraConfigureFlags $BuildDir/llvm-project/llvm \
|
||||||
2>&1 | tee $LogDir/llvm.configure-Phase$Phase-$Flavor.log
|
2>&1 | tee $LogDir/llvm.configure-Phase$Phase-$Flavor.log
|
||||||
|
|
||||||
cd $BuildDir
|
cd $BuildDir
|
||||||
@ -494,10 +486,10 @@ if [ $do_test_suite = "yes" ]; then
|
|||||||
SandboxDir="$BuildDir/sandbox"
|
SandboxDir="$BuildDir/sandbox"
|
||||||
Lit=$SandboxDir/bin/lit
|
Lit=$SandboxDir/bin/lit
|
||||||
TestSuiteBuildDir="$BuildDir/test-suite-build"
|
TestSuiteBuildDir="$BuildDir/test-suite-build"
|
||||||
TestSuiteSrcDir="$BuildDir/test-suite.src"
|
TestSuiteSrcDir="$BuildDir/llvm-test-suite"
|
||||||
|
|
||||||
virtualenv $SandboxDir
|
virtualenv $SandboxDir
|
||||||
$SandboxDir/bin/python $BuildDir/llvm.src/utils/lit/setup.py install
|
$SandboxDir/bin/python $BuildDir/llvm-project/llvm/utils/lit/setup.py install
|
||||||
mkdir -p $TestSuiteBuildDir
|
mkdir -p $TestSuiteBuildDir
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user