Let test-release.sh checkout subprojects directly into the target tree,

instead of using symlinks

Summary:
In the past I have run into several problems with the way
`test-release.sh` creates all the subproject directories as siblings,
and then uses symlinks to stitch them all together.  In some scenarios
this leads to clang not being able to find header files, etc.

This patch changes the script so it directly exports into the correct
target locations for each subproject.

Reviewers: hans

Subscribers: emaste, llvm-commits

Differential Revision: http://reviews.llvm.org/D16420

llvm-svn: 258436
This commit is contained in:
Dimitry Andric 2016-01-21 21:57:49 +00:00
parent 28ea778709
commit f7c9b6312a

View File

@ -267,56 +267,36 @@ function export_sources() {
check_valid_urls
for proj in $projects ; do
if [ -d $proj.src ]; then
echo "# Reusing $proj $Release-$RC sources"
case $proj in
llvm)
projsrc=$proj.src
;;
cfe)
projsrc=llvm.src/tools/clang
;;
clang-tools-extra)
projsrc=llvm.src/tools/clang/tools/extra
;;
compiler-rt|libcxx|libcxxabi|libunwind|openmp|test-suite)
projsrc=llvm.src/projects/$proj
;;
*)
echo "error: unknown project $proj"
exit 1
;;
esac
if [ -d $projsrc ]; then
echo "# Reusing $proj $Release-$RC sources in $projsrc"
continue
fi
echo "# Exporting $proj $Release-$RC sources"
if ! svn export -q $Base_url/$proj/$ExportBranch $proj.src ; then
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
echo "# Creating symlinks"
cd $BuildDir/llvm.src/tools
if [ ! -h clang ]; then
ln -s ../../cfe.src clang
fi
# The autoconf and CMake builds want different symlinks here:
if [ "$use_autoconf" = "yes" ]; then
cd $BuildDir/llvm.src/tools/clang/tools
if [ ! -h extra ]; then
ln -s ../../../../clang-tools-extra.src extra
fi
else
cd $BuildDir/cfe.src/tools
if [ ! -h extra ]; then
ln -s ../../clang-tools-extra.src extra
fi
fi
cd $BuildDir/llvm.src/projects
if [ -d $BuildDir/test-suite.src ] && [ ! -h test-suite ]; then
ln -s ../../test-suite.src test-suite
fi
if [ -d $BuildDir/compiler-rt.src ] && [ ! -h compiler-rt ]; then
ln -s ../../compiler-rt.src compiler-rt
fi
if [ -d $BuildDir/openmp.src ] && [ ! -h openmp ]; then
ln -s ../../openmp.src openmp
fi
if [ -d $BuildDir/libcxx.src ] && [ ! -h libcxx ]; then
ln -s ../../libcxx.src libcxx
fi
if [ -d $BuildDir/libcxxabi.src ] && [ ! -h libcxxabi ]; then
ln -s ../../libcxxabi.src libcxxabi
fi
if [ -d $BuildDir/libunwind.src ] && [ ! -h libunwind ]; then
ln -s ../../libunwind.src libunwind
fi
cd $BuildDir
}