.appveyor.yml 8.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177
  1. version: 8.3.0-{build}
  2. image:
  3. - Visual Studio 2019
  4. environment:
  5. STUDIO_VERSION_EDITION: Studio\2019\Community
  6. CMAKE_CONFIG: Debug
  7. TEST_TARGET: check
  8. matrix:
  9. - TARGET: cmake
  10. CMAKE_OPTIONS: -DCMAKE_BUILD_TYPE=Debug -DBUILD_SHARED_LIBS=OFF -Dbuild_tests=ON -Denable_cplusplus=ON -Denable_gc_assertions=ON -Werror=deprecated -Dwithout_libatomic_ops=ON
  11. - TARGET: cmake
  12. CMAKE_OPTIONS: -Dbuild_tests=ON -Denable_cplusplus=ON -Denable_throw_bad_alloc_library=OFF -Denable_gc_assertions=ON -Denable_gc_debug=ON -Denable_threads=OFF
  13. - TARGET: cmake
  14. CFLAGS_EXTRA: -DNO_MSGBOX_ON_ERROR -DNO_MPROTECT_VDB -DGC_READ_ENV_FILE
  15. CMAKE_CONFIG: Release
  16. CMAKE_OPTIONS: -DCMAKE_BUILD_TYPE=Release -Dbuild_tests=ON -Denable_cplusplus=ON -Denable_large_config=ON -Ddisable_gc_debug=ON
  17. - TARGET: cmake
  18. CMAKE_CONFIG: Release
  19. CMAKE_OPTIONS: -DCMAKE_BUILD_TYPE=MinSizeRel -Denable_parallel_mark=OFF
  20. - TARGET: cmake
  21. CMAKE_OPTIONS: -Denable_gc_assertions=ON -Denable_thread_local_alloc=OFF -Ddisable_single_obj_compilation=ON
  22. - TARGET: cmake
  23. CFLAGS_EXTRA: -DGC_DISABLE_INCREMENTAL
  24. CMAKE_OPTIONS: -Denable_gc_assertions=ON -Denable_gcj_support=OFF -Denable_parallel_mark=OFF -Denable_thread_local_alloc=OFF
  25. - TARGET: cmake
  26. CMAKE_OPTIONS: -A Win32 -Dbuild_tests=ON -Denable_cplusplus=ON -Denable_gc_assertions=ON -Denable_large_config=ON
  27. - TARGET: cmake
  28. CMAKE_OPTIONS: -A ARM -Denable_cplusplus=ON -Denable_gc_assertions=ON
  29. - TARGET: cmake
  30. CMAKE_OPTIONS: -A ARM64 -DCMAKE_BUILD_TYPE=Release -Denable_cplusplus=ON
  31. CMAKE_CONFIG: Release
  32. - TARGET: nmake
  33. ARCH: x86
  34. NMAKE_OPTIONS: enable_static=1
  35. - TARGET: nmake
  36. ARCH: x64
  37. CFLAGS_EXTRA: /J
  38. - TARGET: nmake
  39. ARCH: x86
  40. NMAKE_OPTIONS: nodebug=1
  41. - TARGET: nmake
  42. ARCH: x64
  43. NMAKE_OPTIONS: disable_threads=1
  44. - TARGET: djgpp-no-make
  45. CFLAGS_EXTRA: -O3 -DALL_INTERIOR_POINTERS -DNO_EXECUTE_PERMISSION -DENABLE_DISCLAIM -DGC_ATOMIC_UNCOLLECTABLE -DGC_GCJ_SUPPORT
  46. - TARGET: dmc
  47. CFLAGS_EXTRA: -s
  48. - TARGET: mingw
  49. - TARGET: mingw
  50. CFLAGS_EXTRA: -D GC_THREADS -D THREAD_LOCAL_ALLOC -D PARALLEL_MARK -D GC_ASSERTIONS -D EMPTY_GETENV_RESULTS -D GC_GCJ_SUPPORT -D USE_MUNMAP -D LARGE_CONFIG -D NO_MSGBOX_ON_ERROR
  51. - TARGET: mingw
  52. CFLAGS_EXTRA: -O3 -march=native -D GC_THREADS -D GC_GCJ_SUPPORT -D GC_TIME_LIMIT=10 -D WINXP_USE_PERF_COUNTER -D NO_MSGBOX_ON_ERROR
  53. - TARGET: mingw-shared-no-make
  54. CFLAGS_EXTRA: -D GC_THREADS -D GC_ASSERTIONS -D ENABLE_DISCLAIM -D GC_GCJ_SUPPORT -D GC_PREFER_MPROTECT_VDB -D GC_CALL=__stdcall -D GC_CALLBACK=__fastcall -D CONSOLE_LOG -D NO_MSGBOX_ON_ERROR
  55. - TARGET: wcc
  56. WCC_SYSTEM: OS2
  57. CFLAGS_EXTRA: -DGC_ASSERTIONS
  58. ENABLE_STATIC_OPT: "ENABLE_STATIC=1"
  59. TEST_TARGET: check-deps
  60. WCC_INC_SUBDIR: os2
  61. - TARGET: wcc
  62. WCC_SYSTEM: MSWIN32
  63. CFLAGS_EXTRA: -DCONSOLE_LOG -DUSE_MMAP -DUSE_MUNMAP
  64. WCC_INC_SUBDIR: nt
  65. - TARGET: mingw-w64
  66. CFLAGS_EXTRA: -D NO_MSGBOX_ON_ERROR
  67. - TARGET: mingw-w64
  68. CFLAGS_EXTRA: -D GC_THREADS -D THREAD_LOCAL_ALLOC -D PARALLEL_MARK -D GC_ASSERTIONS -D GC_GCJ_SUPPORT -D NO_RETRY_GET_THREAD_CONTEXT
  69. - TARGET: cygwin
  70. CONF_OPTIONS: --enable-cplusplus
  71. CFLAGS_EXTRA: -D GCTEST_PRINT_VERBOSE
  72. - TARGET: cygwin64
  73. CONF_OPTIONS: --disable-threads
  74. CFLAGS_EXTRA: -std=c11 -D USE_WINALLOC
  75. - TARGET: cygwin64
  76. CONF_OPTIONS: --enable-cplusplus
  77. CFLAGS_EXTRA: -D GCTEST_PRINT_VERBOSE
  78. - TARGET: cygwin
  79. CONF_OPTIONS: --enable-cplusplus --disable-munmap --enable-gc-assertions --enable-redirect-malloc
  80. - TARGET: cygwin64
  81. CFLAGS_EXTRA: -D GC_ALWAYS_MULTITHREADED -D LINT2 -D TEST_MANUAL_VDB
  82. CONF_OPTIONS: --enable-cplusplus --enable-gc-assertions --disable-shared
  83. clone_depth: 50
  84. install:
  85. - cmd: git clone --depth=50 https://github.com/ivmai/libatomic_ops.git
  86. build_script:
  87. - cmd: if [%TARGET%]==[cmake] (
  88. mkdir out && cd out
  89. && cmake %CMAKE_OPTIONS% -Denable_werror=ON -DCFLAGS_EXTRA="%CFLAGS_EXTRA%" ..
  90. && cmake --build . --config %CMAKE_CONFIG% --verbose )
  91. - cmd: if [%TARGET%]==[nmake] (
  92. "C:\Program Files (x86)\Microsoft Visual %STUDIO_VERSION_EDITION%\VC\Auxiliary\Build\vcvarsall.bat" %ARCH%
  93. && nmake /f NT_MAKEFILE %NMAKE_OPTIONS% CFLAGS_EXTRA="/WX %CFLAGS_EXTRA%" )
  94. - cmd: if [%TARGET%]==[cygwin] (
  95. C:\cygwin\bin\bash -e -l -c
  96. "cd /cygdrive/c/projects/bdwgc && ./autogen.sh
  97. && ./configure %CONF_OPTIONS% --enable-werror && cat include/config.h
  98. && make -j CFLAGS_EXTRA='%CFLAGS_EXTRA%'" )
  99. - cmd: if [%TARGET%]==[cygwin64] (
  100. C:\cygwin64\bin\bash -e -l -c
  101. "cd /cygdrive/c/projects/bdwgc && ./autogen.sh
  102. && ./configure %CONF_OPTIONS% --enable-werror && cat include/config.h
  103. && make -j CFLAGS_EXTRA='%CFLAGS_EXTRA%'" )
  104. - cmd: if [%TARGET%]==[djgpp-no-make] (
  105. appveyor DownloadFile "https://github.com/andrewwutw/build-djgpp/releases/download/v3.1/djgpp-mingw-gcc1020-standalone.zip"
  106. && 7z x -o.. djgpp-mingw-gcc1020-standalone.zip > nul
  107. && ..\djgpp\setenv.bat
  108. && gcc -I include -Werror -Wall -Wextra -Wpedantic %CFLAGS_EXTRA% -c extra/gc.c )
  109. - cmd: if [%TARGET%]==[dmc] (
  110. appveyor DownloadFile "http://ftp.digitalmars.com/Digital_Mars_C++/Patch/dm857c.zip"
  111. && 7z x -o.. dm857c.zip > nul && set "path=%cd%\..\dm\bin;%path%"
  112. && make -f digimars.mak CFLAGS_EXTRA="-wx %CFLAGS_EXTRA%" )
  113. - cmd: if [%TARGET%]==[mingw] (
  114. C:\MinGW\msys\1.0\bin\bash -e -l -c
  115. "cd /c/projects/bdwgc
  116. && make -j -f Makefile.direct CC=gcc CFLAGS_EXTRA='-Werror -Wall -Wextra -Wpedantic %CFLAGS_EXTRA%'" )
  117. - cmd: if [%TARGET%]==[mingw-shared-no-make] (
  118. C:\MinGW\msys\1.0\bin\bash -e -l -c
  119. "cd /c/projects/bdwgc
  120. && gcc -I include -D GC_BUILTIN_ATOMIC -D GC_DLL -Werror -Wall -Wextra -Wpedantic %CFLAGS_EXTRA% -shared -o gc.dll extra/gc.c" )
  121. - cmd: if [%TARGET%]==[mingw-w64] (
  122. C:\msys64\usr\bin\bash -e -l -c
  123. "cd /c/projects/bdwgc
  124. && make -j -f Makefile.direct CC=gcc CFLAGS_EXTRA='-Werror -Wall -Wextra -Wpedantic %CFLAGS_EXTRA%'" )
  125. - cmd: if [%TARGET%]==[wcc] (
  126. appveyor DownloadFile "https://master.dl.sourceforge.net/project/openwatcom/open-watcom-2.0-2017-11-01/ow-snapshot.7z"
  127. && 7z x -o..\watcom ow-snapshot.7z > nul
  128. && set "watcom=%cd%\..\watcom" && set "path=%cd%\..\watcom\binnt64"
  129. && set "include=%cd%\..\watcom\h\%WCC_INC_SUBDIR%;%cd%\..\watcom\h"
  130. && wmake -f WCC_MAKEFILE SYSTEM=%WCC_SYSTEM% %ENABLE_STATIC_OPT% CFLAGS_EXTRA="-we %CFLAGS_EXTRA%" )
  131. test_script:
  132. - cmd: if [%TARGET%]==[cmake] ( ctest --build-config %CMAKE_CONFIG% -j4 -V )
  133. - cmd: if [%TARGET%]==[nmake] (
  134. "C:\Program Files (x86)\Microsoft Visual %STUDIO_VERSION_EDITION%\VC\Auxiliary\Build\vcvarsall.bat" %ARCH%
  135. && nmake /f NT_MAKEFILE %TEST_TARGET% %NMAKE_OPTIONS% CFLAGS_EXTRA="/WX %CFLAGS_EXTRA%"
  136. && nmake /f NT_MAKEFILE clean )
  137. - cmd: if [%TARGET%]==[cygwin] (
  138. C:\cygwin\bin\bash -e -l -c
  139. "cd /cygdrive/c/projects/bdwgc
  140. && make -j check-without-test-driver CFLAGS_EXTRA='%CFLAGS_EXTRA%'" )
  141. - cmd: if [%TARGET%]==[cygwin64] (
  142. C:\cygwin64\bin\bash -e -l -c
  143. "cd /cygdrive/c/projects/bdwgc
  144. && make -j check-without-test-driver CFLAGS_EXTRA='%CFLAGS_EXTRA%'" )
  145. - cmd: if [%TARGET%]==[djgpp-no-make] (
  146. ..\djgpp\setenv.bat
  147. && gcc -I include -Werror -Wall -Wextra -Wpedantic %CFLAGS_EXTRA% -o cordtest.exe cord/tests/cordtest.c cord/*.c gc.o
  148. && gcc -I include -Werror -Wall -Wextra -Wpedantic %CFLAGS_EXTRA% -v -o gctest.exe tests/gctest.c gc.o )
  149. - cmd: if [%TARGET%]==[dmc] (
  150. set "path=%cd%\..\dm\bin;%path%"
  151. && make -f digimars.mak %TEST_TARGET% CFLAGS_EXTRA="-wx %CFLAGS_EXTRA%"
  152. && type gctest.gc.log cpptest.gc.log
  153. && make -f digimars.mak clean )
  154. - cmd: if [%TARGET%]==[mingw] (
  155. C:\MinGW\msys\1.0\bin\bash -e -l -c
  156. "cd /c/projects/bdwgc
  157. && make -j -f Makefile.direct %TEST_TARGET% CC=gcc CFLAGS_EXTRA='-DGC_NOT_DLL -Werror -Wall -Wextra -Wpedantic %CFLAGS_EXTRA%'" )
  158. - cmd: if [%TARGET%]==[mingw-shared-no-make] (
  159. C:\MinGW\msys\1.0\bin\bash -e -l -c
  160. "cd /c/projects/bdwgc
  161. && gcc -I include -D GC_BUILTIN_ATOMIC -D GC_DLL -Werror -Wall -Wextra -Wpedantic %CFLAGS_EXTRA% -o gctest.exe tests/gctest.c gc.dll
  162. && gctest.exe" )
  163. - cmd: if [%TARGET%]==[mingw-w64] (
  164. C:\msys64\usr\bin\bash -e -l -c
  165. "cd /c/projects/bdwgc
  166. && make -j -f Makefile.direct %TEST_TARGET% CC=gcc CFLAGS_EXTRA='-Werror -Wall -Wextra -Wpedantic %CFLAGS_EXTRA%'" )
  167. - cmd: if [%TARGET%]==[wcc] (
  168. set "watcom=%cd%\..\watcom" && set "beginlibpath=%cd%\..\watcom\binp\dll"
  169. && set "path=%cd%\..\watcom\binnt64;%cd%\..\watcom\binnt"
  170. && wmake -f WCC_MAKEFILE %TEST_TARGET% SYSTEM=%WCC_SYSTEM% %ENABLE_STATIC_OPT% CFLAGS_EXTRA="-we %CFLAGS_EXTRA%"
  171. && wmake -f WCC_MAKEFILE clean )