aboutsummaryrefslogtreecommitdiff
path: root/appveyor.bat
blob: e22ab43499ed95ba57e982fcd393388a2e6f1421 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
setlocal

REM Checkout release commit
cd %REPO_DIR%
git checkout %BUILD_COMMIT%

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 Modify Build Version
sed -i '/__version__/c\__version__ = \'%BUILD_VERSION%\'' google/protobuf/__init__.py

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

python setup.py bdist_wheel --cpp_implementation --compile_static_extension
cd ..\..