197 lines
6.3 KiB
Batchfile
197 lines
6.3 KiB
Batchfile
::
|
|
:: Licensed under the Apache License, Version 2.0 (the "License");
|
|
:: you may not use this file except in compliance with the License.
|
|
:: You may obtain a copy of the License at
|
|
::
|
|
:: http://www.apache.org/licenses/LICENSE-2.0
|
|
::
|
|
:: Unless required by applicable law or agreed to in writing, software
|
|
:: distributed under the License is distributed on an "AS IS" BASIS,
|
|
:: WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
:: See the License for the specific language governing permissions and
|
|
:: limitations under the License.
|
|
::
|
|
|
|
::
|
|
:: Appveyor script for MSVC
|
|
::
|
|
|
|
::
|
|
:: Installs (or builds) third party packages we need
|
|
::
|
|
|
|
@ECHO ON
|
|
SETLOCAL EnableDelayedExpansion
|
|
|
|
CD build\appveyor || EXIT /B
|
|
|
|
SET APPVEYOR_SCRIPTS=%APPVEYOR_BUILD_FOLDER%\build\appveyor
|
|
SET BUILDDIR=%APPVEYOR_BUILD_FOLDER%\..\build\%PROFILE%\%PLATFORM%
|
|
SET INSTDIR=%APPVEYOR_BUILD_FOLDER%\..\install\%PROFILE%\%PLATFORM%
|
|
SET SRCDIR=%APPVEYOR_BUILD_FOLDER%
|
|
|
|
|
|
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" (
|
|
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 (
|
|
ECHO Unsupported PROFILE=%PROFILE% or PLATFORM=%PLATFORM%
|
|
EXIT /B 1
|
|
)
|
|
|
|
|
|
:: compiler and generator detection
|
|
IF /i "%PLATFORM%" == "x64" SET GENARCH= Win64
|
|
IF "%PROFILE%" == "MSVC2015" (
|
|
SET GENERATOR=Visual Studio 14 2015!GENARCH!
|
|
SET COMPILER=vc140
|
|
) ELSE IF "%PROFILE%" == "MSVC2017" (
|
|
SET GENERATOR=Visual Studio 15 2017!GENARCH!
|
|
SET COMPILER=vc141
|
|
) ELSE IF "%PROFILE%" == "MSVC2019" (
|
|
SET GENERATOR=Visual Studio 16 2019!GENARCH!
|
|
SET COMPILER=vc142
|
|
) ELSE (
|
|
ECHO [error] unable to determine the CMake generator and compiler to use from MSVC profile %PROFILE%
|
|
EXIT /B 1
|
|
)
|
|
|
|
:: PLATFORM is x86 or x64
|
|
:: NORM_PLATFORM is 32 or 64
|
|
IF "%PLATFORM%" == "x86" (
|
|
SET NORM_PLATFORM=32
|
|
) ELSE (
|
|
SET NORM_PLATFORM=64
|
|
)
|
|
|
|
:: FindBoost needs forward slashes so cmake doesn't see something as an escaped character
|
|
SET BOOST_ROOT=C:/Libraries/boost_%BOOST_VERSION:.=_%
|
|
SET BOOST_LIBRARYDIR=!BOOST_ROOT!/lib%NORM_PLATFORM%-msvc-%COMPILER:~-3,2%.%COMPILER:~-1,1%
|
|
SET OPENSSL_ROOT=C:\OpenSSL-Win%NORM_PLATFORM%
|
|
SET WIN3P=%APPVEYOR_BUILD_FOLDER%\thirdparty
|
|
|
|
IF "%PYTHON_VERSION%" == "" (
|
|
SET WITH_PYTHON=OFF
|
|
) ELSE (
|
|
SET WITH_PYTHON=ON
|
|
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)
|
|
SET PATH=C:\Qt\%QT_VERSION%\%PROFILE%!QTEXT!\bin;!PATH!
|
|
)
|
|
|
|
|
|
CALL win_showenv.bat || EXIT /B
|
|
MKDIR "%WIN3P%" || EXIT /B
|
|
|
|
choco feature enable -n allowGlobalConfirmation || EXIT /B
|
|
|
|
:: Things to install when NOT running in appveyor:
|
|
IF "%APPVEYOR_BUILD_ID%" == "" (
|
|
cup -y chocolatey || EXIT /B
|
|
cinst -y curl || EXIT /B
|
|
cinst -y 7zip || EXIT /B
|
|
cinst -y python3 || EXIT /B
|
|
cinst -y openssl.light || EXIT /B
|
|
)
|
|
|
|
cinst -y jdk8 || EXIT /B
|
|
cinst -y winflexbison3 || EXIT /B
|
|
|
|
:: zlib - not available through chocolatey
|
|
CD "%APPVEYOR_SCRIPTS%" || EXIT /B
|
|
call build-zlib.bat || EXIT /B
|
|
|
|
:: libevent - not available through chocolatey
|
|
CD "%APPVEYOR_SCRIPTS%" || EXIT /B
|
|
call build-libevent.bat || EXIT /B
|
|
|
|
:: python packages (correct path to pip set above)
|
|
pip.exe ^
|
|
install backports.ssl_match_hostname ^
|
|
ipaddress ^
|
|
six ^
|
|
tornado ^
|
|
twisted || EXIT /B
|
|
|
|
:: Adobe Flex SDK 4.6 for ActionScript
|
|
MKDIR "C:\Adobe\Flex\SDK\4.6" || EXIT /B
|
|
appveyor DownloadFile http://download.macromedia.com/pub/flex/sdk/flex_sdk_4.6.zip -FileName C:\Adobe\Flex\SDK\4.6\SDK.zip || EXIT /B
|
|
CD "C:\Adobe\Flex\SDK\4.6" || EXIT /B
|
|
7z x SDK.zip || EXIT /B
|
|
SETX FLEX_HOME "C:\Adobe\Flex\SDK\4.6"
|
|
|
|
|
|
::
|
|
:: Configure and build our software with cmake
|
|
::
|
|
|
|
MKDIR "%BUILDDIR%" || EXIT /B
|
|
CD "%BUILDDIR%" || EXIT /B
|
|
|
|
:: When libraries cannot be found, things might have been updated
|
|
:: so uncomment this and submit a pull request to see what's there
|
|
:: now...
|
|
:: DIR C:\Libraries
|
|
:: DIR C:\Libraries\boost_1_69_0\lib*
|
|
:: DIR C:\Libraries\boost_1_68_0\lib*
|
|
:: DIR C:\Libraries\boost_1_67_0\lib*
|
|
:: DIR C:\Libraries\boost_1_66_0\lib*
|
|
:: DIR C:\Libraries\boost_1_65_0\lib*
|
|
:: DIR C:\Libraries\boost_1_64_0\lib*
|
|
:: DIR C:\Libraries\boost_1_63_0\lib*
|
|
:: DIR C:\Libraries\boost_1_62_0\lib*
|
|
:: DIR C:\Libraries\boost_1_61_0\lib*
|
|
:: DIR C:\Libraries\boost_1_60_0\lib*
|
|
|
|
cmake.exe "%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.exe --build . --config "%CONFIGURATION%" || EXIT /B
|
|
|
|
cmake.exe --install . --config "%CONFIGURATION%" || EXIT /B
|
|
|
|
::
|
|
:: Execute our tests
|
|
::
|
|
|
|
:: 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%
|
|
SET DISABLED_TESTS_COMMAND=--exclude-regex '%DISABLED_TESTS%'
|
|
|
|
ctest.exe --build-config %CONFIGURATION% --timeout 300 --extra-verbose %DISABLED_TESTS_COMMAND% || EXIT /B
|