.travis.yml 8.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274
  1. language: cpp
  2. git:
  3. depth: false
  4. env:
  5. global:
  6. - BUILD_TOOLCHAIN="Unix Makefiles"
  7. - MAKEFLAGS="-j2"
  8. dist: bionic
  9. matrix:
  10. include:
  11. - name: "Linux Clang Default [64-bit] [DBG]"
  12. env: BUILD_MATRIX="BUILD_TYPE=Debug && CC=clang-9 && CXX=clang++-9"
  13. os: linux
  14. addons:
  15. apt:
  16. sources:
  17. - sourceline: "ppa:ubuntu-toolchain-r/test"
  18. packages: [clang++-9]
  19. - name: "Linux Clang Default [64-bit] [REL]"
  20. env: BUILD_MATRIX="BUILD_TYPE=Release && CC=clang-9 && CXX=clang++-9"
  21. os: linux
  22. addons:
  23. apt:
  24. sources:
  25. - sourceline: "ppa:ubuntu-toolchain-r/test"
  26. packages: [clang++-9]
  27. - name: "Linux Clang Default [64-bit] [REL] [Sanitize=Address]"
  28. env: BUILD_MATRIX="BUILD_TYPE=Release && CC=clang-9 && CXX=clang++-9" SANITIZE=address
  29. os: linux
  30. addons:
  31. apt:
  32. sources:
  33. - sourceline: "ppa:ubuntu-toolchain-r/test"
  34. packages: [clang++-9]
  35. - name: "Linux Clang Default [64-bit] [REL] [Sanitize=Undefined]"
  36. env: BUILD_MATRIX="BUILD_TYPE=Release && CC=clang-9 && CXX=clang++-9" SANITIZE=undefined
  37. os: linux
  38. addons:
  39. apt:
  40. sources:
  41. - sourceline: "ppa:ubuntu-toolchain-r/test"
  42. packages: [clang++-9]
  43. - name: "Linux GCC Default [64-bit] [DBG + Valgrind]"
  44. env: BUILD_MATRIX="BUILD_TYPE=Debug" USE_VALGRIND=1
  45. os: linux
  46. addons:
  47. apt:
  48. packages: [valgrind]
  49. - name: "Linux GCC Default [64-bit] [REL + Valgrind]"
  50. env: BUILD_MATRIX="BUILD_TYPE=Release" USE_VALGRIND=1
  51. os: linux
  52. addons:
  53. apt:
  54. packages: [valgrind]
  55. - name: "Linux GCC 4.8 [32-bit] [DBG]"
  56. env: BUILD_MATRIX="BUILD_TYPE=Debug && CC=gcc-4.8 && CXX=g++-4.8" CXXFLAGS=-m32 LDFLAGS=-m32
  57. os: linux
  58. addons:
  59. apt:
  60. packages: [g++-4.8, g++-4.8-multilib, "linux-libc-dev:i386"]
  61. - name: "Linux GCC 4.8 [64-bit] [DBG]"
  62. env: BUILD_MATRIX="BUILD_TYPE=Debug && CC=gcc-4.8 && CXX=g++-4.8"
  63. os: linux
  64. addons:
  65. apt:
  66. packages: [g++-4.8]
  67. - name: "Linux GCC 5.X [32-bit] [DBG]"
  68. env: BUILD_MATRIX="BUILD_TYPE=Debug && CC=gcc-5 && CXX=g++-5" CXXFLAGS=-m32 LDFLAGS=-m32
  69. os: linux
  70. addons:
  71. apt:
  72. packages: [g++-5, g++-5-multilib, "linux-libc-dev:i386"]
  73. - name: "Linux GCC 5.X [64-bit] [DBG]"
  74. env: BUILD_MATRIX="BUILD_TYPE=Debug && CC=gcc-5 && CXX=g++-5"
  75. os: linux
  76. addons:
  77. apt:
  78. packages: [g++-5]
  79. - name: "Linux GCC 6.X [32-bit] [DBG]"
  80. env: BUILD_MATRIX="BUILD_TYPE=Debug && CC=gcc-6 && CXX=g++-6" CXXFLAGS=-m32 LDFLAGS=-m32
  81. os: linux
  82. addons:
  83. apt:
  84. packages: [g++-6, g++-6-multilib, "linux-libc-dev:i386"]
  85. - name: "Linux GCC 6.X [64-bit] [DBG]"
  86. env: BUILD_MATRIX="BUILD_TYPE=Debug && CC=gcc-6 && CXX=g++-6"
  87. os: linux
  88. addons:
  89. apt:
  90. packages: [g++-6]
  91. - name: "Linux GCC 7.X [32-bit] [DBG]"
  92. env: BUILD_MATRIX="BUILD_TYPE=Debug && CC=gcc-7 && CXX=g++-7" CXXFLAGS=-m32 LDFLAGS=-m32
  93. os: linux
  94. addons:
  95. apt:
  96. packages: [g++-7, g++-7-multilib, "linux-libc-dev:i386"]
  97. - name: "Linux GCC 7.X [64-bit] [DBG]"
  98. env: BUILD_MATRIX="BUILD_TYPE=Debug && CC=gcc-7 && CXX=g++-7"
  99. os: linux
  100. addons:
  101. apt:
  102. packages: [g++-7]
  103. - name: "Linux GCC 8.X [32-bit] [DBG]"
  104. env: BUILD_MATRIX="BUILD_TYPE=Debug && CC=gcc-8 && CXX=g++-8" CXXFLAGS=-m32 LDFLAGS=-m32
  105. os: linux
  106. addons:
  107. apt:
  108. packages: [g++-8, g++-8-multilib, "linux-libc-dev:i386"]
  109. - name: "Linux GCC 8.X [32-bit] [REL]"
  110. env: BUILD_MATRIX="BUILD_TYPE=Release && CC=gcc-8 && CXX=g++-8" CXXFLAGS=-m32 LDFLAGS=-m32
  111. os: linux
  112. addons:
  113. apt:
  114. packages: [g++-8, g++-8-multilib, "linux-libc-dev:i386"]
  115. - name: "Linux GCC 8.X [64-bit] [DBG]"
  116. env: BUILD_MATRIX="BUILD_TYPE=Debug && CC=gcc-8 && CXX=g++-8"
  117. os: linux
  118. addons:
  119. apt:
  120. packages: [g++-8]
  121. - name: "Linux GCC 8.X [64-bit] [REL]"
  122. env: BUILD_MATRIX="BUILD_TYPE=Release && CC=gcc-8 && CXX=g++-8"
  123. os: linux
  124. addons:
  125. apt:
  126. packages: [g++-8]
  127. - name: "Linux GCC 9.X [32-bit] [DBG]"
  128. env: BUILD_MATRIX="BUILD_TYPE=Debug && CC=gcc-9 && CXX=g++-9" CXXFLAGS=-m32 LDFLAGS=-m32
  129. os: linux
  130. addons:
  131. apt:
  132. sources:
  133. - sourceline: "ppa:ubuntu-toolchain-r/test"
  134. packages: [g++-9, g++-9-multilib, "linux-libc-dev:i386"]
  135. - name: "Linux GCC 9.X [32-bit] [REL]"
  136. env: BUILD_MATRIX="BUILD_TYPE=Release && CC=gcc-9 && CXX=g++-9" CXXFLAGS=-m32 LDFLAGS=-m32
  137. os: linux
  138. addons:
  139. apt:
  140. sources:
  141. - sourceline: "ppa:ubuntu-toolchain-r/test"
  142. packages: [g++-9, g++-9-multilib, "linux-libc-dev:i386"]
  143. - name: "Linux GCC 9.X [64-bit] [DBG]"
  144. env: BUILD_MATRIX="BUILD_TYPE=Debug && CC=gcc-9 && CXX=g++-9"
  145. os: linux
  146. addons:
  147. apt:
  148. sources:
  149. - sourceline: "ppa:ubuntu-toolchain-r/test"
  150. packages: [g++-9]
  151. - name: "Linux GCC 9.X [64-bit] [REL]"
  152. env: BUILD_MATRIX="BUILD_TYPE=Release && CC=gcc-9 && CXX=g++-9"
  153. os: linux
  154. addons:
  155. apt:
  156. sources:
  157. - sourceline: "ppa:ubuntu-toolchain-r/test"
  158. packages: [g++-9]
  159. - name: "OSX Clang XCode 9.4 [32-bit] [DBG]"
  160. env: BUILD_MATRIX="BUILD_TYPE=Debug" CXXFLAGS=-m32 LDFLAGS=-m32
  161. os: osx
  162. osx_image: xcode9.4
  163. - name: "OSX Clang XCode 9.4 [32-bit] [REL]"
  164. env: BUILD_MATRIX="BUILD_TYPE=Release" CXXFLAGS=-m32 LDFLAGS=-m32
  165. os: osx
  166. osx_image: xcode9.4
  167. - name: "OSX Clang XCode 9.4 [64-bit] [DBG]"
  168. env: BUILD_MATRIX="BUILD_TYPE=Debug"
  169. os: osx
  170. osx_image: xcode9.4
  171. - name: "OSX Clang XCode 9.4 [64-bit] [REL]"
  172. env: BUILD_MATRIX="BUILD_TYPE=Release"
  173. os: osx
  174. osx_image: xcode9.4
  175. - name: "OSX Clang XCode 10.2 [64-bit] [DBG]"
  176. env: BUILD_MATRIX="BUILD_TYPE=Debug"
  177. os: osx
  178. osx_image: xcode10.2
  179. - name: "OSX Clang XCode 10.2 [64-bit] [REL]"
  180. env: BUILD_MATRIX="BUILD_TYPE=Release"
  181. os: osx
  182. osx_image: xcode10.2
  183. - name: "OSX Clang XCode 11 [64-bit] [DBG]"
  184. env: BUILD_MATRIX="BUILD_TYPE=Debug"
  185. os: osx
  186. osx_image: xcode11
  187. - name: "OSX Clang XCode 11 [64-bit] [REL]"
  188. env: BUILD_MATRIX="BUILD_TYPE=Release"
  189. os: osx
  190. osx_image: xcode11
  191. - name: "Windows VS2017 [32-bit] [DBG]"
  192. env: BUILD_MATRIX="BUILD_TYPE=Debug" BUILD_TOOLCHAIN="Visual Studio 15 2017"
  193. os: windows
  194. - name: "Windows VS2017 [32-bit] [REL]"
  195. env: BUILD_MATRIX="BUILD_TYPE=Release" BUILD_TOOLCHAIN="Visual Studio 15 2017"
  196. os: windows
  197. - name: "Windows VS2017 [64-bit] [DBG]"
  198. env: BUILD_MATRIX="BUILD_TYPE=Debug" BUILD_TOOLCHAIN="Visual Studio 15 2017 Win64"
  199. os: windows
  200. - name: "Windows VS2017 [64-bit] [REL]"
  201. env: BUILD_MATRIX="BUILD_TYPE=Release" BUILD_TOOLCHAIN="Visual Studio 15 2017 Win64"
  202. os: windows
  203. before_install:
  204. - eval "$BUILD_MATRIX"
  205. before_script:
  206. - mkdir build
  207. - cd build
  208. - |
  209. if [[ "$BUILD_TOOLCHAIN" =~ ^Visual\ Studio ]]; then
  210. cmake .. -G"${BUILD_TOOLCHAIN}" -DASMJIT_TEST=1 -DASMJIT_SANITIZE="${SANITIZE}"
  211. else
  212. cmake .. -G"${BUILD_TOOLCHAIN}" -DASMJIT_TEST=1 -DASMJIT_SANITIZE="${SANITIZE}" -DCMAKE_PREFIX_PATH="${MINGW_PATH}" -DCMAKE_BUILD_TYPE="${BUILD_TYPE}"
  213. fi
  214. - cd ..
  215. script:
  216. - cd build
  217. - |
  218. if [[ "$BUILD_TOOLCHAIN" =~ ^Visual\ Studio ]]; then
  219. cmake --build . --config ${BUILD_TYPE} -- -nologo -v:minimal
  220. cd ${BUILD_TYPE}
  221. else
  222. cmake --build .
  223. fi
  224. - |
  225. if [ "$USE_VALGRIND" = "1" ]; then
  226. RUN_CMD="valgrind --leak-check=full --show-reachable=yes --track-origins=yes"
  227. fi
  228. - eval "$RUN_CMD ./asmjit_test_unit --quick"
  229. - eval "$RUN_CMD ./asmjit_test_opcode > /dev/null"
  230. - eval "$RUN_CMD ./asmjit_test_x86_asm"
  231. - eval "$RUN_CMD ./asmjit_test_x86_cc"
  232. - eval "$RUN_CMD ./asmjit_test_x86_sections"