11 - ubuntu-toolchain-r-test
19 - CCACHE_SLOPPINESS=pch_defines,time_macros
22 - ARCH_FLAGS_x86='-m32' # #266: don't use SSE on 32-bit
23 - ARCH_FLAGS_x86_64='-msse4.2' # use SSE4.2 on 64-bit
24 - ARCH_FLAGS_aarch64='-march=armv8-a'
25 - GITHUB_REPO='Tencent/rapidjson'
26 - secure: "HrsaCb+N66EG1HR+LWH1u51SjaJyRwJEDzqJGYMB7LJ/bfqb9mWKF1fLvZGk46W5t7TVaXRDD5KHFx9DPWvKn4gRUVkwTHEy262ah5ORh8M6n/6VVVajeV/AYt2C0sswdkDBDO4Xq+xy5gdw3G8s1A4Inbm73pUh+6vx+7ltBbk="
31 - env: CONF=release ARCH=x86 CXX11=ON CXX17=OFF MEMBERSMAP=OFF
34 - env: CONF=release ARCH=x86_64 CXX11=ON CXX17=OFF MEMBERSMAP=OFF
37 - env: CONF=release ARCH=x86_64 CXX11=ON CXX17=OFF MEMBERSMAP=ON
40 - env: CONF=debug ARCH=x86 CXX11=OFF CXX17=OFF MEMBERSMAP=OFF
43 - env: CONF=debug ARCH=x86_64 CXX11=OFF CXX17=OFF MEMBERSMAP=OFF
46 - env: CONF=debug ARCH=x86 CXX11=OFF CXX17=ON MEMBERSMAP=ON CXX_FLAGS='-D_GLIBCXX_DEBUG'
49 - env: CONF=debug ARCH=x86_64 CXX11=OFF CXX17=ON MEMBERSMAP=ON CXX_FLAGS='-D_GLIBCXX_DEBUG'
52 - env: CONF=release ARCH=aarch64 CXX11=ON CXX17=OFF MEMBERSMAP=OFF
55 - env: CONF=release ARCH=aarch64 CXX11=OFF CXX17=OFF MEMBERSMAP=OFF
58 - env: CONF=release ARCH=aarch64 CXX11=OFF CXX17=ON MEMBERSMAP=ON
62 - env: CONF=release ARCH=x86 CXX11=ON CXX17=OFF MEMBERSMAP=ON CCACHE_CPP2=yes
65 - env: CONF=release ARCH=x86_64 CXX11=ON CXX17=OFF MEMBERSMAP=ON CCACHE_CPP2=yes
68 - env: CONF=release ARCH=x86_64 CXX11=ON CXX17=OFF MEMBERSMAP=OFF CCACHE_CPP2=yes
71 - env: CONF=debug ARCH=x86 CXX11=OFF CXX17=OFF MEMBERSMAP=ON CCACHE_CPP2=yes
74 - env: CONF=debug ARCH=x86_64 CXX11=OFF CXX17=OFF MEMBERSMAP=ON CCACHE_CPP2=yes
77 - env: CONF=debug ARCH=x86 CXX11=OFF CXX17=ON MEMBERSMAP=OFF CCACHE_CPP2=yes
80 - env: CONF=debug ARCH=x86_64 CXX11=OFF CXX17=ON MEMBERSMAP=OFF CCACHE_CPP2=yes
83 - env: CONF=debug ARCH=aarch64 CXX11=ON CXX17=OFF MEMBERSMAP=ON CCACHE_CPP2=yes
86 - env: CONF=debug ARCH=aarch64 CXX11=OFF CXX17=OFF MEMBERSMAP=ON CCACHE_CPP2=yes
89 - env: CONF=debug ARCH=aarch64 CXX11=OFF CXX17=ON MEMBERSMAP=OFF CCACHE_CPP2=yes
93 - env: CONF=debug ARCH=x86 GCOV_FLAGS='--coverage' CXX_FLAGS='-O0' CXX11=OFF CXX17=OFF
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
109 - pip install --user cpp-coveralls
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
111 - env: CONF=debug ARCH=aarch64 GCOV_FLAGS='--coverage' CXX_FLAGS='-O0' CXX11=OFF CXX17=ON
118 - pip install --user cpp-coveralls
119 - 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
120 - script: # Documentation task
122 - cmake .. -DRAPIDJSON_HAS_STDSTRING=ON -DCMAKE_VERBOSE_MAKEFILE=ON
131 - if [ "x86_64" = "$(arch)" ]; then sudo apt-get install -y g++-multilib libc6-dbg:i386 --allow-unauthenticated; fi
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;
141 - if [ "$CXX" = "clang++" ]; then export CCACHE_CPP2=yes; fi
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
150 - if [ "$CXX" = "clang++" ]; then export CXXFLAGS="-stdlib=libc++ ${CXXFLAGS}"; fi
152 eval "ARCH_FLAGS=\${ARCH_FLAGS_${ARCH}}" ;
154 -DRAPIDJSON_HAS_STDSTRING=ON
155 -DRAPIDJSON_USE_MEMBERSMAP=$MEMBERSMAP
156 -DRAPIDJSON_BUILD_CXX11=$CXX11
157 -DRAPIDJSON_BUILD_CXX17=$CXX17
158 -DCMAKE_VERBOSE_MAKEFILE=ON
159 -DCMAKE_BUILD_TYPE=$CONF
160 -DCMAKE_CXX_FLAGS="$ARCH_FLAGS $GCOV_FLAGS $CXX_FLAGS"
161 -DCMAKE_EXE_LINKER_FLAGS=$GCOV_FLAGS
166 - ctest -j 2 -V `[ "$CONF" = "release" ] || echo "-E perftest"`