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.
200 lines
6.2 KiB
Batchfile
200 lines
6.2 KiB
Batchfile
@echo off
|
|
|
|
rem --
|
|
rem
|
|
rem build exiv2 library from Jenkins (or the command-line)
|
|
rem
|
|
rem --
|
|
|
|
rem --
|
|
rem set up defaults for undefined variables used by this script
|
|
if NOT DEFINED ACTION set ACTION=/build
|
|
if NOT DEFINED COMPILER set COMPILER=G++
|
|
if NOT DEFINED BuildEnv set BuildEnv=native
|
|
if NOT DEFINED Builder set Builder=2005
|
|
|
|
if NOT DEFINED release set release=false
|
|
if NOT DEFINED debug set debug=false
|
|
if NOT DEFINED static set static=false
|
|
if NOT DEFINED dll set dll=false
|
|
if NOT DEFINED x64 set x64=false
|
|
if NOT DEFINED Win32 set Win32=false
|
|
|
|
if NOT DEFINED tests set tests=false
|
|
if NOT DEFINED teste set teste=false
|
|
if NOT DEFINED testv set testv=false
|
|
if NOT DEFINED testr set testr=false
|
|
|
|
if NOT DEFINED expat set expat=true
|
|
if NOT DEFINED zlib set zlib=true
|
|
if NOT DEFINED curl set curl=false
|
|
if NOT DEFINED libssh set libssh=false
|
|
if NOT DEFINED openssl set openssl=false
|
|
if %openssl%==true set curl=true
|
|
|
|
if %ACTION%==/clean set tests=false
|
|
if %ACTION%==/upgrade set tests=false
|
|
|
|
rem --
|
|
rem init the build environment for the builder
|
|
rem currently, only 2003 (32 bit) and 2005 (32 and 64 bit) are supported
|
|
rem adding additional MSVC compilers (2008, 2010, 2012, etc) should be simple
|
|
rem and has not been done for expediency
|
|
rem should only require:
|
|
rem 1 Invoke the appropriate vsvars32.bat script
|
|
rem 2 Run devenv/upgrade
|
|
rem 3 set Builder=2005
|
|
rem and all should be good
|
|
set BGOOD=0
|
|
if %Builder%==2003 (
|
|
set x64=false
|
|
set Win32=true
|
|
set curl=false
|
|
set openssl=false
|
|
set libssh=false
|
|
call "C:\Program Files (x86)\Microsoft Visual Studio .NET 2003\Common7\Tools\vsvars32.bat"
|
|
pushd msvc2003
|
|
set BGOOD=1
|
|
)
|
|
|
|
if %Builder%==2005 (
|
|
call "C:\Program Files (x86)\Microsoft Visual Studio 8\Common7\Tools\vsvars32.bat"
|
|
pushd msvc
|
|
set BGOOD=1
|
|
)
|
|
|
|
rem --
|
|
rem check we have a good builder
|
|
rem we could test label and msvc
|
|
rem if NOT %label%==MSVC exit/b 1
|
|
rem if NOT %msvc%==true exit/b 1
|
|
if %BGOOD%==0 (
|
|
echo "MSVC Builder %Builder% is not supported"
|
|
exit/b 1
|
|
)
|
|
|
|
rem --
|
|
rem FOO is the current directory in cygwin (/cygdrive/c/users/shared/workspace/exiv2-trunk/label/msvc)
|
|
rem we need this to set the correct directory when we run the test suite from Cygwin
|
|
for /f "tokens=*" %%a in ('cygpath -au ..') do set FOO=%%a
|
|
|
|
rem --
|
|
rem copy external library code and other files appropriate for the build requested
|
|
copy exiv2.sln e.sln
|
|
call copylibs.bat
|
|
|
|
set webready=false
|
|
if %curl% == true if %libssh% == true if %openssl% == true set webready=true
|
|
if %webready% == true (
|
|
copy/y exiv2-webready.sln e.sln
|
|
copy/y ..\include\exiv2\exv_msvc-webready.h ..\include\exiv2\exv_msvc.h
|
|
)
|
|
|
|
rem --
|
|
rem let the user know what's going on!
|
|
echo ------- from jenkins_build.bat ------------
|
|
set PATH=c:\perl64\bin;%PATH%
|
|
set | sort
|
|
perl --version
|
|
|
|
rem --
|
|
rem Now build and test
|
|
|
|
if %Win32%==true (
|
|
if %debug%==true (
|
|
if %static%==true (
|
|
if %Builder%==2003 (
|
|
devenv e.sln %ACTION% "Debug"
|
|
if NOT ERRORLEVEL 1 if %tests%==true call bash -c 'cd %FOO%;cd test;./testMSVC.sh ../msvc2003/bin/Debug'
|
|
)
|
|
if %Builder%==2005 (
|
|
devenv e.sln %ACTION% "Debug|Win32"
|
|
if NOT ERRORLEVEL 1 if %tests%==true call bash -c 'cd %FOO%;cd test;./testMSVC.sh ../msvc/bin/win32/Debug'
|
|
)
|
|
) ) )
|
|
|
|
if %Win32%==true (
|
|
if %release%==true (
|
|
if %static%==true (
|
|
if %Builder%==2003 (
|
|
devenv e.sln %ACTION% "Release"
|
|
if NOT ERRORLEVEL 1 if %tests%==true call bash -c 'cd %FOO%;cd test;./testMSVC.sh ../msvc2003/bin/Release'
|
|
)
|
|
if %Builder%==2005 (
|
|
devenv e.sln %ACTION% "Release|Win32"
|
|
if NOT ERRORLEVEL 1 if %tests%==true call bash -c 'cd %FOO%;cd test;./testMSVC.sh ../msvc/bin/win32/Release'
|
|
)
|
|
) ) )
|
|
|
|
if %Win32%==true (
|
|
if %debug%==true (
|
|
if %dll%==true (
|
|
if %Builder%==2003 (
|
|
devenv e.sln %ACTION% "DebugDLL"
|
|
if NOT ERRORLEVEL 1 if %tests%==true call bash -c 'cd %FOO%;cd test;./testMSVC.sh ../msvc2003/bin/DebugDLL'
|
|
)
|
|
if %Builder%==2005 (
|
|
devenv e.sln %ACTION% "DebugDLL|Win32"
|
|
if NOT ERRORLEVEL 1 if %tests%==true call bash -c 'cd %FOO%;cd test;./testMSVC.sh ../msvc/bin/win32/DebugDLL'
|
|
)
|
|
) ) )
|
|
|
|
if %Win32%==true (
|
|
if %release%==true (
|
|
if %dll%==true (
|
|
if %Builder%==2003 (
|
|
devenv e.sln %ACTION% "ReleaseDLL"
|
|
if NOT ERRORLEVEL 1 if %tests%==true call bash -c 'cd %FOO%;cd test;./testMSVC.sh ../msvc2003/bin/ReleaseDLL'
|
|
)
|
|
if %Builder%==2005 (
|
|
devenv e.sln %ACTION% "ReleaseDLL|Win32"
|
|
if NOT ERRORLEVEL 1 if %tests%==true call bash -c 'cd %FOO%;cd test;./testMSVC.sh ../msvc/bin/win32/ReleaseDLL'
|
|
)
|
|
) ) )
|
|
|
|
if %x64%==true (
|
|
if %debug%==true (
|
|
if %static%==true (
|
|
devenv e.sln %ACTION% "Debug|x64"
|
|
if NOT ERRORLEVEL 1 if %tests%==true call bash -c 'cd %FOO%;cd test;./testMSVC.sh ../msvc/bin/x64/Debug'
|
|
) ) )
|
|
|
|
if %x64%==true (
|
|
if %release%==true (
|
|
if %static%==true (
|
|
devenv e.sln %ACTION% "Release|x64"
|
|
if NOT ERRORLEVEL 1 if %tests%==true call bash -c 'cd %FOO%;cd test;./testMSVC.sh ../msvc/bin/x64/Release'
|
|
) ) )
|
|
|
|
if %x64%==true (
|
|
if %debug%==true (
|
|
if %dll%==true (
|
|
devenv e.sln %ACTION% "DebugDLL|x64"
|
|
if NOT ERRORLEVEL 1 if %tests%==true call bash -c 'cd %FOO%;cd test;./testMSVC.sh ../msvc/bin/x64/DebugDLL'
|
|
) ) )
|
|
|
|
if %x64%==true (
|
|
if %release%==true (
|
|
if %dll%==true (
|
|
devenv e.sln %ACTION% "ReleaseDLL|x64"
|
|
if NOT ERRORLEVEL 1 if %tests%==true call bash -c 'cd %FOO%;cd test;./testMSVC.sh ../msvc/bin/x64/ReleaseDLL'
|
|
) ) )
|
|
|
|
rem --
|
|
rem cleanup time
|
|
del e.sln
|
|
popd
|
|
|
|
rem --
|
|
rem delete support libraries (with mozilla's native rm utility)
|
|
if %Builder%==2003 msvc\tools\bin\rm.exe -rf ..\expat-2.0.1 ..\zlib-1.2.3
|
|
if %Builder%==2005 msvc\tools\bin\rm.exe -rf ..\expat ..\zlib ..\openssl ..\libssh ..\curl
|
|
if %Builder%==2005 if EXIST openssl (
|
|
cd ..
|
|
cygwin64\bin\rm.exe -rf openssl
|
|
cd msvc
|
|
)
|
|
|
|
rem That's all Folks!
|
|
rem -----------------
|