appveyor.yml 3.6 KB

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