blob: da4d4ee4fb3894106ba01d3228a470ec540fe26c [file] [log] [blame]
James E. King, III07f59972017-03-10 06:18:33 -05001::
2:: Licensed under the Apache License, Version 2.0 (the "License");
3:: you may not use this file except in compliance with the License.
4:: You may obtain a copy of the License at
5::
6:: http://www.apache.org/licenses/LICENSE-2.0
7::
8:: Unless required by applicable law or agreed to in writing, software
9:: distributed under the License is distributed on an "AS IS" BASIS,
10:: WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
11:: See the License for the specific language governing permissions and
12:: limitations under the License.
13::
14
James E. King III860a5f12018-03-06 14:23:23 -050015@ECHO OFF
16
cyyf23e6a52019-01-05 14:00:03 +080017IF "%PROFILE%" == "MSVC2012" (
James E. King, III07f59972017-03-10 06:18:33 -050018 CALL "C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\vcvarsall.bat" %PLATFORM%
19) ELSE IF "%PROFILE%" == "MSVC2013" (
20 CALL "C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\vcvarsall.bat" %PLATFORM%
21) ELSE IF "%PROFILE%" == "MSVC2015" (
22 CALL "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" %PLATFORM%
23) ELSE IF "%PROFILE%" == "MSVC2017" (
James E. King III860a5f12018-03-06 14:23:23 -050024 CALL :SETUPNEWERMSVC || EXIT /B
James E. King, III07f59972017-03-10 06:18:33 -050025) ELSE IF "%PROFILE%" == "MINGW" (
James E. King III860a5f12018-03-06 14:23:23 -050026 REM Supported, nothing special to do here.
27) ELSE IF "%PROFILE%" == "CYGWIN" (
28 REM Supported, nothing special to do here.
James E. King, III07f59972017-03-10 06:18:33 -050029) ELSE (
30 ECHO Unsupported PROFILE=%PROFILE% or PLATFORM=%PLATFORM%
31 EXIT /B 1
32)
33
34CALL cl_setcompiler.bat || EXIT /B
35CALL cl_setgenerator.bat || EXIT /B
36
37SET APPVEYOR_SCRIPTS=%APPVEYOR_BUILD_FOLDER%\build\appveyor
James E. King III860a5f12018-03-06 14:23:23 -050038SET BUILDDIR=%APPVEYOR_BUILD_FOLDER%\..\build\%PROFILE%\%PLATFORM%
39SET INSTDIR=%APPVEYOR_BUILD_FOLDER%\..\build\%PROFILE%\%PLATFORM%
James E. King, III07f59972017-03-10 06:18:33 -050040SET SRCDIR=%APPVEYOR_BUILD_FOLDER%
41
James E. King III860a5f12018-03-06 14:23:23 -050042:: PLATFORM is x64 or x86
43:: NORM_PLATFORM is 64 or 32
James E. King, III33df4eb2017-04-06 08:45:17 -040044SET NORM_PLATFORM=%PLATFORM:~-2,2%
45IF "%NORM_PLATFORM%" == "86" (SET NORM_PLATFORM=32)
46
James E. King III860a5f12018-03-06 14:23:23 -050047IF "%PROFILE:~0,4%" == "MSVC" (
James E. King, III33df4eb2017-04-06 08:45:17 -040048
James E. King III860a5f12018-03-06 14:23:23 -050049 :: FindBoost needs forward slashes so cmake doesn't see something as an escaped character
50 SET BOOST_ROOT=C:/Libraries/boost_%BOOST_VERSION:.=_%
51 SET BOOST_LIBRARYDIR=!BOOST_ROOT!/lib%NORM_PLATFORM%-msvc-%COMPILER:~-3,2%.%COMPILER:~-1,1%
52 SET OPENSSL_ROOT=C:\OpenSSL-Win%NORM_PLATFORM%
53 SET WIN3P=%APPVEYOR_BUILD_FOLDER%\thirdparty
James E. King, III33df4eb2017-04-06 08:45:17 -040054
cyyf23e6a52019-01-05 14:00:03 +080055 SET THREADMODEL=STD
James E. King, III07f59972017-03-10 06:18:33 -050056
James E. King III860a5f12018-03-06 14:23:23 -050057 IF "%PYTHON_VERSION%" == "" (
58 SET WITH_PYTHON=OFF
59 ) ELSE (
60 SET WITH_PYTHON=ON
61 IF /i "%PLATFORM%" == "x64" SET PTEXT=-x64
62 SET PATH=C:\Python%PYTHON_VERSION:.=%!PTEXT!\scripts;C:\Python%PYTHON_VERSION:.=%!PTEXT!;!PATH!
63 )
64 IF "%CONFIGURATION%" == "Debug" (SET ZLIB_LIB_SUFFIX=d)
James E. King, III07f59972017-03-10 06:18:33 -050065
James E. King III860a5f12018-03-06 14:23:23 -050066 IF NOT "%QT_VERSION%" == "" (
67 IF /i "%PLATFORM%" == "x64" SET QTEXT=_64
68 SET PATH=C:\Qt\%QT_VERSION%\%PROFILE%!QTEXT!\bin;!PATH!
69 )
70
71) ELSE IF "%PROFILE:~0,4%" == "MING" (
72
73 :: PLATFORM = x86 means MINGWPLAT i686
74 :: PLATFORM = x64 means MINGWPLAT x86_64
75 SET MINGWPLAT=x86_64
76 IF "%PLATFORM%" == "x86" (SET MINGWPLAT=i686)
James E. King, III07f59972017-03-10 06:18:33 -050077
78 SET BASH=C:\msys64\usr\bin\bash.exe
James E. King III860a5f12018-03-06 14:23:23 -050079 !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
James E. King, III07f59972017-03-10 06:18:33 -050080
James E. King III860a5f12018-03-06 14:23:23 -050081 SET BUILDDIR=%BUILDDIR:\=/%
82 SET BUILDDIR=/c!BUILDDIR:~2!
83 SET INSTDIR=%INSTDIR:\=/%
84 SET INSTDIR=/c!INSTDIR:~2!
85 SET SRCDIR=%SRCDIR:\=/%
86 SET SRCDIR=/c!SRCDIR:~2!
87
88) ELSE IF "%PROFILE:~0,4%" == "CYGW" (
89
90 SET CYGWINROOT=C:\cygwin
91 IF "%PLATFORM%" == "x64" (SET CYGWINROOT=!CYGWINROOT!64)
92
93 SET BASH=!CYGWINROOT!\bin\bash.exe
94 SET SETUP=!CYGWINROOT!\setup-x86
95 IF "%PLATFORM%" == "x64" (SET SETUP=!SETUP!_64)
96 SET SETUP=!SETUP!.exe
97
98 SET BUILDDIR=%BUILDDIR:\=/%
99 SET BUILDDIR=/cygdrive/c!BUILDDIR:~2!
100 SET INSTDIR=%INSTDIR:\=/%
101 SET INSTDIR_CYG=/cygdrive/c!INSTDIR:~2!
102 SET SRCDIR=%SRCDIR:\=/%
103 SET SRCDIR=/cygdrive/c!SRCDIR:~2!
James E. King, III07f59972017-03-10 06:18:33 -0500104
105)
106
James E. King III860a5f12018-03-06 14:23:23 -0500107GOTO :EOF
108
109:SETUPNEWERMSVC
James E. King III278528c2019-01-11 12:17:44 -0500110 :: If VsDevCmd.bat has already executed, as is the case in the
111 :: msvc2017 docker container, skip this...
112 IF NOT DEFINED VSCMD_VER (
113 FOR /F "USEBACKQ TOKENS=*" %%i IN (`call "%ProgramFiles(x86)%\Microsoft Visual Studio\Installer\vswhere.exe" -version "[15.0,16.0)" -property installationPath`) DO (
114 IF "%MSVCROOT%" == "" (SET MSVCROOT=%%i)
115 )
116 SET MSVCPLAT=x86
117 IF "%PLATFORM%" == "x64" (SET MSVCPLAT=amd64)
118
119 SET CURRENTDIR=%CD%
120 CALL "!MSVCROOT!\Common7\Tools\VsDevCmd.bat" -arch=!MSVCPLAT! || EXIT /B
121 CD %CURRENTDIR%
122 EXIT /B
James E. King III860a5f12018-03-06 14:23:23 -0500123 )
James E. King III860a5f12018-03-06 14:23:23 -0500124:EOF