summaryrefslogtreecommitdiff
path: root/build
diff options
context:
space:
mode:
authorMario Emmenlauer <memmenlauer@biodataanalysis.de>2021-08-05 17:10:09 +0200
committerMario Emmenlauer <memmenlauer@biodataanalysis.de>2021-08-11 19:25:54 +0200
commitce64880dd88a2692e85131986263ff7c7708d8d3 (patch)
tree7544cab1d02f61c079b9e544e40b4b609461d685 /build
parent166786eea8243b3bae90ffc2a5a60bd121fb22e2 (diff)
downloadthrift-ce64880dd88a2692e85131986263ff7c7708d8d3.tar.gz
AppVeyor: larger updates in build configuration and documentation
Diffstat (limited to 'build')
-rw-r--r--build/appveyor/CYGW-appveyor-install.bat13
-rw-r--r--build/appveyor/MSVC-appveyor-build.bat32
-rw-r--r--build/appveyor/MSVC-appveyor-test.bat10
-rw-r--r--build/appveyor/MSYS-appveyor-test.bat2
-rw-r--r--build/appveyor/README.md20
-rw-r--r--build/appveyor/win_setcompiler.bat2
-rw-r--r--build/appveyor/win_setenv.bat94
-rw-r--r--build/appveyor/win_setgenerator.bat41
8 files changed, 94 insertions, 120 deletions
diff --git a/build/appveyor/CYGW-appveyor-install.bat b/build/appveyor/CYGW-appveyor-install.bat
index c30ccfc40..9971c8ed0 100644
--- a/build/appveyor/CYGW-appveyor-install.bat
+++ b/build/appveyor/CYGW-appveyor-install.bat
@@ -26,15 +26,10 @@ CALL win_setenv.bat || EXIT /B
CALL win_showenv.bat || EXIT /B
::
-:: Upgrades cygwin to the latest, if you want...
+:: Install apt-cyg for package management because its easier to use
+:: than Cygwins setup.exe. But both are possible to use.
::
-:: appveyor DownloadFile "https://cygwin.com/setup-x86_64.exe"
-:: setup-x86_64.exe --quiet-mode --wait --upgrade-also --packages="gcc-g++"
-::
-:: Install apt-cyg for package management
-::
-
-%BASH% -lc "wget rawgit.com/transcode-open/apt-cyg/master/apt-cyg && install apt-cyg /bin && rm -f apt-cyg" || EXIT /B
+%BASH% -lc "wget https://rawgit.com/transcode-open/apt-cyg/master/apt-cyg && install apt-cyg /bin && rm -f apt-cyg" || EXIT /B
%BASH% -lc "apt-cyg update" || EXIT /B
-%BASH% -lc "apt-cyg install bison cmake flex gcc-g++ libboost-devel libevent-devel make openssl-devel xz zlib-devel" || EXIT /B
+%BASH% -lc "apt-cyg install unzip xz cmake make bison flex gcc-g++ libboost-devel libevent-devel openssl-devel zlib-devel" || EXIT /B
diff --git a/build/appveyor/MSVC-appveyor-build.bat b/build/appveyor/MSVC-appveyor-build.bat
index e0fc5ed60..69383f2a9 100644
--- a/build/appveyor/MSVC-appveyor-build.bat
+++ b/build/appveyor/MSVC-appveyor-build.bat
@@ -37,23 +37,23 @@ CD "%BUILDDIR%" || EXIT /B
:: DIR C:\Libraries\boost_1_60_0\lib*
@ECHO ON
- cmake "%SRCDIR%" ^
- -G"%GENERATOR%" ^
- -DBISON_EXECUTABLE=C:\ProgramData\chocolatey\lib\winflexbison3\tools\win_bison.exe ^
- -DBOOST_ROOT="%BOOST_ROOT%" ^
- -DBOOST_LIBRARYDIR="%BOOST_LIBRARYDIR%" ^
- -DBUILD_SHARED_LIBS="%BUILD_SHARED_LIBS%" ^
- -DCMAKE_BUILD_TYPE="%CONFIGURATION%" ^
- -DCMAKE_INSTALL_PREFIX="%INSTDIR%" ^
- -DFLEX_EXECUTABLE=C:\ProgramData\chocolatey\lib\winflexbison3\tools\win_flex.exe ^
- -DLIBEVENT_ROOT="%WIN3P%\libevent-%LIBEVENT_VERSION%-stable" ^
- -DOPENSSL_ROOT_DIR="%OPENSSL_ROOT%" ^
- -DOPENSSL_USE_STATIC_LIBS=OFF ^
- -DZLIB_LIBRARY="%WIN3P%\zlib-inst\lib\zlib%ZLIB_LIB_SUFFIX%.lib" ^
- -DZLIB_ROOT="%WIN3P%\zlib-inst" ^
- -DWITH_PYTHON=%WITH_PYTHON% || EXIT /B
+cmake "%SRCDIR%" ^
+ -G"%GENERATOR%" ^
+ -DBISON_EXECUTABLE="C:\ProgramData\chocolatey\lib\winflexbison3\tools\win_bison.exe" ^
+ -DBOOST_ROOT="%BOOST_ROOT%" ^
+ -DBOOST_LIBRARYDIR="%BOOST_LIBRARYDIR%" ^
+ -DBUILD_SHARED_LIBS="%BUILD_SHARED_LIBS%" ^
+ -DCMAKE_BUILD_TYPE="%CONFIGURATION%" ^
+ -DCMAKE_INSTALL_PREFIX="%INSTDIR%" ^
+ -DFLEX_EXECUTABLE="C:\ProgramData\chocolatey\lib\winflexbison3\tools\win_flex.exe" ^
+ -DLIBEVENT_ROOT="%WIN3P%\libevent-%LIBEVENT_VERSION%-stable" ^
+ -DOPENSSL_ROOT_DIR="%OPENSSL_ROOT%" ^
+ -DOPENSSL_USE_STATIC_LIBS=OFF ^
+ -DZLIB_LIBRARY="%WIN3P%\zlib-inst\lib\zlib%ZLIB_LIB_SUFFIX%.lib" ^
+ -DZLIB_ROOT="%WIN3P%\zlib-inst" ^
+ -DWITH_PYTHON=%WITH_PYTHON% || EXIT /B
@ECHO OFF
cmake --build . ^
--config "%CONFIGURATION%" ^
- --target INSTALL || EXIT /B
+ --target install || EXIT /B
diff --git a/build/appveyor/MSVC-appveyor-test.bat b/build/appveyor/MSVC-appveyor-test.bat
index 39a10f89f..654ba5ec9 100644
--- a/build/appveyor/MSVC-appveyor-test.bat
+++ b/build/appveyor/MSVC-appveyor-test.bat
@@ -14,19 +14,13 @@
@ECHO ON
SETLOCAL EnableDelayedExpansion
+
CD build\appveyor || EXIT /B
CALL win_banner_test.bat || EXIT /B
CALL win_setenv.bat || EXIT /B
-CD "%BUILDDIR%" || EXIT /B
-
-DIR C:\libraries
-DIR C:\libraries\boost_1_59_0
-DIR C:\libraries\boost_1_60_0
-DIR C:\libraries\boost_1_62_0
-DIR C:\libraries\boost_1_63_0
-DIR C:\libraries\boost_1_64_0
:: Add directories to the path to find DLLs of third party libraries so tests run properly!
SET PATH=%BOOST_LIBRARYDIR:/=\%;%OPENSSL_ROOT%\bin;%WIN3P%\zlib-inst\bin;%PATH%
+CD "%BUILDDIR%" || EXIT /B
ctest -C %CONFIGURATION% --timeout 300 -VV -E "(%DISABLED_TESTS%)" || EXIT /B
diff --git a/build/appveyor/MSYS-appveyor-test.bat b/build/appveyor/MSYS-appveyor-test.bat
index 0cc3f76d3..cbe39bec4 100644
--- a/build/appveyor/MSYS-appveyor-test.bat
+++ b/build/appveyor/MSYS-appveyor-test.bat
@@ -18,9 +18,9 @@ SETLOCAL EnableDelayedExpansion
CD build\appveyor || EXIT /B
CALL win_banner_test.bat || EXIT /B
CALL win_setenv.bat || EXIT /B
-CD "%BUILDDIR%" || EXIT /B
:: randomly fails on mingw; see Jira THRIFT-4106
SET DISABLED_TESTS=concurrency_test
+CD "%BUILDDIR%" || EXIT /B
%BASH% -lc "cd %BUILDDIR_MSYS% && ctest.exe -C %CONFIGURATION% --timeout 300 -VV -E '(%DISABLED_TESTS%)'" || EXIT /B
diff --git a/build/appveyor/README.md b/build/appveyor/README.md
index 1a2aa306b..a3d30716f 100644
--- a/build/appveyor/README.md
+++ b/build/appveyor/README.md
@@ -12,23 +12,9 @@ See the License for the specific language governing permissions and
limitations under the License.
-->
-# Appveyor Build
+# AppVeyor Build
-Appveyor is capable of building MSVC 2010 through 2015 as well as
-having the latest MSYS2/MinGW 64-bit environment. It has many versions
-of boost and python installed as well. See what appveyor has
+AppVeyor is capable of building MSVC as well as MSYS2, MinGW and Cygwin builds targeting the MS Windows platform. It has many versions of boost and python installed as well. See what appveyor has
[installed on build workers](https://www.appveyor.com/docs/installed-software/).
-We run a matrix build on Appveyor and build the following combinations:
-
-* MinGW x64 (gcc 6.3.0)
-* MSVC 2010 x86, an older boost, an older python
-* MSVC 2015 x86/x64, the latest boost, the latest python
-* MSYS2 x64 (gcc 6.3.0) - this is a work in progress
-
-The Appveyor script takes the first four letters from the PROFILE specified in
-the environment stanza and runs these scripts in order:
-
-????-appveyor-install.bat will install third party libraries and set up the environment
-????-appveyor-build.bat will build with cmake
-????-appveyor-test.bat will run ctest
+We run a matrix build on AppVeyor. See appveyor.yml for more details.
diff --git a/build/appveyor/win_setcompiler.bat b/build/appveyor/win_setcompiler.bat
index 733ffc538..a3eb90cd0 100644
--- a/build/appveyor/win_setcompiler.bat
+++ b/build/appveyor/win_setcompiler.bat
@@ -48,6 +48,8 @@ IF NOT "%PROFILE:~0,4%" == "MSVC" (
IF !ERRORLEVEL! == 0 (SET COMPILER=vc140)
CALL :CHECK 19.1
IF !ERRORLEVEL! == 0 (SET COMPILER=vc141)
+ CALL :CHECK 19.2
+ IF !ERRORLEVEL! == 0 (SET COMPILER=vc142)
)
IF NOT DEFINED COMPILER (
diff --git a/build/appveyor/win_setenv.bat b/build/appveyor/win_setenv.bat
index 212ddf57b..b250e6b01 100644
--- a/build/appveyor/win_setenv.bat
+++ b/build/appveyor/win_setenv.bat
@@ -14,14 +14,39 @@
@ECHO OFF
-IF "%PROFILE%" == "MSVC2012" (
- CALL "C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\vcvarsall.bat" %PLATFORM%
-) ELSE IF "%PROFILE%" == "MSVC2013" (
- CALL "C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\vcvarsall.bat" %PLATFORM%
-) ELSE IF "%PROFILE%" == "MSVC2015" (
- CALL "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" %PLATFORM%
+:: PLATFORM is x86 or x64
+:: NORM_PLATFORM is 32 or 64
+:: MSVCPLAT is x86 or amd64
+IF "%PLATFORM%" == "x86" (
+ SET NORM_PLATFORM=32
+) ELSE (
+ SET NORM_PLATFORM=64
+)
+IF "%PLATFORM%" == "x86" (
+ SET MSVCPLAT=x86
+) ELSE (
+ SET MSVCPLAT=amd64
+)
+
+IF "%PROFILE%" == "MSVC2015" (
+ IF "%PLATFORM%" == "x86" (
+ CALL "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" x86 || EXIT /B
+ ) ELSE (
+ CALL "C:\Program Files\Microsoft SDKs\Windows\v7.1\Bin\SetEnv.cmd" /x64 || EXIT /B
+ CALL "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" x86_amd64 || EXIT /B
+ )
) ELSE IF "%PROFILE%" == "MSVC2017" (
- CALL :SETUPNEWERMSVC || EXIT /B
+ IF "%PLATFORM%" == "x86" (
+ CALL "C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Auxiliary\Build\vcvars32.bat" || EXIT /B
+ ) ELSE (
+ CALL "C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Auxiliary\Build\vcvars64.bat" || EXIT /B
+ )
+) ELSE IF "%PROFILE%" == "MSVC2019" (
+ IF "%PLATFORM%" == "x86" (
+ CALL "C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Auxiliary\Build\vcvars32.bat" || EXIT /B
+ ) ELSE (
+ CALL "C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Auxiliary\Build\vcvars64.bat" || EXIT /B
+ )
) ELSE IF "%PROFILE%" == "MINGW" (
REM Supported, nothing special to do here.
) ELSE IF "%PROFILE%" == "CYGWIN" (
@@ -36,13 +61,9 @@ CALL win_setgenerator.bat || EXIT /B
SET APPVEYOR_SCRIPTS=%APPVEYOR_BUILD_FOLDER%\build\appveyor
SET BUILDDIR=%APPVEYOR_BUILD_FOLDER%\..\build\%PROFILE%\%PLATFORM%
-SET INSTDIR=%APPVEYOR_BUILD_FOLDER%\..\build\%PROFILE%\%PLATFORM%
+SET INSTDIR=%APPVEYOR_BUILD_FOLDER%\..\install\%PROFILE%\%PLATFORM%
SET SRCDIR=%APPVEYOR_BUILD_FOLDER%
-:: PLATFORM is x64 or x86
-:: NORM_PLATFORM is 64 or 32
-SET NORM_PLATFORM=%PLATFORM:~-2,2%
-IF "%NORM_PLATFORM%" == "86" (SET NORM_PLATFORM=32)
IF "%PROFILE:~0,4%" == "MSVC" (
@@ -56,13 +77,13 @@ IF "%PROFILE:~0,4%" == "MSVC" (
SET WITH_PYTHON=OFF
) ELSE (
SET WITH_PYTHON=ON
- IF /i "%PLATFORM%" == "x64" SET PTEXT=-x64
+ IF /i "%PLATFORM%" == "x64" (SET PTEXT=-x64)
SET PATH=C:\Python%PYTHON_VERSION:.=%!PTEXT!\scripts;C:\Python%PYTHON_VERSION:.=%!PTEXT!;!PATH!
)
IF "%CONFIGURATION%" == "Debug" (SET ZLIB_LIB_SUFFIX=d)
IF NOT "%QT_VERSION%" == "" (
- IF /i "%PLATFORM%" == "x64" SET QTEXT=_64
+ IF /i "%PLATFORM%" == "x64" (SET QTEXT=_64)
SET PATH=C:\Qt\%QT_VERSION%\%PROFILE%!QTEXT!\bin;!PATH!
)
@@ -70,8 +91,11 @@ IF "%PROFILE:~0,4%" == "MSVC" (
:: PLATFORM = x86 means MINGWPLAT i686
:: PLATFORM = x64 means MINGWPLAT x86_64
- SET MINGWPLAT=x86_64
- IF "%PLATFORM%" == "x86" (SET MINGWPLAT=i686)
+ IF "%PLATFORM%" == "x86" (
+ SET MINGWPLAT=i686
+ ) ELSE (
+ SET MINGWPLAT=x86_64
+ )
SET BASH=C:\msys64\usr\bin\bash.exe
!BASH! -lc "sed -i '/export PATH=\/mingw32\/bin/d' ~/.bash_profile && sed -i '/export PATH=\/mingw64\/bin/d' ~/.bash_profile && echo 'export PATH=/mingw%NORM_PLATFORM%/bin:$PATH' >> ~/.bash_profile" || EXIT /B
@@ -85,38 +109,24 @@ IF "%PROFILE:~0,4%" == "MSVC" (
) ELSE IF "%PROFILE:~0,4%" == "CYGW" (
- SET CYGWINROOT=C:\cygwin
- IF "%PLATFORM%" == "x64" (SET CYGWINROOT=!CYGWINROOT!64)
+ IF "%PLATFORM%" == "x64" (
+ SET CYGWINROOT=C:\cygwin64
+ ) ELSE (
+ SET CYGWINROOT=C:\cygwin
+ )
- SET BASH=!CYGWINROOT!\bin\bash.exe
- SET SETUP=!CYGWINROOT!\setup-x86
- IF "%PLATFORM%" == "x64" (SET SETUP=!SETUP!_64)
- SET SETUP=!SETUP!.exe
+ IF "%PLATFORM%" == "x64" (
+ SET SETUP=!CYGWINROOT!\setup-x86_64.exe
+ ) ELSE (
+ SET SETUP=!CYGWINROOT!\setup-x86.exe
+ )
+ SET BASH=!CYGWINROOT!\bin\bash.exe
SET BUILDDIR=%BUILDDIR:\=/%
SET BUILDDIR=/cygdrive/c!BUILDDIR:~2!
SET INSTDIR=%INSTDIR:\=/%
- SET INSTDIR_CYG=/cygdrive/c!INSTDIR:~2!
+ SET INSTDIR=/cygdrive/c!INSTDIR:~2!
SET SRCDIR=%SRCDIR:\=/%
SET SRCDIR=/cygdrive/c!SRCDIR:~2!
)
-
-GOTO :EOF
-
-:SETUPNEWERMSVC
- :: If VsDevCmd.bat has already executed, as is the case in the
- :: msvc2017 docker container, skip this...
- IF NOT DEFINED VSCMD_VER (
- FOR /F "USEBACKQ TOKENS=*" %%i IN (`call "%ProgramFiles(x86)%\Microsoft Visual Studio\Installer\vswhere.exe" -version "[15.0,16.0)" -property installationPath`) DO (
- IF "%MSVCROOT%" == "" (SET MSVCROOT=%%i)
- )
- SET MSVCPLAT=x86
- IF "%PLATFORM%" == "x64" (SET MSVCPLAT=amd64)
-
- SET CURRENTDIR=%CD%
- CALL "!MSVCROOT!\Common7\Tools\VsDevCmd.bat" -arch=!MSVCPLAT! || EXIT /B
- CD %CURRENTDIR%
- EXIT /B
- )
-:EOF
diff --git a/build/appveyor/win_setgenerator.bat b/build/appveyor/win_setgenerator.bat
index 5eb6ff31f..5f95058d0 100644
--- a/build/appveyor/win_setgenerator.bat
+++ b/build/appveyor/win_setgenerator.bat
@@ -40,40 +40,27 @@
IF DEFINED GENERATOR (
ECHO [warn ] using existing environment variable GENERATOR
- EXIT /B 0
-)
-
-
-IF "%PROFILE:~0,4%" == "MING" (
+) ELSE IF "%PROFILE:~0,4%" == "MING" (
SET GENERATOR=MinGW Makefiles
-
) ELSE IF "%PROFILE:~0,4%" == "CYGW" (
SET GENERATOR=Unix Makefiles
-
) ELSE IF "%PROFILE:~0,4%" == "MSYS" (
SET GENERATOR=MSYS Makefiles
-) ELSE (
+) ELSE IF "%PROFILE:~0,4%" == "MSVC" (
IF /i "%PLATFORM%" == "x64" SET GENARCH= Win64
- CALL :CHECK 16
- IF !ERRORLEVEL! == 0 SET GENERATOR=Visual Studio 10 2010!GENARCH!
- CALL :CHECK 17
- IF !ERRORLEVEL! == 0 SET GENERATOR=Visual Studio 11 2012!GENARCH!
- CALL :CHECK 18
- IF !ERRORLEVEL! == 0 SET GENERATOR=Visual Studio 12 2013!GENARCH!
- CALL :CHECK 19.0
- IF !ERRORLEVEL! == 0 SET GENERATOR=Visual Studio 14 2015!GENARCH!
- CALL :CHECK 19.1
- IF !ERRORLEVEL! == 0 SET GENERATOR=Visual Studio 15 2017!GENARCH!
-)
-
-IF NOT DEFINED GENERATOR (
- ECHO [error] unable to determine the CMake generator to use
+ IF "%PROFILE%" == "MSVC2015" (
+ SET GENERATOR=Visual Studio 14 2015!GENARCH!
+ ) ELSE IF "%PROFILE%" == "MSVC2017" (
+ SET GENERATOR=Visual Studio 15 2017!GENARCH!
+ ) ELSE IF "%PROFILE%" == "MSVC2019" (
+ SET GENERATOR=Visual Studio 16 2019!GENARCH!
+ ) ELSE (
+ ECHO [error] unable to determine the CMake generator to use from MSVC profile %PROFILE%
+ EXIT /B 1
+ )
+) ELSE (
+ ECHO [error] unable to determine the CMake generator to use from profile %PROFILE%
EXIT /B 1
)
ECHO [info ] using CMake generator %GENERATOR%
-EXIT /B 0
-
-:CHECK
-cl /? 2>&1 | findstr /C:"Version %1%" > nul
-EXIT /B