From b93dd59d6fe17974f0cc801b85b7ed745b834ab9 Mon Sep 17 00:00:00 2001 From: Bo Yang Date: Wed, 28 Feb 2018 11:07:16 -0800 Subject: Fix python 3.5/3.6 --- appveyor.bat | 50 ++++++++++++++++++++++++++++++++++++++++++++++++-- appveyor.yml | 38 ++++++++++++++++++++++++-------------- 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 -- cgit v1.2.3