#1109. Code polishing and simplification.
This commit is contained in:
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,73 +29,14 @@ mkdir -p $build/dist/logs
|
||||
echo "---- dist = $dist ------"
|
||||
echo "---- build = $build ------"
|
||||
|
||||
##
|
||||
# perform the build
|
||||
(
|
||||
case $PLATFORM in
|
||||
msvc)
|
||||
##
|
||||
# get windows cmd.exe to perform the build
|
||||
# use a subshell to restore the path
|
||||
(
|
||||
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
|
||||
cmd.exe /c "cd $build && vcvars $VS $ARCH && cmakeBuild --rebuild --exiv2=$exiv2 --test $*"
|
||||
done
|
||||
done
|
||||
result=$?
|
||||
cp $msvc/vcvars.bat $build/dist # required by test_daily.sh
|
||||
)
|
||||
;;
|
||||
|
||||
mingw)
|
||||
if [ ! -z "$RECURSIVE" ]; then
|
||||
# we are already in MinGW/bash, so build
|
||||
/usr/local/bin/cmake -DCMAKE_INSTALL_PREFIX=$dist -DEXIV2_ENABLE_NLS=OFF $exiv2
|
||||
else
|
||||
# recursively invoke MinGW/bash with appropriate tool chain
|
||||
export RECURSIVE=1
|
||||
export CFLAGS=-m64
|
||||
export CXXFLAGS=-m64
|
||||
export LDFLAGS=-m64
|
||||
|
||||
export TMP=/tmp
|
||||
export TEMP=$TMP
|
||||
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=$?
|
||||
fi
|
||||
fi
|
||||
;;
|
||||
|
||||
*) pushd $build > /dev/null
|
||||
(
|
||||
# build 64 bit library
|
||||
export CFLAGS=-m64
|
||||
export CXXFLAGS=-m64
|
||||
export LDFLAGS=-m64
|
||||
# Always use /usr/local/bin/cmake
|
||||
# I can guarantee it to be at least 3.4.1
|
||||
# because I built it from source and installed it
|
||||
/usr/local/bin/cmake -DCMAKE_INSTALL_PREFIX=$dist -DEXIV2_ENABLE_NLS=OFF $exiv2
|
||||
make
|
||||
result=$?
|
||||
/usr/local/bin/cmake --build . --target install
|
||||
)
|
||||
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
|
||||
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
|
||||
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
|
||||
@ -146,11 +75,75 @@ if [ "$PLATFORM" != "msvc" ]; then
|
||||
echo ''
|
||||
result=1
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
##
|
||||
# perform the build
|
||||
(
|
||||
case $PLATFORM in
|
||||
msvc)
|
||||
##
|
||||
# get windows cmd.exe to perform the build
|
||||
# use a subshell to restore the path
|
||||
(
|
||||
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 2008 2010 2012 2013 2015; do
|
||||
cmd.exe /c "cd $build && vcvars $VS $ARCH && cmakeBuild --rebuild --exiv2=$exiv2 --test $*"
|
||||
done
|
||||
done
|
||||
result=$?
|
||||
cp $msvc/vcvars.bat $build/dist # required by test_daily.sh
|
||||
)
|
||||
;;
|
||||
|
||||
mingw)
|
||||
if [ ! -z "$RECURSIVE" ]; then
|
||||
# we are already in MinGW/bash, so build
|
||||
/usr/local/bin/cmake -DCMAKE_INSTALL_PREFIX=$dist -DEXIV2_ENABLE_NLS=OFF $exiv2
|
||||
else
|
||||
# recursively invoke MinGW/bash with appropriate tool chain
|
||||
export RECURSIVE=1
|
||||
export CFLAGS=-m64
|
||||
export CXXFLAGS=-m64
|
||||
export LDFLAGS=-m64
|
||||
|
||||
export TMP=/tmp
|
||||
export TEMP=$TMP
|
||||
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
|
||||
;;
|
||||
|
||||
*) pushd $build > /dev/null
|
||||
(
|
||||
# build 64 bit library
|
||||
export CFLAGS=-m64
|
||||
export CXXFLAGS=-m64
|
||||
export LDFLAGS=-m64
|
||||
# Always use /usr/local/bin/cmake
|
||||
# I can guarantee it to be at least 3.4.1
|
||||
# because I built it from source and installed it
|
||||
/usr/local/bin/cmake -DCMAKE_INSTALL_PREFIX=$dist -DEXIV2_ENABLE_NLS=OFF $exiv2
|
||||
make
|
||||
result=$?
|
||||
/usr/local/bin/cmake --build . --target install
|
||||
testBuild
|
||||
)
|
||||
popd > /dev/null
|
||||
;;
|
||||
esac
|
||||
) | tee "$build/dist/logs/build.log"
|
||||
|
||||
##
|
||||
# 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…
Reference in New Issue
Block a user