#1109. Code polishing and simplification.

v0.27.3
Robin Mills 10 years ago
parent 17949ddf16
commit 24319d19f1

@ -5,15 +5,6 @@
##
source $(find . -name buildserver.library)
##
# configure the build (only used for msvc builds)
#arch=x64
#mode=dll
#config=Release
#vs=2013
result=0
##
# determine location of the build and source directories
if [ "$PLATFORM" == "msvc" ]; then
@ -21,14 +12,11 @@ if [ "$PLATFORM" == "msvc" ]; then
build=$(cygpath -aw ./build)
dist=$(cygpath -au ./build/dist/)
msvc=$(cygpath -au ./contrib/cmake/msvc)
exe=.exe
bin=''
else
exiv2=$PWD
build=$PWD/build
dist=$PWD/build/dist/$PLATFORM
exe=''
bin=bin
if [ -e $exiv2/CMakeCache.txt ]; then rm -rf $exiv2/CMakeCache.txt ; fi
fi
@ -41,6 +29,54 @@ mkdir -p $build/dist/logs
echo "---- dist = $dist ------"
echo "---- build = $build ------"
##
# test the build (don't test msvc because it was tested by cmakeBuild)
testBuild()
{
if [ -e $dist/bin/exiv2 ]; then
pushd test > /dev/null
# EXIV2_BINDIR is used by the test suite to locate executables
export EXIV2_BINDIR=$dist/bin
# set LD_LIBRARY_PATH (and DYLD_LIBRARY_PATH for macosx)
# to be sure we run the tests with the newly built library
export DYLD_LIBRARY_PATH=$dist/lib
export LD_LIBRARY_PATH=$dist/lib
(
for test in addmoddel.sh \
bugfixes-test.sh \
exifdata-test.sh \
exiv2-test.sh \
imagetest.sh \
iotest.sh \
iptctest.sh \
modify-test.sh \
path-test.sh \
preview-test.sh \
stringto-test.sh \
tiff-test.sh \
write-test.sh \
write2-test.sh \
xmpparser-test.sh \
conversions.sh
do
echo '++' $test '++' ; ./$test
done
) | tee "$build/dist/logs/test.log"
popd > /dev/null
$EXIV2_BINDIR/exiv2 -vV
ls -alt $EXIV2_BINDIR
$EXIV2_BINDIR/exiv2 -vV -g date -g time -g version
ls -alt $EXIV2_BINDIR/exiv2$exe
else
echo ''
echo '**** no build created ****'
echo ''
result=1
fi
}
##
# perform the build
(
@ -53,7 +89,7 @@ echo "---- build = $build ------"
PATH="$msvc:/cygdrive/c/Program Files/csvn/bin:/cygdrive/c/Program Files (x86)/WANdisco/Subversion/csvn/bin:/cygdrive/c/Program Files/7-zip:/cygdrive/c/Program Files (x86)/cmake/bin:$PATH:/cygdrive/c/Windows/System32"
# cmd.exe /c "cd $build && vcvars $vs $arch && cmakeBuild --rebuild --exiv2=$exiv2 $*"
for ARCH in x64 Win32; do
for VS in 2005 ; do # 2008 2010 2012 2013 2015; do
for VS in 2005 2008 2010 2012 2013 2015; do
cmd.exe /c "cd $build && vcvars $VS $ARCH && cmakeBuild --rebuild --exiv2=$exiv2 --test $*"
done
done
@ -78,6 +114,9 @@ echo "---- build = $build ------"
if [ "$x64" == true ]; then
/cygdrive/c/MinGW64/msys/1.0/bin/bash.exe -c "export PATH=/c/TDM-GCC-64/bin:/c/MinGW64/bin:/c/MinGW64/msys/1.0/bin:/c/MinGW64/msys/1.0/local/bin; $0"
result=$?
if [ "$result" == "0" ]; then
testBuild
fi
fi
fi
;;
@ -95,62 +134,16 @@ echo "---- build = $build ------"
make
result=$?
/usr/local/bin/cmake --build . --target install
testBuild
)
popd > /dev/null
;;
esac
) | tee "$build/dist/logs/build.log"
##
# test the build (don't test msvc because it was tested by cmakeBuild)
if [ "$PLATFORM" != "msvc" ]; then
if [ -e $dist/$bin/exiv2$exe ]; then
pushd test > /dev/null
# EXIV2_BINDIR is used by the test suite to locate executables
export EXIV2_BINDIR=$dist/$bin
# set LD_LIBRARY_PATH (and DYLD_LIBRARY_PATH for macosx)
# to be sure we run the tests with the newly built library
export DYLD_LIBRARY_PATH=$dist/lib
export LD_LIBRARY_PATH=$dist/lib
(
for test in addmoddel.sh \
bugfixes-test.sh \
exifdata-test.sh \
exiv2-test.sh \
imagetest.sh \
iotest.sh \
iptctest.sh \
modify-test.sh \
path-test.sh \
preview-test.sh \
stringto-test.sh \
tiff-test.sh \
write-test.sh \
write2-test.sh \
xmpparser-test.sh \
conversions.sh
do
echo '++' $test '++' ; ./$test
done
) | tee "$build/dist/logs/test.log"
popd > /dev/null
$EXIV2_BINDIR/exiv2 -vV
ls -alt $EXIV2_BINDIR
$EXIV2_BINDIR/exiv2 -vV -g date -g time -g version
ls -alt $EXIV2_BINDIR/exiv2$exe
else
echo ''
echo '**** no build created ****'
echo ''
result=1
fi
fi
##
# store the build for users to collect
if [ $result == "0" ]; then
if [ "$result" == "0" ]; then
case $PLATFORM in
linux) mmHD=/media/psf/Host ;;
msvc|cygwin|mingw) mmHD="//psf/Host/" ;;
@ -168,24 +161,29 @@ if [ $result == "0" ]; then
if [ ! -e $monly ]; then mkdir -p $monly ; fi
if [ -e $jpubl ]; then
svn=0
/usr/local/bin/svn info . 2>/dev/null >/dev/null
if [ "$?" == "0" ]; then
svn=$(/usr/local/bin/svn info . | grep Revision | cut -d' ' -f 2)
# svn=$($EXIV2_BINDIR/exiv2$exe -vV | grep -e ^svn | cut -d= -f 2)
fi
dow=$(date '+%w') # 0..6 day of the week
dom=$(date '+%d') # 1..31 day of the month
mon=$(date '+%m') # 1..12 month
date=$(date '+%Y-%m-%d+%H-%M-%S')
svn=$($EXIV2_BINDIR/exiv2$exe -vV | grep -e ^svn | cut -d= -f 2)
b="${PLATFORM}-svn-${svn}-date-${date}.tar.gz"
dat=$(date '+%Y-%m-%d+%H-%M-%S')
zip="${PLATFORM}-svn-${svn}-date-${dat}.tar.gz"
# add documentation and samples to dist
cat contrib/buildserver/dailyReadMe.txt | sed -E -e "s/__BUILD__/$b/" > "$build/dist/ReadMe.txt"
cat contrib/buildserver/dailyReadMe.txt | sed -E -e "s/__BUILD__/$zip/" > "$build/dist/ReadMe.txt"
mkdir -p "$build/dist/samples/"
cp samples/exifprint.cpp "$build/dist/samples/"
# create the bundle
pushd "$build" > /dev/null
rm -rf *.tar.gz
tar czf "$b" dist/
tar czf "$zip" dist/
ls -alt
mv $b ..
mv $zip ..
popd > /dev/null
# clean userContent/build directories
@ -195,11 +193,11 @@ if [ $result == "0" ]; then
if [ -e $monly ]; then find $monly -type f -ctime $((366 * 5)) -exec rm -rf {} \; ; fi
# store the build
cp $b $daily
if [ "$dow" == "1" ]; then cp $b $weely; fi # Monday
if [ "$dom" == "1" ]; then cp $b $monly; fi # First day of the month
cp $zip $daily
if [ "$dow" == "1" ]; then cp $zip $weely; fi # Monday
if [ "$dom" == "1" ]; then cp $zip $monly; fi # First day of the month
echo '***' build = $b '***'
echo '***' build = $zip '***'
else
echo '***' jenkins builds directory does not exist ${jpubl} '***'
result=2

Loading…
Cancel
Save