appveyor.yml 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111
  1. #---------------------------------#
  2. # general configuration #
  3. #---------------------------------#
  4. version: 1.0.{build}
  5. max_jobs: 2
  6. #---------------------------------#
  7. # environment configuration #
  8. #---------------------------------#
  9. clone_depth: 2
  10. environment:
  11. matrix:
  12. - COMPILER: "visual"
  13. ARCH: "x64"
  14. TEST_XXHSUM: "true"
  15. - COMPILER: "visual"
  16. ARCH: "x64"
  17. APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2017
  18. TEST_XXHSUM: "true"
  19. - COMPILER: "visual"
  20. ARCH: "Win32"
  21. TEST_XXHSUM: "true"
  22. - COMPILER: "visual"
  23. ARCH: "Win32"
  24. APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2013
  25. TEST_XXHSUM: "true"
  26. - COMPILER: "visual"
  27. ARCH: "ARM"
  28. - COMPILER: "visual"
  29. ARCH: "ARM64"
  30. APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2017
  31. # note: ARM64 is not available with Visual Studio 14 2015, which is default for Appveyor
  32. - COMPILER: "gcc"
  33. PLATFORM: "mingw64"
  34. - COMPILER: "gcc"
  35. PLATFORM: "mingw32"
  36. - COMPILER: "gcc"
  37. PLATFORM: "clang"
  38. install:
  39. - ECHO Installing %COMPILER% %PLATFORM% %ARCH%
  40. - MKDIR bin
  41. - if [%COMPILER%]==[gcc] SET PATH_ORIGINAL=%PATH%
  42. - if [%COMPILER%]==[gcc] (
  43. SET "PATH_MINGW32=c:\MinGW\bin;c:\MinGW\usr\bin" &&
  44. SET "PATH_MINGW64=c:\msys64\mingw64\bin;c:\msys64\usr\bin" &&
  45. COPY C:\MinGW\bin\mingw32-make.exe C:\MinGW\bin\make.exe &&
  46. COPY C:\MinGW\bin\gcc.exe C:\MinGW\bin\cc.exe
  47. )
  48. #---------------------------------#
  49. # build configuration #
  50. #---------------------------------#
  51. build_script:
  52. - if [%PLATFORM%]==[mingw32] SET PATH=%PATH_MINGW32%;%PATH_ORIGINAL%
  53. - if [%PLATFORM%]==[mingw64] SET PATH=%PATH_MINGW64%;%PATH_ORIGINAL%
  54. - if [%PLATFORM%]==[clang] SET PATH=%PATH_MINGW64%;%PATH_ORIGINAL%
  55. - ECHO ***
  56. - ECHO Building %COMPILER% %PLATFORM% %ARCH%
  57. - ECHO ***
  58. - if [%COMPILER%]==[gcc] (
  59. if [%PLATFORM%]==[clang] (
  60. clang -v
  61. ) ELSE (
  62. gcc -v
  63. )
  64. )
  65. - if [%COMPILER%]==[gcc] (
  66. echo ----- &&
  67. make -v &&
  68. echo ----- &&
  69. if not [%PLATFORM%]==[clang] (
  70. if [%PLATFORM%]==[mingw32] ( SET CPPFLAGS=-DPOOL_MT=0 ) &&
  71. make -B clean test MOREFLAGS=-Werror
  72. ) ELSE (
  73. SET CXXFLAGS=--std=c++14 &&
  74. make -B clean test CC=clang CXX=clang++ MOREFLAGS="--target=x86_64-w64-mingw32 -Werror -Wno-pass-failed" NO_C90_TEST=true
  75. ) &&
  76. make -C tests/bench
  77. )
  78. # note 1: strict c90 tests with clang fail, due to (erroneous) presence on `inline` keyword in some included system file
  79. # note 2: multi-threading code doesn't work with mingw32, disabled through POOL_MT=0
  80. # note 3: clang requires C++14 to compile sort because its own code contains c++14-only code
  81. - if [%COMPILER%]==[visual] (
  82. cd cmake_unofficial &&
  83. cmake . -DCMAKE_BUILD_TYPE=Release -A %ARCH% -DXXHASH_C_FLAGS="/WX" &&
  84. cmake --build . --config Release
  85. )
  86. #---------------------------------#
  87. # tests configuration #
  88. #---------------------------------#
  89. test_script:
  90. # note: can only run x86 and x64 binaries on Appveyor
  91. # note: if %COMPILER%==gcc, xxhsum was already tested within `make test`
  92. - if [%TEST_XXHSUM%]==[true] (
  93. ECHO *** &&
  94. ECHO Testing %COMPILER% %PLATFORM% %ARCH% &&
  95. ECHO *** &&
  96. cd Release &&
  97. xxhsum.exe -bi1 &&
  98. ECHO ------- xxhsum tested -------
  99. )
  100. #---------------------------------#
  101. # artifacts configuration #
  102. #---------------------------------#
  103. # none yet