forked from arvidn/libtorrent
-
Notifications
You must be signed in to change notification settings - Fork 0
/
appveyor.yml
140 lines (128 loc) · 5.43 KB
/
appveyor.yml
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
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
version: "{build}"
branches:
only:
- master
- RC_1_2
- RC_1_1
image: Visual Studio 2017
clone_depth: 1
environment:
matrix:
- cmake: 1
- variant: test_debug
compiler: msvc-14.1
model: 64
sim: 1
- variant: test_debug
compiler: msvc-14.1
model: 32
bjam: 1
- variant: test_release
compiler: msvc-14.1
model: 64
python: 1
python_dist: 1
crypto: openssl
bjam: 1
- variant: test_debug
compiler: gcc
model: 32
crypto: openssl
bjam: 1
artifacts:
- path: bindings/python/dist/*
name: python-module
install:
- git submodule update --init --recursive
- set ROOT_DIRECTORY=%CD%
- cd %ROOT_DIRECTORY%
- if not defined compiler ( set compiler="" )
- if not defined crypto ( set crypto=built-in )
- if not defined linkflags ( set linkflags="" )
- if not defined include ( set include="" )
- cd %ROOT_DIRECTORY%
- set BOOST_ROOT=c:\Libraries\boost_1_69_0
- set BOOST_BUILD_PATH=%BOOST_ROOT%\tools\build
- echo %BOOST_ROOT%
- echo %BOOST_BUILD_PATH%
- set PATH=%PATH%;%BOOST_BUILD_PATH%\src\engine\bin.ntx86
- ps: '"using msvc : 14.1 ;`nusing gcc ;`nusing python : 3.5 : c:\\Python35-x64 : c:\\Python35-x64\\include : c:\\Python35-x64\\libs ;`n" | Set-Content $env:HOMEDRIVE\$env:HOMEPATH\user-config.jam'
- type %HOMEDRIVE%%HOMEPATH%\user-config.jam
- cd %ROOT_DIRECTORY%
- set PATH=c:\msys64\mingw32\bin;%PATH%
- g++ --version
- python --version
- echo %ROOT_DIRECTORY%
- cd %BOOST_BUILD_PATH%\src\engine
- build.bat >nul
- cd %ROOT_DIRECTORY%
build_script:
# examples
- cd %ROOT_DIRECTORY%\examples
- if defined bjam (
b2.exe --hash openssl-version=pre1.1 warnings=all warnings-as-errors=on -j2 %compiler% address-model=%model% picker-debugging=on invariant-checks=full variant=%variant% %linkflags% %include% link=shared crypto=%crypto%
)
# tools
- cd %ROOT_DIRECTORY%\tools
- if defined bjam (
b2.exe --hash openssl-version=pre1.1 warnings=all warnings-as-errors=on -j2 %compiler% address-model=%model% picker-debugging=on invariant-checks=full variant=%variant% %linkflags% %include% link=shared crypto=%crypto%
)
# test
- cd %ROOT_DIRECTORY%\test
- if defined bjam (
b2.exe --hash openssl-version=pre1.1 warnings=all warnings-as-errors=on -j2 %compiler% address-model=%model% picker-debugging=on invariant-checks=full variant=%variant% %linkflags% %include% link=shared crypto=%crypto% win-tests test_upnp test_natpmp testing.execute=off
)
# python binding
- cd %ROOT_DIRECTORY%\bindings\python
# we use 64 bit python builds
# boost.python itself doesn't build warning free, so we can't build
# with warnings-as-errors
- if defined python (
b2.exe --hash openssl-version=pre1.1 warnings=all -j2 %compiler% address-model=%model% picker-debugging=on invariant-checks=full variant=%variant% %linkflags% %include% link=shared crypto=%crypto% libtorrent-link=shared stage_module stage_dependencies
)
- if defined python_dist (
c:\Python35-x64\python.exe setup.py bdist --format=msi
)
# simulations
- cd %ROOT_DIRECTORY%\simulation
- if defined sim (
b2.exe --hash openssl-version=pre1.1 warnings=all warnings-as-errors=on -j2 %compiler% address-model=%model% debug-iterators=off picker-debugging=on invariant-checks=full test_debug %linkflags% %include% boost-link=default link=static crypto=built-in define=BOOST_ASIO_DISABLE_IOCP testing.execute=off
)
# minimal support for cmake build
# we need to build the boost libraries we use with C++14
# and stage it for cmake to pick up
- if defined cmake (
cd %BOOST_ROOT% &&
bjam cxxstd=14 release --with-python --with-system --layout=system address-model=64 link=shared stage &&
cd %ROOT_DIRECTORY% &&
mkdir build &&
cd build &&
set "PATH=c:\Python27-x64;%PATH%" &&
cmake -DBOOST_LIBRARYDIR=%BOOST_ROOT%\stage\lib -DCMAKE_CXX_STANDARD=14 -Dbuild_tests=ON -Dbuild_examples=ON -Dbuild_tools=ON -Dpython-bindings=%python% -Dboost-python-module-name="python" -Dskip-python-runtime-test=true -DPython_ADDITIONAL_VERSIONS="2.7" -G "Visual Studio 14 2015 Win64" .. &&
cmake --build . --config Release -- -verbosity:minimal
)
test_script:
- cd %ROOT_DIRECTORY%\test
- if defined bjam (
appveyor-retry b2.exe -l400 --hash openssl-version=pre1.1 warnings=all warnings-as-errors=on -j2 %compiler% address-model=%model% picker-debugging=on invariant-checks=full variant=%variant% %linkflags% %include% link=shared crypto=%crypto% win-tests
)
- cd %ROOT_DIRECTORY%\bindings\python
# we use 64 bit python build
- if defined python (
copy dependencies\*.* .
& c:\Python35-x64\python.exe test.py -b
)
- if defined cmake (
appveyor-retry ctest
)
# simulation tests
# debug iterators are turned off here because msvc has issues with noexcept
# specifiers when debug iterators are enabled. Specifically, constructors that
# allocate memory are still marked as noexcept. That results in program
# termination
# the IOCP backend in asio appears to have an issue where it hangs under
# certain unexpected terminations (through exceptions)
- cd %ROOT_DIRECTORY%\simulation
- if defined sim (
b2.exe --hash openssl-version=pre1.1 warnings-as-errors=on -j2 %compiler% address-model=%model% debug-iterators=off picker-debugging=on invariant-checks=full test_debug %linkflags% %include% boost-link=default link=static crypto=built-in define=BOOST_ASIO_DISABLE_IOCP
)