11sudo : required
2- dist : precise
2+ dist : xenial
33
44language : cpp
55cache :
66 - ccache
77
8+ addons :
9+ apt :
10+ sources :
11+ - ubuntu-toolchain-r-test
12+ packages :
13+ - cmake
14+ - valgrind
15+ - clang-8
816env :
917 global :
1018 - USE_CCACHE=1
1321 - CCACHE_MAXSIZE=100M
1422 - ARCH_FLAGS_x86='-m32' # #266: don't use SSE on 32-bit
1523 - 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'
1726 - secure : " HrsaCb+N66EG1HR+LWH1u51SjaJyRwJEDzqJGYMB7LJ/bfqb9mWKF1fLvZGk46W5t7TVaXRDD5KHFx9DPWvKn4gRUVkwTHEy262ah5ORh8M6n/6VVVajeV/AYt2C0sswdkDBDO4Xq+xy5gdw3G8s1A4Inbm73pUh+6vx+7ltBbk="
1827
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-
2428matrix :
2529 include :
2630 # 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
2844 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'
3047 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'
3250 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
3453 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
3561 # 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
3772 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
3975 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
4178 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
4381 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
4584 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
4787 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
4892 # 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
50103 compiler : gcc
104+ arch : amd64
51105 cache :
52106 - ccache
53107 - pip
54108 after_success :
55109 - pip install --user cpp-coveralls
56110 - 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
58112 compiler : gcc
113+ arch : arm64
59114 cache :
60115 - ccache
61116 - pip
@@ -72,24 +127,37 @@ matrix:
72127 packages :
73128 - doxygen
74129
130+ before_install :
131+ - if [ "x86_64" = "$(arch)" ]; then sudo apt-get install -y g++-multilib libc6-dbg:i386 --allow-unauthenticated; fi
132+
75133before_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
82148
83149script :
84150 - if [ "$CXX" = "clang++" ]; then export CXXFLAGS="-stdlib=libc++ ${CXXFLAGS}"; fi
85151 - >
86152 eval "ARCH_FLAGS=\${ARCH_FLAGS_${ARCH}}" ;
87153 (cd build && cmake
88154 -DRAPIDJSON_HAS_STDSTRING=ON
155+ -DRAPIDJSON_USE_MEMBERSMAP=$MEMBERSMAP
89156 -DRAPIDJSON_BUILD_CXX11=$CXX11
157+ -DRAPIDJSON_BUILD_CXX17=$CXX17
90158 -DCMAKE_VERBOSE_MAKEFILE=ON
91159 -DCMAKE_BUILD_TYPE=$CONF
92- -DCMAKE_CXX_FLAGS="$ARCH_FLAGS $GCOV_FLAGS"
160+ -DCMAKE_CXX_FLAGS="$ARCH_FLAGS $GCOV_FLAGS $CXX_FLAGS "
93161 -DCMAKE_EXE_LINKER_FLAGS=$GCOV_FLAGS
94162 ..)
95163 - cd build
0 commit comments