You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
187 lines
6.3 KiB
Bash
187 lines
6.3 KiB
Bash
#!/bin/bash
|
|
|
|
source $(find . -name buildserver.library 2>/dev/null)
|
|
|
|
echo -------------------------------
|
|
echo PLATFORM = $PLATFORM PWD = $PWD
|
|
if [ "$(osName)" == "mingw" ]; then
|
|
echo "Windows directory (mingw) = " $(pwd -W)
|
|
fi
|
|
if [ "$(osName)" == "cygwin" ]; then
|
|
echo "Windows directory (cygwin) = " $(cygpath -aw .)
|
|
fi
|
|
echo -------------------------------
|
|
|
|
##
|
|
# figure out today's build
|
|
# http://exiv2.dyndns.org:8080/userContent/builds/Daily
|
|
date=$(date '+%Y-%m-%d')
|
|
count=4
|
|
curl='/usr/local/bin/curl --silent --connect-timeout 30 --max-time 40'
|
|
while [ "$count" != "0" ]; do
|
|
if [ "$count" != "0" ]; then echo "*** count = $count ***" ; fi
|
|
build=$($curl "$JENKINS/$DAILY/" \
|
|
|xmllint --html --format - 2>/dev/null | grep $PLATFORM \
|
|
|grep $date | grep -v -e view | cut -d'"' -f 2 | tail -1 )
|
|
if [ "$build" != "" ]; then
|
|
count=0;
|
|
fi
|
|
if [ "$count" != "0" ]; then
|
|
count=$(expr $count - 1)
|
|
fi
|
|
if [ "$count" == "1" ]; then
|
|
echo --------
|
|
echo $curl "$JENKINS/$DAILY/" | xmllint --html --format
|
|
$curl "$JENKINS/$DAILY/" | xmllint --html --format
|
|
echo --------
|
|
fi
|
|
done
|
|
|
|
echo date = $date
|
|
echo url = "$JENKINS/$DAILY/"
|
|
echo build = $build
|
|
|
|
if [ -z "$RECURSIVE" ]; then
|
|
##
|
|
# collect build from server
|
|
if [ -e /tmp/jenkins ]; then
|
|
rm -rf /tmp/jenkins
|
|
fi
|
|
|
|
mkdir /tmp/jenkins
|
|
pushd /tmp/jenkins 2>/dev/null
|
|
echo $curl -O "$JENKINS/$DAILY/$build"
|
|
$curl -O "$JENKINS/$DAILY/$build"
|
|
ls -alt $build
|
|
##
|
|
# expand the bundle
|
|
if [ -e dist ]; then rm -rf dist ;fi
|
|
tar xzf $build
|
|
if [ ! -e dist ]; then echo '*** no dist directory ***' ; exit 0; fi
|
|
popd 2>/dev/null
|
|
fi
|
|
if [ ! -e /tmp/jenkins/dist ]; then echo '*** $build has not been opened in /tmp/jenkins/dist ***' ; exit 0; fi
|
|
|
|
grep_args="-e libexiv2 -e ^date -e ^bits -e ^version -e ^time -e ^platform"
|
|
case $PLATFORM in
|
|
macosx)
|
|
# test the delivered exiv2
|
|
cd /tmp/jenkins/dist
|
|
export DYLD_LIBRARY_PATH="$PWD/$PLATFORM/lib:$DYLD_LIBRARY_PATH"
|
|
$PLATFORM/bin/exiv2 -vV | grep $grep_args
|
|
|
|
# compile, link and test the sample code
|
|
echo ''
|
|
g++ -I$PLATFORM/include -L$PLATFORM/lib samples/exifprint.cpp -lexiv2 -o exifprint
|
|
ls -alt exifprint
|
|
echo ''
|
|
|
|
./exifprint --version | grep $grep_args
|
|
;;
|
|
|
|
linux)
|
|
# test the delivered exiv2
|
|
cd /tmp/jenkins/dist
|
|
export LD_LIBRARY_PATH="$PWD/$PLATFORM/lib:$LD_LIBRARY_PATH"
|
|
$PLATFORM/bin/exiv2 -vV | grep $grep_args
|
|
|
|
# compile, link and test the sample code
|
|
echo ''
|
|
g++ -I$PLATFORM/include -L$PLATFORM/lib samples/exifprint.cpp -lexiv2 -o exifprint
|
|
ls -alt exifprint
|
|
echo ''
|
|
|
|
./exifprint --version | grep $grep_args
|
|
;;
|
|
|
|
cygwin)
|
|
# test the delivered exiv2
|
|
cd /tmp/jenkins/dist
|
|
PATH="$PWD/$PLATFORM/bin:$PATH"
|
|
$PLATFORM/bin/exiv2 -vV | grep $grep_args
|
|
|
|
# compile, link and test the sample code
|
|
echo ''
|
|
g++ -I$PLATFORM/include -L$PLATFORM/lib samples/exifprint.cpp -lexiv2 -o exifprint
|
|
ls -alt exifprint.exe
|
|
echo ''
|
|
|
|
./exifprint --version | grep $grep_args
|
|
;;
|
|
|
|
msvc)
|
|
cd /tmp/jenkins/dist
|
|
for vs in 2005 2008 2010 2012 2013 2015 2017; do
|
|
for arch in x64 Win32; do
|
|
if [ -e "$PWD/$vs/$arch/dll/Release/bin/exiv2.exe" ] ; then (
|
|
# test the delivered exiv2
|
|
PATH="$PWD/$vs/$arch/dll/Release/bin:$PATH"
|
|
exiv2 -vV | grep $grep_args
|
|
|
|
# compile, link and test the sample code
|
|
(
|
|
export PATH="/cygdrive/c/Windows/System32:$PATH"
|
|
echo ''
|
|
a='32'
|
|
if [ $arch == x64 ]; then a=64 ; fi
|
|
echo cmd /c "vcvars.bat $vs $a && cd && cl /EHsc -I$vs\\$arch\\dll\Release\include /MD samples\exifprint.cpp /link $vs\\$arch\dll\\Release\lib\exiv2.lib"
|
|
cmd /c "vcvars.bat $vs $a && cd && cl /EHsc -I$vs\\$arch\\dll\Release\include /MD samples\exifprint.cpp /link $vs\\$arch\dll\\Release\lib\exiv2.lib"
|
|
ls -alt exifprint.exe
|
|
echo ''
|
|
)
|
|
./exifprint.exe --version | grep $grep_args
|
|
) fi
|
|
done
|
|
done
|
|
;;
|
|
|
|
mingwDeprecated)
|
|
if [ ! -z "$RECURSIVE" ]; then
|
|
# test the delivered exiv2
|
|
CD=$PWD # build exifprint from the dist into the current directory
|
|
cd /tmp/jenkins/dist
|
|
PATH="$PWD/$PLATFORM/bin:$PATH"
|
|
echo ''
|
|
echo "ls -alt $PWD/$PLATFORM/bin/libexiv2-14.dll"
|
|
ls -alt $PWD/$PLATFORM/bin/libexiv2-14.dll
|
|
echo ''
|
|
echo "$PWD/$PLATFORM/bin/exiv2.exe -vV | grep $grep_args"
|
|
$PWD/$PLATFORM/bin/exiv2.exe -vV | grep $grep_args
|
|
|
|
# compile, link and test the sample code
|
|
echo ''
|
|
echo g++ -I$PLATFORM/include -L$PLATFORM/lib samples/exifprint.cpp -lexiv2 -o $CD/exifprint
|
|
g++ -I$PLATFORM/include -L$PLATFORM/lib samples/exifprint.cpp -lexiv2 -o $CD/exifprint
|
|
echo "ls -alt $CD/exifprint.exe"
|
|
ls -alt $CD/exifprint.exe
|
|
echo ''
|
|
echo "$CD/exifprint.exe --version | grep $grep_args"
|
|
$CD/exifprint.exe --version | grep $grep_args
|
|
else
|
|
# recursively invoke MinGW/bash with appropriate tool chain
|
|
export RECURSIVE=1
|
|
|
|
export TMP=/tmp
|
|
export TEMP=$TMP
|
|
if [ "$x64" == true ]; then
|
|
export CFLAGS=-m64
|
|
export CXXFLAGS=-m64
|
|
export LDFLAGS=-m64
|
|
/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"
|
|
fi
|
|
if [ "$win32" == true ]; then
|
|
export CFLAGS=-m32
|
|
export CXXFLAGS=-m32
|
|
export LDFLAGS=-m32
|
|
/c/MinGW/msys/1.0/bin/bash.exe -c "export PATH=/c/Qt/Qt5.6.0/5.6/mingw49_32/bin:/c/Qt/Qt5.6.0/Tools/mingw492_32/bin:/c/MinGW/bin:/usr/bin:/usr/local/bin:/c/cygwin64/bin:/c/Users/rmills/com:. ; $0"
|
|
fi
|
|
fi
|
|
;;
|
|
|
|
*) echo unknown platform $platform
|
|
;;
|
|
esac
|
|
|
|
# That's all Folks!
|
|
##
|