aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBo Yang <paulyang1211@gmail.com>2018-02-28 11:07:16 -0800
committerBo Yang <paulyang1211@gmail.com>2018-03-01 11:10:56 -0800
commitb93dd59d6fe17974f0cc801b85b7ed745b834ab9 (patch)
tree415f19a3578faa0c812514972a48bc118b49de83
parent4dcdb6bcb2a7e67afeecea070065c6fdf40ed30b (diff)
downloadprotobuf-b93dd59d6fe17974f0cc801b85b7ed745b834ab9.tar.gz
protobuf-b93dd59d6fe17974f0cc801b85b7ed745b834ab9.tar.bz2
protobuf-b93dd59d6fe17974f0cc801b85b7ed745b834ab9.zip
Fix python 3.5/3.6
-rw-r--r--appveyor.bat50
-rw-r--r--appveyor.yml38
2 files changed, 72 insertions, 16 deletions
diff --git a/appveyor.bat b/appveyor.bat
index 05db08e6..bced3e6d 100644
--- a/appveyor.bat
+++ b/appveyor.bat
@@ -1,29 +1,75 @@
setlocal
-dir %MINGW%
pip install wheel
REM Checkout release commit
cd %REPO_DIR%
git checkout %BUILD_COMMIT%
-REM Build protobuf library
+REM ======================
+REM Build Protobuf Library
+REM ======================
+
mkdir src\.libs
+
+IF %PYTHON_VERSION%==2.7 GOTO build_core_mingw
+IF %PYTHON_VERSION%==3.4 GOTO build_core_mingw
+IF %PYTHON_VERSION%==3.5 GOTO build_core_msvc
+IF %PYTHON_VERSION%==3.6 GOTO build_core_msvc
+
+:build_core_mingw
pushd src\.libs
cmake -G "%generator%" -Dprotobuf_BUILD_SHARED_LIBS=%BUILD_DLL% -Dprotobuf_UNICODE=%UNICODE% -DZLIB_ROOT=%ZLIB_ROOT% -Dprotobuf_BUILD_TESTS=OFF -D"CMAKE_MAKE_PROGRAM:PATH=%MINGW%/mingw32-make.exe" ../../cmake
mingw32-make
+dir
+SET PATH=%cd%;%PATH%
+popd
+GOTO build_core_end
+
+:build_core_msvc
+mkdir vcprojects
+pushd vcprojects
+cmake -G "%generator%" -Dprotobuf_BUILD_SHARED_LIBS=%BUILD_DLL% -Dprotobuf_UNICODE=%UNICODE% -Dprotobuf_BUILD_TESTS=OFF ../cmake
+msbuild protobuf.sln /p:Platform=%vcplatform% /p:Configuration=Release /logger:"C:\Program Files\AppVeyor\BuildAgent\Appveyor.MSBuildLogger.dll"
+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
+GOTO build_core_end
+:build_core_end
+
+REM ======================
REM Build python library
+REM ======================
+
cd python
+
+REM https://github.com/Theano/Theano/issues/4926
sed -i '/Wno-sign-compare/a \ \ \ \ extra_compile_args.append(\'-D_hypot=hypot\')' setup.py
sed -i 's/\'-DPYTHON_PROTO2_CPP_IMPL_V2\'/\'-DPYTHON_PROTO2_CPP_IMPL_V2\',\'-D_hypot=hypot\'/g' setup.py
+REM https://github.com/tpaviot/pythonocc-core/issues/48
IF NOT %PYTHON_ARCH%==64 GOTO no_win64_change
sed -i '/Wno-sign-compare/a \ \ \ \ extra_compile_args.append(\'-DMS_WIN64\')' setup.py
sed -i 's/\'-DPYTHON_PROTO2_CPP_IMPL_V2\'/\'-DPYTHON_PROTO2_CPP_IMPL_V2\',\'-DMS_WIN64\'/g' setup.py
:no_win64_change
+REM MSVS default is dymanic
+IF NOT DEFINED vcplatform GOTO msvc_static_build_end
+sed -i '/Wno-sign-compare/a \ \ \ \ extra_compile_args.append(\'/MT\')' setup.py
+sed -i 's/\'-DPYTHON_PROTO2_CPP_IMPL_V2\'/\'-DPYTHON_PROTO2_CPP_IMPL_V2\',\'\/MT\'/g' setup.py
+:msvc_static_build_end
+
+REM MSVC doesn't recognize these options
+IF NOT DEFINED vcplatform GOTO msvc_remove_flags_end
+sed -i '/-Wno-write-strings/c\ extra_compile_args = []' setup.py
+sed -i '/-Wno-invalid-offsetof/d' setup.py
+sed -i '/-Wno-sign-compare/d' setup.py
+:msvc_remove_flags_end
+
cat setup.py
python setup.py bdist_wheel --cpp_implementation --compile_static_extension
cd ..\..
diff --git a/appveyor.yml b/appveyor.yml
index 3900829a..0a20275e 100644
--- a/appveyor.yml
+++ b/appveyor.yml
@@ -7,7 +7,6 @@ environment:
REPO_DIR: protobuf
PACKAGE_NAME: protobuf
BUILD_COMMIT: v3.5.1
- PROTOC_VERSION: 3.5.1
MINGW_32: C:\mingw-w64\i686-6.3.0-posix-dwarf-rt_v5-rev1\mingw32\bin
MINGW_64: C:\mingw-w64\x86_64-6.3.0-posix-seh-rt_v5-rev1\mingw64\bin
BUILD_DLL: OFF
@@ -72,12 +71,6 @@ install:
- python --version
- python -c "import struct; print(struct.calcsize('P') * 8)"
- # Install protoc
- - curl -L -o protoc-%PROTOC_VERSION%.zip https://github.com/google/protobuf/releases/download/v%PROTOC_VERSION%/protoc-%PROTOC_VERSION%-win32.zip
- - 7z x protoc-%PROTOC_VERSION%.zip
- - del /Q protoc-%PROTOC_VERSION%.zip
- - SET PATH=%cd%\bin;%PATH%
-
# Install zlib
- mkdir zlib
- curl -L -o zlib.zip http://www.winimage.com/zLibDll/zlib123dll.zip
@@ -89,15 +82,32 @@ install:
- del /Q zlib-src.zip
before_build:
+ - if %PYTHON%==C:\Python35 set generator=Visual Studio 14
+ - if %PYTHON%==C:\Python35 set vcplatform=Win32
+
+ - if %PYTHON%==C:\Python35-x64 set generator=Visual Studio 14 Win64
+ - if %PYTHON%==C:\Python35-x64 set vcplatform=x64
+
+ - if %PYTHON%==C:\Python36 set generator=Visual Studio 14
+ - if %PYTHON%==C:\Python36 set vcplatform=Win32
+
+ - if %PYTHON%==C:\Python36-x64 set generator=Visual Studio 14 Win64
+ - if %PYTHON%==C:\Python36-x64 set vcplatform=x64
+
+ - if %PYTHON%==C:\Python27 set MINGW=%MINGW_32%
+ - if %PYTHON%==C:\Python27-x64 set MINGW=%MINGW_64%
+ - if %PYTHON%==C:\Python34 set MINGW=%MINGW_32%
+ - if %PYTHON%==C:\Python34-x64 set MINGW=%MINGW_64%
+
- if %PYTHON_VERSION%==2.7 set generator=MSYS Makefiles
+ - if %PYTHON_VERSION%==2.7 set PATH=%MINGW%;%PATH%
+ - if %PYTHON_VERSION%==2.7 echo [build] > %PYTHON%\Lib\distutils\distutils.cfg
+ - if %PYTHON_VERSION%==2.7 echo.compiler = mingw32 >> %PYTHON%\Lib\distutils\distutils.cfg
+
- if %PYTHON_VERSION%==3.4 set generator=MSYS Makefiles
- - if %PYTHON_VERSION%==3.5 set generator=Visual Studio 14
- - if %PYTHON_VERSION%==3.6 set generator=Visual Studio 14
- - if %PYTHON_ARCH%==32 set MINGW=%MINGW_32%
- - if %PYTHON_ARCH%==64 set MINGW=%MINGW_64%
- - set PATH=%MINGW%;%PATH%
- - echo [build] > %PYTHON%\Lib\distutils\distutils.cfg
- - echo.compiler = mingw32 >> %PYTHON%\Lib\distutils\distutils.cfg
+ - if %PYTHON_VERSION%==3.4 set PATH=%MINGW%;%PATH%
+ - if %PYTHON_VERSION%==3.4 echo [build] > %PYTHON%\Lib\distutils\distutils.cfg
+ - if %PYTHON_VERSION%==3.4 echo.compiler = mingw32 >> %PYTHON%\Lib\distutils\distutils.cfg
build_script:
- CALL appveyor.bat