1
1
sudo : required
2
- dist : precise
2
+ dist : xenial
3
3
4
4
language : cpp
5
5
cache :
6
6
- ccache
7
7
8
+ addons :
9
+ apt :
10
+ sources :
11
+ - ubuntu-toolchain-r-test
12
+ packages :
13
+ - cmake
14
+ - valgrind
15
+ - clang-8
8
16
env :
9
17
global :
10
18
- USE_CCACHE=1
13
21
- CCACHE_MAXSIZE=100M
14
22
- ARCH_FLAGS_x86='-m32' # #266: don't use SSE on 32-bit
15
23
- ARCH_FLAGS_x86_64='-msse4.2' # use SSE4.2 on 64-bit
16
- - GITHUB_REPO='miloyip/rapidjson'
24
+ - ARCH_FLAGS_aarch64='-march=armv8-a'
25
+ - GITHUB_REPO='Tencent/rapidjson'
17
26
- secure : " HrsaCb+N66EG1HR+LWH1u51SjaJyRwJEDzqJGYMB7LJ/bfqb9mWKF1fLvZGk46W5t7TVaXRDD5KHFx9DPWvKn4gRUVkwTHEy262ah5ORh8M6n/6VVVajeV/AYt2C0sswdkDBDO4Xq+xy5gdw3G8s1A4Inbm73pUh+6vx+7ltBbk="
18
27
19
- before_install :
20
- - sudo apt-add-repository -y ppa:ubuntu-toolchain-r/test
21
- - sudo apt-get update -qq
22
- - sudo apt-get install -y cmake valgrind g++-multilib libc6-dbg:i386
23
-
24
28
matrix :
25
29
include :
26
30
# gcc
27
- - env : CONF=release ARCH=x86 CXX11=ON
31
+ - env : CONF=release ARCH=x86 CXX11=ON CXX17=OFF MEMBERSMAP=OFF
32
+ compiler : gcc
33
+ arch : amd64
34
+ - env : CONF=release ARCH=x86_64 CXX11=ON CXX17=OFF MEMBERSMAP=OFF
35
+ compiler : gcc
36
+ arch : amd64
37
+ - env : CONF=release ARCH=x86_64 CXX11=ON CXX17=OFF MEMBERSMAP=ON
38
+ compiler : gcc
39
+ arch : amd64
40
+ - env : CONF=debug ARCH=x86 CXX11=OFF CXX17=OFF MEMBERSMAP=OFF
41
+ compiler : gcc
42
+ arch : amd64
43
+ - env : CONF=debug ARCH=x86_64 CXX11=OFF CXX17=OFF MEMBERSMAP=OFF
28
44
compiler : gcc
29
- - env : CONF=release ARCH=x86_64 CXX11=ON
45
+ arch : amd64
46
+ - env : CONF=debug ARCH=x86 CXX11=OFF CXX17=ON MEMBERSMAP=ON CXX_FLAGS='-D_GLIBCXX_DEBUG'
30
47
compiler : gcc
31
- - env : CONF=debug ARCH=x86 CXX11=OFF
48
+ arch : amd64
49
+ - env : CONF=debug ARCH=x86_64 CXX11=OFF CXX17=ON MEMBERSMAP=ON CXX_FLAGS='-D_GLIBCXX_DEBUG'
32
50
compiler : gcc
33
- - env : CONF=debug ARCH=x86_64 CXX11=OFF
51
+ arch : amd64
52
+ - env : CONF=release ARCH=aarch64 CXX11=ON CXX17=OFF MEMBERSMAP=OFF
34
53
compiler : gcc
54
+ arch : arm64
55
+ - env : CONF=release ARCH=aarch64 CXX11=OFF CXX17=OFF MEMBERSMAP=OFF
56
+ compiler : gcc
57
+ arch : arm64
58
+ - env : CONF=release ARCH=aarch64 CXX11=OFF CXX17=ON MEMBERSMAP=ON
59
+ compiler : gcc
60
+ arch : arm64
35
61
# clang
36
- - env : CONF=debug ARCH=x86 CXX11=ON CCACHE_CPP2=yes
62
+ - env : CONF=release ARCH=x86 CXX11=ON CXX17=OFF MEMBERSMAP=ON CCACHE_CPP2=yes
63
+ compiler : clang
64
+ arch : amd64
65
+ - env : CONF=release ARCH=x86_64 CXX11=ON CXX17=OFF MEMBERSMAP=ON CCACHE_CPP2=yes
66
+ compiler : clang
67
+ arch : amd64
68
+ - env : CONF=release ARCH=x86_64 CXX11=ON CXX17=OFF MEMBERSMAP=OFF CCACHE_CPP2=yes
69
+ compiler : clang
70
+ arch : amd64
71
+ - env : CONF=debug ARCH=x86 CXX11=OFF CXX17=OFF MEMBERSMAP=ON CCACHE_CPP2=yes
37
72
compiler : clang
38
- - env : CONF=debug ARCH=x86_64 CXX11=ON CCACHE_CPP2=yes
73
+ arch : amd64
74
+ - env : CONF=debug ARCH=x86_64 CXX11=OFF CXX17=OFF MEMBERSMAP=ON CCACHE_CPP2=yes
39
75
compiler : clang
40
- - env : CONF=debug ARCH=x86 CXX11=OFF CCACHE_CPP2=yes
76
+ arch : amd64
77
+ - env : CONF=debug ARCH=x86 CXX11=OFF CXX17=ON MEMBERSMAP=OFF CCACHE_CPP2=yes
41
78
compiler : clang
42
- - env : CONF=debug ARCH=x86_64 CXX11=OFF CCACHE_CPP2=yes
79
+ arch : amd64
80
+ - env : CONF=debug ARCH=x86_64 CXX11=OFF CXX17=ON MEMBERSMAP=OFF CCACHE_CPP2=yes
43
81
compiler : clang
44
- - env : CONF=release ARCH=x86 CXX11=ON CCACHE_CPP2=yes
82
+ arch : amd64
83
+ - env : CONF=debug ARCH=aarch64 CXX11=ON CXX17=OFF MEMBERSMAP=ON CCACHE_CPP2=yes
45
84
compiler : clang
46
- - env : CONF=release ARCH=x86_64 CXX11=ON CCACHE_CPP2=yes
85
+ arch : arm64
86
+ - env : CONF=debug ARCH=aarch64 CXX11=OFF CXX17=OFF MEMBERSMAP=ON CCACHE_CPP2=yes
47
87
compiler : clang
88
+ arch : arm64
89
+ - env : CONF=debug ARCH=aarch64 CXX11=OFF CXX17=ON MEMBERSMAP=OFF CCACHE_CPP2=yes
90
+ compiler : clang
91
+ arch : arm64
48
92
# coverage report
49
- - env : CONF=debug ARCH=x86 CXX11=ON GCOV_FLAGS='--coverage'
93
+ - env : CONF=debug ARCH=x86 GCOV_FLAGS='--coverage' CXX_FLAGS='-O0' CXX11=OFF CXX17=OFF
94
+ compiler : gcc
95
+ arch : amd64
96
+ cache :
97
+ - ccache
98
+ - pip
99
+ after_success :
100
+ - pip install --user cpp-coveralls
101
+ - coveralls -r .. --gcov-options '\-lp' -e thirdparty -e example -e test -e build/CMakeFiles -e include/rapidjson/msinttypes -e include/rapidjson/internal/meta.h -e include/rapidjson/error/en.h
102
+ - env : CONF=debug ARCH=x86_64 GCOV_FLAGS='--coverage' CXX_FLAGS='-O0' CXX11=ON CXX17=OFF MEMBERSMAP=ON
50
103
compiler : gcc
104
+ arch : amd64
51
105
cache :
52
106
- ccache
53
107
- pip
54
108
after_success :
55
109
- pip install --user cpp-coveralls
56
110
- coveralls -r .. --gcov-options '\-lp' -e thirdparty -e example -e test -e build/CMakeFiles -e include/rapidjson/msinttypes -e include/rapidjson/internal/meta.h -e include/rapidjson/error/en.h
57
- - env : CONF=debug ARCH=x86_64 GCOV_FLAGS='--coverage'
111
+ - env : CONF=debug ARCH=aarch64 GCOV_FLAGS='--coverage' CXX_FLAGS='-O0' CXX11=OFF CXX17=ON
58
112
compiler : gcc
113
+ arch : arm64
59
114
cache :
60
115
- ccache
61
116
- pip
@@ -72,24 +127,37 @@ matrix:
72
127
packages :
73
128
- doxygen
74
129
130
+ before_install :
131
+ - if [ "x86_64" = "$(arch)" ]; then sudo apt-get install -y g++-multilib libc6-dbg:i386 --allow-unauthenticated; fi
132
+
75
133
before_script :
76
- - ccache -s
77
- # hack to avoid Valgrind bug (https://bugs.kde.org/show_bug.cgi?id=326469),
78
- # exposed by merging PR#163 (using -march=native)
79
- # TODO: Since this bug is already fixed. Remove this when valgrind can be upgraded.
80
- - sed -i "s/-march=native//" CMakeLists.txt
81
- - mkdir build
134
+ # travis provides clang-7 for amd64 and clang-3.8 for arm64
135
+ # here use clang-8 to all architectures as clang-7 is not available for arm64
136
+ - if [ -f /usr/bin/clang++-8 ]; then
137
+ sudo update-alternatives --install /usr/bin/clang++ clang++ /usr/bin/clang++-8 1000;
138
+ sudo update-alternatives --config clang++;
139
+ export PATH=/usr/bin:$PATH;
140
+ fi
141
+ - if [ "$CXX" = "clang++" ]; then export CCACHE_CPP2=yes; fi
142
+ - ccache -s
143
+ # hack to avoid Valgrind bug (https://bugs.kde.org/show_bug.cgi?id=326469),
144
+ # exposed by merging PR#163 (using -march=native)
145
+ # TODO: Since this bug is already fixed. Remove this when valgrind can be upgraded.
146
+ - sed -i "s/-march=native//" CMakeLists.txt
147
+ - mkdir build
82
148
83
149
script :
84
150
- if [ "$CXX" = "clang++" ]; then export CXXFLAGS="-stdlib=libc++ ${CXXFLAGS}"; fi
85
151
- >
86
152
eval "ARCH_FLAGS=\${ARCH_FLAGS_${ARCH}}" ;
87
153
(cd build && cmake
88
154
-DRAPIDJSON_HAS_STDSTRING=ON
155
+ -DRAPIDJSON_USE_MEMBERSMAP=$MEMBERSMAP
89
156
-DRAPIDJSON_BUILD_CXX11=$CXX11
157
+ -DRAPIDJSON_BUILD_CXX17=$CXX17
90
158
-DCMAKE_VERBOSE_MAKEFILE=ON
91
159
-DCMAKE_BUILD_TYPE=$CONF
92
- -DCMAKE_CXX_FLAGS="$ARCH_FLAGS $GCOV_FLAGS"
160
+ -DCMAKE_CXX_FLAGS="$ARCH_FLAGS $GCOV_FLAGS $CXX_FLAGS "
93
161
-DCMAKE_EXE_LINKER_FLAGS=$GCOV_FLAGS
94
162
..)
95
163
- cd build
0 commit comments