setlocal if %PYTHON%==C:\python35_32bit set generator=Visual Studio 14 if %PYTHON%==C:\python35_32bit set vcplatform=Win32 if %PYTHON%==C:\python35 set generator=Visual Studio 14 Win64 if %PYTHON%==C:\python35 set vcplatform=x64 if %PYTHON%==C:\python36_32bit set generator=Visual Studio 14 if %PYTHON%==C:\python36_32bit set vcplatform=Win32 if %PYTHON%==C:\python36 set generator=Visual Studio 14 Win64 if %PYTHON%==C:\python36 set vcplatform=x64 if %PYTHON%==C:\python37_32bit set generator=Visual Studio 14 if %PYTHON%==C:\python37_32bit set vcplatform=Win32 if %PYTHON%==C:\python37 set generator=Visual Studio 14 Win64 if %PYTHON%==C:\python37 set vcplatform=x64 REM Prepend newly installed Python to the PATH of this build (this cannot be REM done from inside the powershell script as it would require to restart REM the parent CMD process). SET PATH=%PYTHON%;%PYTHON%\Scripts;%OLD_PATH% python -m pip install -U pip pip install wheel REM Check that we have the expected version and architecture for Python python --version python -c "import struct; print(struct.calcsize('P') * 8)" rmdir /s/q %REPO_DIR% xcopy /s %REPO_DIR_STAGE% "%REPO_DIR%\" REM Checkout release commit cd %REPO_DIR% REM ====================== REM Build Protobuf Library REM ====================== mkdir src\.libs mkdir vcprojects pushd vcprojects cmake -G "%generator%" -Dprotobuf_BUILD_SHARED_LIBS=%BUILD_DLL% -Dprotobuf_UNICODE=%UNICODE% -Dprotobuf_BUILD_TESTS=OFF ../cmake || goto :error msbuild protobuf.sln /p:Platform=%vcplatform% /p:Configuration=Release || goto :error dir /s /b popd copy vcprojects\Release\libprotobuf.lib src\.libs\libprotobuf.a copy vcprojects\Release\libprotobuf-lite.lib src\.libs\libprotobuf-lite.a SET PATH=%cd%\vcprojects\Release;%PATH% dir vcprojects\Release REM ====================== REM Build python library REM ====================== cd python REM sed -i 's/\ extra_compile_args\ =\ \[\]/\ extra_compile_args\ =\ \[\'\/MT\'\]/g' setup.py python setup.py bdist_wheel --cpp_implementation --compile_static_extension dir dist copy dist\* %ARTIFACT_DIR% dir %ARTIFACT_DIR% cd ..\.. goto :EOF :error exit /b %errorlevel%