|  | :: | 
|  | :: 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. | 
|  | :: | 
|  |  | 
|  | :: | 
|  | :: Produces a production thrift compiler suitable for redistribution. | 
|  | :: The compiler is linked to runtime statically for maximum portability. | 
|  | :: Assumes the thirdparty files for "winflexbison" have been placed | 
|  | :: according to the README.md instructions. | 
|  | :: | 
|  | :: Open a Visual Studio Command Prompt of your choosing and then | 
|  | :: run this script. | 
|  |  | 
|  | @ECHO OFF | 
|  | SETLOCAL EnableDelayedExpansion | 
|  |  | 
|  | IF NOT DEFINED PACKAGE_NAME    SET PACKAGE_NAME=thrift | 
|  | IF NOT DEFINED PACKAGE_VERSION SET PACKAGE_VERSION=dev | 
|  | IF NOT DEFINED SOURCE_DIR      SET SOURCEDIR=%~dp0%PACKAGE_NAME% | 
|  | IF NOT DEFINED WIN3P_ROOT      SET WIN3P_ROOT=%~dp0thirdparty | 
|  |  | 
|  | :: Set COMPILER to (vc100 - vc140) depending on the current environment | 
|  | CALL scripts\cl_setcompiler.bat || EXIT /B | 
|  |  | 
|  | :: Set ARCH to either win32 or x64 depending on the current environment | 
|  | CALL scripts\cl_setarch.bat || EXIT /B | 
|  |  | 
|  | :: Set GENERATOR for CMake depending on the current environment | 
|  | CALL scripts\cl_setgenerator.bat || EXIT /B | 
|  |  | 
|  | IF NOT DEFINED BUILDTYPE ( | 
|  | SET BUILDTYPE=Release | 
|  | ) | 
|  |  | 
|  | SET BUILDDIR=%~dp0build\%PACKAGE_NAME%-compiler\%PACKAGE_VERSION%\%COMPILER%\ | 
|  | SET OUTDIR=%~dp0dist\%PACKAGE_NAME%-compiler-%PACKAGE_VERSION%\%COMPILER%\%ARCH%\%BUILDTYPE%\ | 
|  | SET BOOST_LIBDIR=lib%ARCH:~-2,2%-msvc-%COMPILER:~-3,2%.0 | 
|  | IF "%BUILDTYPE%" == "Debug" (SET ZLIB_STATIC_SUFFIX=d) | 
|  |  | 
|  | ECHO/ | 
|  | ECHO ========================================================================= | 
|  | ECHO     Configuration: %PACKAGE_NAME% %PACKAGE_VERSION% %COMPILER%:%ARCH%:%BUILDTYPE% "%GENERATOR%" | 
|  | IF DEFINED COMPILERONLY ( | 
|  | ECHO                    COMPILER ONLY | 
|  | ) | 
|  | ECHO   Build Directory: %BUILDDIR% | 
|  | ECHO Install Directory: %OUTDIR% | 
|  | ECHO  Source Directory: %SOURCEDIR% | 
|  | ECHO ========================================================================= | 
|  | ECHO/ | 
|  |  | 
|  | MKDIR "%BUILDDIR%" | 
|  | CD "%BUILDDIR%" || EXIT /B | 
|  |  | 
|  | CMAKE.EXE %~dp0thrift ^ | 
|  | -G"%GENERATOR%" ^ | 
|  | -DBISON_EXECUTABLE=%WIN3P_ROOT%\dist\winflexbison\win_bison.exe ^ | 
|  | -DCMAKE_BUILD_TYPE=%BUILDTYPE% ^ | 
|  | -DFLEX_EXECUTABLE=%WIN3P_ROOT%\dist\winflexbison\win_flex.exe ^ | 
|  | -DWITH_MT=ON ^ | 
|  | -DWITH_SHARED_LIB=OFF || EXIT /B | 
|  |  | 
|  | CD %BUILDDIR% | 
|  |  | 
|  | CMAKE.EXE --build . --config %BUILDTYPE% --target thrift-compiler || EXIT /B | 
|  | XCOPY /F /Y %BUILDDIR%\bin\%BUILDTYPE%\thrift.exe %OUTDIR% | 
|  |  | 
|  | ENDLOCAL | 
|  | EXIT /B |