summaryrefslogtreecommitdiff
path: root/.appveyor.yml
blob: 00e38caba57bc36ee12028fd6e61e7c3306783ec (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
version: 8.3.0-{build}

image:
- Visual Studio 2019

environment:
  STUDIO_VERSION_EDITION: Studio\2019\Community
  CMAKE_CONFIG: Debug
  TEST_TARGET: check
  matrix:
  - TARGET: cmake
    CFLAGS_EXTRA: -DNO_MSGBOX_ON_ERROR -DGC_DISABLE_INCREMENTAL /GR /EHsc
    CMAKE_CONFIG: Release
    CMAKE_OPTIONS: -Dbuild_tests=ON -Denable_gc_assertions=ON -Denable_throw_bad_alloc_library=OFF -Denable_parallel_mark=OFF -Denable_thread_local_alloc=OFF

# CMAKE_OPTIONS: -Dbuild_tests=ON -Denable_cplusplus=ON -Denable_gc_assertions=ON -Denable_throw_bad_alloc_library=OFF -Denable_parallel_mark=OFF -Denable_thread_local_alloc=OFF

#on_finish:
#- ps: $blockRdp = $true; iex ((new-object net.webclient).DownloadString('https://raw.githubusercontent.com/appveyor/ci/master/scripts/enable-rdp.ps1'))

# disable ctest

clone_depth: 50

install:
- cmd: git clone --depth=50 https://github.com/ivmai/libatomic_ops.git

build_script:
- cmd: if [%TARGET%]==[cmake] (
    cmake %CMAKE_OPTIONS% -Denable_werror=ON -DCFLAGS_EXTRA="%CFLAGS_EXTRA%" .
    && cmake --build . --config %CMAKE_CONFIG% )
- cmd: if [%TARGET%]==[nmake] (
    "C:\Program Files (x86)\Microsoft Visual %STUDIO_VERSION_EDITION%\VC\Auxiliary\Build\vcvarsall.bat" %ARCH%
    && nmake /f NT_MAKEFILE %NMAKE_OPTIONS% CFLAGS_EXTRA="/WX %CFLAGS_EXTRA%" )
- cmd: if [%TARGET%]==[cygwin] (
    C:\cygwin\bin\bash -e -l -c
      "cd /cygdrive/c/projects/bdwgc && ./autogen.sh
       && ./configure %CONF_OPTIONS% --enable-werror && cat include/config.h
       && make -j CFLAGS_EXTRA='%CFLAGS_EXTRA%'" )
- cmd: if [%TARGET%]==[cygwin64] (
    C:\cygwin64\bin\bash -e -l -c
      "cd /cygdrive/c/projects/bdwgc && ./autogen.sh
       && ./configure %CONF_OPTIONS% --enable-werror && cat include/config.h
       && make -j CFLAGS_EXTRA='%CFLAGS_EXTRA%'" )
- cmd: if [%TARGET%]==[djgpp-no-make] (
    appveyor DownloadFile "https://github.com/andrewwutw/build-djgpp/releases/download/v3.1/djgpp-mingw-gcc1020-standalone.zip"
    && 7z x -o.. djgpp-mingw-gcc1020-standalone.zip > nul
    && ..\djgpp\setenv.bat
    && gcc -I include -Werror -Wall -Wextra -Wpedantic %CFLAGS_EXTRA% -c extra/gc.c )
- cmd: if [%TARGET%]==[dmc] (
    appveyor DownloadFile "http://ftp.digitalmars.com/Digital_Mars_C++/Patch/dm857c.zip"
    && 7z x -o.. dm857c.zip > nul && set "path=%cd%\..\dm\bin;%path%"
    && make -f digimars.mak CFLAGS_EXTRA="-wx %CFLAGS_EXTRA%" )
- cmd: if [%TARGET%]==[mingw] (
    C:\MinGW\msys\1.0\bin\bash -e -l -c
      "cd /c/projects/bdwgc
       && make -j -f Makefile.direct CC=gcc CFLAGS_EXTRA='-Werror -Wall -Wextra -Wpedantic %CFLAGS_EXTRA%'" )
- cmd: if [%TARGET%]==[mingw-shared-no-make] (
    C:\MinGW\msys\1.0\bin\bash -e -l -c
      "cd /c/projects/bdwgc
       && gcc -I include -D GC_BUILTIN_ATOMIC -D GC_DLL -Werror -Wall -Wextra -Wpedantic %CFLAGS_EXTRA% -shared -o gc.dll extra/gc.c" )
- cmd: if [%TARGET%]==[mingw-w64] (
    C:\msys64\usr\bin\bash -e -l -c
      "cd /c/projects/bdwgc
       && make -j -f Makefile.direct CC=gcc CFLAGS_EXTRA='-Werror -Wall -Wextra -Wpedantic %CFLAGS_EXTRA%'" )
- cmd: if [%TARGET%]==[wcc] (
    appveyor DownloadFile "https://iweb.dl.sourceforge.net/project/openwatcom/open-watcom-2.0-2017-11-01/ow-snapshot.7z"
    && 7z x -o..\watcom ow-snapshot.7z > nul
    && set "watcom=%cd%\..\watcom" && set "path=%cd%\..\watcom\binnt64"
    && set "include=%cd%\..\watcom\h\%WCC_INC_SUBDIR%;%cd%\..\watcom\h"
    && wmake -f WCC_MAKEFILE SYSTEM=%WCC_SYSTEM% %ENABLE_STATIC_OPT% CFLAGS_EXTRA="-we %CFLAGS_EXTRA%" )

test_script:
- cmd: if [%TARGET%]==[cmake] ( ctest --build-config %CMAKE_CONFIG% -V )
- cmd: if [%TARGET%]==[nmake] (
    "C:\Program Files (x86)\Microsoft Visual %STUDIO_VERSION_EDITION%\VC\Auxiliary\Build\vcvarsall.bat" %ARCH%
    && nmake /f NT_MAKEFILE %TEST_TARGET% %NMAKE_OPTIONS% CFLAGS_EXTRA="/WX %CFLAGS_EXTRA%"
    && nmake /f NT_MAKEFILE clean )
- cmd: if [%TARGET%]==[cygwin] (
    C:\cygwin\bin\bash -e -l -c
      "cd /cygdrive/c/projects/bdwgc
       && make -j check-without-test-driver CFLAGS_EXTRA='%CFLAGS_EXTRA%'" )
- cmd: if [%TARGET%]==[cygwin64] (
    C:\cygwin64\bin\bash -e -l -c
      "cd /cygdrive/c/projects/bdwgc
       && make -j check-without-test-driver CFLAGS_EXTRA='%CFLAGS_EXTRA%'" )
- cmd: if [%TARGET%]==[djgpp-no-make] (
    ..\djgpp\setenv.bat
    && gcc -I include -Werror -Wall -Wextra -Wpedantic %CFLAGS_EXTRA% -o cordtest.exe cord/tests/cordtest.c cord/*.c gc.o
    && gcc -I include -Werror -Wall -Wextra -Wpedantic %CFLAGS_EXTRA% -v -o gctest.exe tests/test.c gc.o )
- cmd: if [%TARGET%]==[dmc] (
    set "path=%cd%\..\dm\bin;%path%"
    && make -f digimars.mak %TEST_TARGET% CFLAGS_EXTRA="-wx %CFLAGS_EXTRA%"
    && type gctest.gc.log test_cpp.gc.log
    && make -f digimars.mak clean )
- cmd: if [%TARGET%]==[mingw] (
    C:\MinGW\msys\1.0\bin\bash -e -l -c
      "cd /c/projects/bdwgc
       && make -j -f Makefile.direct %TEST_TARGET% CC=gcc CFLAGS_EXTRA='-DGC_NOT_DLL -Werror -Wall -Wextra -Wpedantic %CFLAGS_EXTRA%'" )
- cmd: if [%TARGET%]==[mingw-shared-no-make] (
    C:\MinGW\msys\1.0\bin\bash -e -l -c
      "cd /c/projects/bdwgc
       && gcc -I include -D GC_BUILTIN_ATOMIC -D GC_DLL -Werror -Wall -Wextra -Wpedantic %CFLAGS_EXTRA% -o gctest.exe tests/test.c gc.dll
       && gctest.exe" )
- cmd: if [%TARGET%]==[mingw-w64] (
    C:\msys64\usr\bin\bash -e -l -c
      "cd /c/projects/bdwgc
       && make -j -f Makefile.direct %TEST_TARGET% CC=gcc CFLAGS_EXTRA='-Werror -Wall -Wextra -Wpedantic %CFLAGS_EXTRA%'" )
- cmd: if [%TARGET%]==[wcc] (
    set "watcom=%cd%\..\watcom" && set "beginlibpath=%cd%\..\watcom\binp\dll"
    && set "path=%cd%\..\watcom\binnt64;%cd%\..\watcom\binnt"
    && wmake -f WCC_MAKEFILE %TEST_TARGET% SYSTEM=%WCC_SYSTEM% %ENABLE_STATIC_OPT% CFLAGS_EXTRA="-we %CFLAGS_EXTRA%"
    && wmake -f WCC_MAKEFILE clean )