.travis.yml 7.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268
  1. language: cpp
  2. dist: xenial
  3. matrix:
  4. include:
  5. - compiler: gcc
  6. addons:
  7. apt:
  8. sources:
  9. - ubuntu-toolchain-r-test
  10. packages:
  11. - g++-5
  12. env: COMPILER=g++-5 CXXSTD=11
  13. - compiler: gcc
  14. addons:
  15. apt:
  16. sources:
  17. - ubuntu-toolchain-r-test
  18. packages:
  19. - g++-6
  20. env: COMPILER=g++-6 CXXSTD=11
  21. - compiler: gcc
  22. addons:
  23. apt:
  24. sources:
  25. - ubuntu-toolchain-r-test
  26. packages:
  27. - g++-7
  28. env: COMPILER=g++-7 CXXSTD=11
  29. - compiler: gcc
  30. addons:
  31. apt:
  32. sources:
  33. - ubuntu-toolchain-r-test
  34. packages:
  35. - g++-8
  36. env: COMPILER=g++-8 CXXSTD=11
  37. - compiler: gcc
  38. addons:
  39. apt:
  40. sources:
  41. - ubuntu-toolchain-r-test
  42. packages:
  43. - g++-4.9
  44. env: COMPILER=g++-4.9 CXXSTD=11
  45. - compiler: gcc
  46. addons:
  47. apt:
  48. sources:
  49. - ubuntu-toolchain-r-test
  50. packages:
  51. - g++-4.8
  52. env: COMPILER=g++-4.8 CXXSTD=11
  53. - compiler: clang
  54. addons:
  55. apt:
  56. sources:
  57. - llvm-toolchain-precise-3.5
  58. - ubuntu-toolchain-r-test
  59. packages:
  60. - clang++-3.5
  61. - libc++-dev
  62. env: COMPILER=clang++-3.5 CXXSTD=11
  63. - compiler: clang
  64. addons:
  65. apt:
  66. sources:
  67. - llvm-toolchain-precise-3.6
  68. - ubuntu-toolchain-r-test
  69. packages:
  70. - clang++-3.6
  71. - libc++-dev
  72. env: COMPILER=clang++-3.6 CXXSTD=11
  73. - compiler: clang
  74. addons:
  75. apt:
  76. sources:
  77. - llvm-toolchain-precise-3.7
  78. - ubuntu-toolchain-r-test
  79. packages:
  80. - clang++-3.7
  81. - libc++-dev
  82. env: COMPILER=clang++-3.7 CXXSTD=11
  83. - compiler: clang
  84. addons:
  85. apt:
  86. sources:
  87. - sourceline: "deb http://apt.llvm.org/xenial/ llvm-toolchain-xenial-3.8 main"
  88. key_url: "http://apt.llvm.org/llvm-snapshot.gpg.key"
  89. - ubuntu-toolchain-r-test
  90. packages:
  91. - clang++-3.8
  92. - libc++-dev
  93. env: COMPILER=clang++-3.8 CXXSTD=11
  94. - compiler: clang
  95. addons:
  96. apt:
  97. sources:
  98. - sourceline: "deb http://apt.llvm.org/xenial/ llvm-toolchain-xenial-3.9 main"
  99. key_url: "http://apt.llvm.org/llvm-snapshot.gpg.key"
  100. - ubuntu-toolchain-r-test
  101. packages:
  102. - clang++-3.9
  103. - libc++-dev
  104. env: COMPILER=clang++-3.9 CXXSTD=11
  105. - compiler: clang
  106. addons:
  107. apt:
  108. sources:
  109. - llvm-toolchain-xenial-4.0
  110. - ubuntu-toolchain-r-test
  111. packages:
  112. - clang++-4.0
  113. - libc++-dev
  114. env: COMPILER=clang++-4.0 CXXSTD=11
  115. - compiler: clang
  116. addons:
  117. apt:
  118. sources:
  119. - llvm-toolchain-xenial-5.0
  120. - ubuntu-toolchain-r-test
  121. packages:
  122. - clang++-5.0
  123. - libc++-dev
  124. env: COMPILER=clang++-5.0 CXXSTD=11
  125. - compiler: clang
  126. addons:
  127. apt:
  128. sources:
  129. - llvm-toolchain-xenial-6.0
  130. - ubuntu-toolchain-r-test
  131. packages:
  132. - clang++-6.0
  133. - libc++-dev
  134. env: COMPILER=clang++-6.0 CXXSTD=11
  135. - compiler: gcc
  136. addons:
  137. apt:
  138. sources:
  139. - ubuntu-toolchain-r-test
  140. packages:
  141. - g++-5
  142. env: COMPILER=g++-5 CXXSTD=14
  143. - compiler: gcc
  144. addons:
  145. apt:
  146. sources:
  147. - ubuntu-toolchain-r-test
  148. packages:
  149. - g++-6
  150. env: COMPILER=g++-6 CXXSTD=14
  151. - compiler: gcc
  152. addons:
  153. apt:
  154. sources:
  155. - ubuntu-toolchain-r-test
  156. packages:
  157. - g++-7
  158. env: COMPILER=g++-7 CXXSTD=14
  159. - compiler: gcc
  160. addons:
  161. apt:
  162. sources:
  163. - ubuntu-toolchain-r-test
  164. packages:
  165. - g++-8
  166. env: COMPILER=g++-8 CXXSTD=14
  167. - compiler: clang
  168. addons:
  169. apt:
  170. sources:
  171. - llvm-toolchain-precise-3.5
  172. - ubuntu-toolchain-r-test
  173. packages:
  174. - clang++-3.5
  175. - libc++-dev
  176. env: COMPILER=clang++-3.5 CXXSTD=14
  177. - compiler: clang
  178. addons:
  179. apt:
  180. sources:
  181. - llvm-toolchain-precise-3.6
  182. - ubuntu-toolchain-r-test
  183. packages:
  184. - clang++-3.6
  185. - libc++-dev
  186. env: COMPILER=clang++-3.6 CXXSTD=14
  187. - compiler: clang
  188. addons:
  189. apt:
  190. sources:
  191. - llvm-toolchain-precise-3.7
  192. - ubuntu-toolchain-r-test
  193. packages:
  194. - clang++-3.7
  195. - libc++-dev
  196. env: COMPILER=clang++-3.7 CXXSTD=14
  197. - compiler: clang
  198. addons:
  199. apt:
  200. sources:
  201. - sourceline: "deb http://apt.llvm.org/xenial/ llvm-toolchain-xenial-3.8 main"
  202. key_url: "http://apt.llvm.org/llvm-snapshot.gpg.key"
  203. - ubuntu-toolchain-r-test
  204. packages:
  205. - clang++-3.8
  206. - libc++-dev
  207. env: COMPILER=clang++-3.8 CXXSTD=14
  208. - compiler: clang
  209. addons:
  210. apt:
  211. sources:
  212. - sourceline: "deb http://apt.llvm.org/xenial/ llvm-toolchain-xenial-3.9 main"
  213. key_url: "http://apt.llvm.org/llvm-snapshot.gpg.key"
  214. - ubuntu-toolchain-r-test
  215. packages:
  216. - clang++-3.9
  217. - libc++-dev
  218. env: COMPILER=clang++-3.9 CXXSTD=14
  219. - compiler: clang
  220. addons:
  221. apt:
  222. sources:
  223. - llvm-toolchain-xenial-4.0
  224. - ubuntu-toolchain-r-test
  225. packages:
  226. - clang++-4.0
  227. - libc++-dev
  228. env: COMPILER=clang++-4.0 CXXSTD=14
  229. - compiler: clang
  230. addons:
  231. apt:
  232. sources:
  233. - llvm-toolchain-xenial-5.0
  234. - ubuntu-toolchain-r-test
  235. packages:
  236. - clang++-5.0
  237. - libc++-dev
  238. env: COMPILER=clang++-5.0 CXXSTD=14
  239. - compiler: clang
  240. addons:
  241. apt:
  242. sources:
  243. - llvm-toolchain-xenial-6.0
  244. - ubuntu-toolchain-r-test
  245. packages:
  246. - clang++-6.0
  247. - libc++-dev
  248. env: COMPILER=clang++-6.0 CXXSTD=14
  249. before_install:
  250. - sudo apt update
  251. - sudo apt install -y apt-transport-https ca-certificates gnupg software-properties-common
  252. - curl -L https://apt.kitware.com/keys/kitware-archive-latest.asc | sudo apt-key add -
  253. - sudo apt-add-repository 'deb https://apt.kitware.com/ubuntu/ xenial main'
  254. - sudo apt update
  255. install:
  256. - if [ "$CXX" = "clang++" ]; then export CXX="$COMPILER -stdlib=libc++"; fi
  257. - if [ "$CXX" = "g++" ]; then export CXX="$COMPILER"; fi
  258. - sudo apt install -y cmake
  259. script:
  260. - /usr/bin/cmake -B build -S . "-DCMAKE_CXX_STANDARD=$CXXSTD"
  261. - /usr/bin/cmake --build build
  262. - /usr/bin/cmake --build build --target test