|
| 1 | +platform: |
| 2 | +- x64 |
| 3 | + |
| 4 | +skip_commits: |
| 5 | + files: |
| 6 | + - '.github/**' |
| 7 | + - 'CHANGES*' |
| 8 | + - 'Doc/**' |
| 9 | + - 'Tools/CI-*' |
| 10 | + - 'Tools/GHA-*' |
| 11 | + |
| 12 | +environment: |
| 13 | + global: |
| 14 | + MAKEJOBS: 2 |
| 15 | + |
| 16 | + matrix: |
| 17 | + - SWIGLANG: python |
| 18 | + VSVER: 15 |
| 19 | + VER: 38 |
| 20 | + APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2017 |
| 21 | + - SWIGLANG: python |
| 22 | + VSVER: 16 |
| 23 | + VER: 39 |
| 24 | + APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2019 |
| 25 | + - SWIGLANG: python |
| 26 | + OSVARIANT: mingw |
| 27 | + WITHLANG: python |
| 28 | + APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2022 |
| 29 | + |
| 30 | +#matrix: |
| 31 | +# allow_failures: |
| 32 | +# - SWIGLANG: python |
| 33 | +# OSVARIANT: cygwin |
| 34 | + |
| 35 | +# Skip stale commits (pull requests only), see https://github.com/appveyor/ci/issues/38#issuecomment-70628826 |
| 36 | +init: |
| 37 | +- ps: | |
| 38 | + if ($env:APPVEYOR_PULL_REQUEST_NUMBER -and $env:APPVEYOR_BUILD_NUMBER -ne ((Invoke-RestMethod ` |
| 39 | + https://ci.appveyor.com/api/projects/$env:APPVEYOR_ACCOUNT_NAME/$env:APPVEYOR_PROJECT_SLUG/history?recordsNumber=50).builds | ` |
| 40 | + Where-Object pullRequestId -eq $env:APPVEYOR_PULL_REQUEST_NUMBER)[0].buildNumber) { ` |
| 41 | + throw "There are newer queued builds for this pull request, failing early." } |
| 42 | +
|
| 43 | +install: |
| 44 | +- date /T & time /T |
| 45 | +- ps: >- |
| 46 | + if ($env:Platform -eq "x86") { |
| 47 | + $env:PCRE_PLATFORM="Win32" |
| 48 | + $env:JAVA_HOME="C:/Program Files (x86)/Java/jdk1.8.0" |
| 49 | + $env:VCVARS_PLATFORM="x86" |
| 50 | + $env:LANG_PLATFORM="" |
| 51 | + $env:CYGWINBIN="C:\cygwin\bin" |
| 52 | + $env:CYGWINSETUP="C:/cygwin/setup-x86.exe" |
| 53 | + $env:MSYSBIN="C:\msys64\usr\bin" |
| 54 | + $env:MINGWBIN="C:\msys64\mingw32\bin" |
| 55 | + $env:MBITS="32" |
| 56 | + $env:MARCH="i686" |
| 57 | + $env:VSARCH="" |
| 58 | + } else { |
| 59 | + $env:PCRE_PLATFORM="x64" |
| 60 | + $env:JAVA_HOME="C:/Program Files/Java/jdk17" |
| 61 | + $env:VCVARS_PLATFORM="amd64" |
| 62 | + $env:LANG_PLATFORM="-x64" |
| 63 | + $env:CYGWINBIN="C:\cygwin64\bin" |
| 64 | + $env:CYGWINSETUP="C:/cygwin64/setup-x86_64.exe" |
| 65 | + $env:MSYSBIN="C:\msys64\usr\bin" |
| 66 | + $env:MINGWBIN="C:\msys64\mingw64\bin" |
| 67 | + $env:MBITS="64" |
| 68 | + $env:MARCH="x86_64" |
| 69 | + $env:VSARCH=" Win64" |
| 70 | + } |
| 71 | +- ps: >- |
| 72 | + if (!$env:OSVARIANT) { |
| 73 | + $env:PATH="$env:CYGWINBIN;$env:PATH" |
| 74 | + $env:CYGWIN="nodosfilewarning" |
| 75 | + $env:CC="cccl" |
| 76 | + $env:CXX="cccl" |
| 77 | + if ($env:VSVER -ge 17) { |
| 78 | + $env:VCVARSBAT="C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Auxiliary\Build\vcvars$env:MBITS.bat" |
| 79 | + $env:BOOSTROOT="C:/Libraries/boost_1_86_0" |
| 80 | + } elseif ($env:VSVER -eq 16) { |
| 81 | + $env:VCVARSBAT="C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Auxiliary\Build\vcvars$env:MBITS.bat" |
| 82 | + $env:BOOSTROOT="C:/Libraries/boost_1_86_0" |
| 83 | + } elseif ($env:VSVER -eq 15) { |
| 84 | + $env:VCVARSBAT="C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Auxiliary\Build\vcvars$env:MBITS.bat" |
| 85 | + $env:BOOSTROOT="C:/Libraries/boost_1_69_0" |
| 86 | + nuget install Bison -Version 3.7.4 -OutputDirectory C:\Tools\bison |
| 87 | + } else { |
| 88 | + $env:VSCOMNTOOLS=(Get-Content ("env:VS" + "$env:VSVER" + "0COMNTOOLS")) |
| 89 | + $env:VCVARSBAT="$env:VSCOMNTOOLS..\..\VC\vcvarsall.bat" |
| 90 | + $env:VCVARSARG="$env:VCVARS_PLATFORM" |
| 91 | + $env:BOOSTROOT="C:/Libraries/boost_1_69_0" |
| 92 | + nuget install Bison -Version 3.7.4 -OutputDirectory C:\Tools\bison |
| 93 | + } |
| 94 | + } elseif ($env:OSVARIANT -eq "cygwin") { |
| 95 | + $env:PATH="$env:CYGWINBIN;$env:PATH" |
| 96 | + $env:CYGWIN="nodosfilewarning" |
| 97 | + $env:CC="gcc" |
| 98 | + $env:CXX="g++" |
| 99 | + } elseif ($env:OSVARIANT -eq "mingw") { |
| 100 | + # Note mingw setup tests the native Windows Python distribution (not MinGW Python) with gcc |
| 101 | + $env:PATH="$env:MINGWBIN;$env:MSYSBIN;$env:PATH" |
| 102 | + $env:MSYSTEM="MINGW$env:MBITS" # This is important for msys2 |
| 103 | + $env:CC="gcc" |
| 104 | + $env:CXX="g++" |
| 105 | + } |
| 106 | +- if "%OSVARIANT%"=="" bash -c "cd /usr/bin && curl --retry 15 -s -L https://github.com/swig/cccl/archive/cccl-1.4.tar.gz | tar -xz --strip 1 cccl-cccl-1.4/cccl" |
| 107 | +- if "%OSVARIANT%"=="" call "%VCVARSBAT%" %VCVARSARG% |
| 108 | +- if "%OSVARIANT%"=="" appveyor-retry appveyor DownloadFile https://github.com/PhilipHazel/pcre2/archive/refs/tags/pcre2-10.39.zip |
| 109 | +- if "%OSVARIANT%"=="" 7z x pcre2-10.39.zip |
| 110 | +- if "%OSVARIANT%"=="" set PCRE_ROOT=C:/pcre |
| 111 | +- if "%OSVARIANT%"=="" set PATH=C:\Python%VER%%LANG_PLATFORM%;%PATH% |
| 112 | +- if "%OSVARIANT%"=="" bash -c "which cl.exe" |
| 113 | +- if "%OSVARIANT%"=="" bash -c "cl.exe /? 2>&1 | head -n 1" |
| 114 | +- if "%OSVARIANT%"=="" bash -c "which csc.exe" |
| 115 | +- if "%OSVARIANT%"=="" bash -c "csc.exe /? | head -n 1" |
| 116 | +- if "%OSVARIANT%"=="cygwin" %CYGWINSETUP% --quiet-mode --packages python3-devel,libpcre2-devel,libboost-devel > cygwin-install.txt || bash -c "cat cygwin-install.txt" |
| 117 | +- if "%OSVARIANT%"=="mingw" bash -c "pacman --noconfirm --sync mingw%MBITS%/mingw-w64-%MARCH%-autotools mingw%MBITS%/mingw-w64-%MARCH%-pcre2 mingw%MBITS%/mingw-w64-%MARCH%-boost mingw%MBITS%/mingw-w64-%MARCH%-python" |
| 118 | +- if not "%WITHLANG%"=="" set SWIGWITHLANG==%WITHLANG% |
| 119 | +- if not "%WITHLANG%"=="" where %WITHLANG% |
| 120 | +- if "%SWIGLANG%"=="python" set PY3=3 |
| 121 | +- if "%PY2%"=="2" set PY3= |
| 122 | +- bash -c "which $CC" |
| 123 | +- bash -c "which $CXX" |
| 124 | +- bash -c "$CC --version | head -n 1" |
| 125 | +- bash -c "$CXX --version | head -n 1" |
| 126 | +- bash -c "which python" |
| 127 | +- bash -c "python -V" |
| 128 | +- bash -c "make --version | head -n 2" |
| 129 | +- pwd |
| 130 | +- echo MAKEJOBS=%MAKEJOBS% |
| 131 | +- uname -a |
| 132 | +- systeminfo | findstr /B /C:"OS Name" /B /C:"OS Version" |
| 133 | + |
| 134 | +build_script: |
| 135 | +- set PATH=C:\Tools\bison\Bison.3.7.4\bin;%PATH% |
| 136 | +- set CCCL_OPTIONS=--cccl-muffle /W3 /EHsc |
| 137 | +- set CHECK_OPTIONS=CSHARPOPTIONS=-platform:%Platform% |
| 138 | +- if "%BUILDSYSTEM%"=="cmake" cd pcre2-pcre2-10.39 && cmake -G "Visual Studio 14 2015%VSARCH%" -DCMAKE_INSTALL_PREFIX="%PCRE_ROOT:\=/%" . && cmake --build . --config Release --target install && cd .. |
| 139 | +- if "%BUILDSYSTEM%"=="cmake" cmake --version && cmake -G "Visual Studio 14 2015%VSARCH%" -DCMAKE_INSTALL_PREFIX="%CD:\=/%/install2" -DCMAKE_C_FLAGS="/WX /DPCRE2_STATIC" -DCMAKE_CXX_FLAGS="/WX /DPCRE2_STATIC" -DPCRE2_INCLUDE_DIR=%PCRE_ROOT%/include -DPCRE2_LIBRARY=%PCRE_ROOT%/lib/pcre2-8-static.lib -DBISON_EXECUTABLE=C:/Tools/bison/Bison.3.7.4/bin/bison.exe . && cmake --build . --config Release --target install && ctest --output-on-failure -V -C Release && appveyor exit |
| 140 | +- if "%OSVARIANT%"=="" bash -c "exec 0</dev/null && cd pcre2-pcre2-10.39 && ./autogen.sh && ./configure CC=$CC CXX=$CXX CFLAGS='-O2' LDFLAGS='--cccl-link /LTCG' --prefix=%PCRE_ROOT% --disable-shared && time make -s -j%MAKEJOBS% LN_S=cp && make install && cd .. && cp -v %PCRE_ROOT%/lib/libpcre2-8.lib %PCRE_ROOT%/lib/pcre2-8.lib" |
| 141 | + # Open dummy file descriptor to fix error on cygwin: ./configure: line 560: 0: Bad file descriptor |
| 142 | +- if "%OSVARIANT%"=="" bash -c "exec 0</dev/null && ./autogen.sh && time ./configure --disable-dependency-tracking --disable-ccache CC=$CC CXX=$CXX CFLAGS='-O2' CXXFLAGS='-O2' LDFLAGS='--cccl-link /LTCG' PCRE2_CFLAGS='-I%PCRE_ROOT%/include -DPCRE2_STATIC' PCRE2_LIBS='-L%PCRE_ROOT%/lib/ -lpcre2-8' --without-perl5 --without-go --with-boost=%BOOSTROOT% || cat config.log" |
| 143 | +- if not "%OSVARIANT%"=="" bash -c "exec 0</dev/null && ./autogen.sh && time ./configure CC=%CC% CXX=%CXX% --without-alllang --with-$SWIGLANG$PY3$SWIGWITHLANG || cat config.log" |
| 144 | +- bash -c "time make -s -j%MAKEJOBS%" |
| 145 | + |
| 146 | +test_script: |
| 147 | +- set CCCL_OPTIONS=--cccl-muffle /W3 /EHsc |
| 148 | +- .\swig.exe -version |
| 149 | +- .\swig.exe -pcreversion |
| 150 | +- if not "%OSVARIANT%"=="" CCache\ccache-swig -V |
| 151 | +- bash -c "file ./swig.exe" |
| 152 | +- bash -c "make check-%SWIGLANG%-version" |
| 153 | +- bash -c "make check-%SWIGLANG%-enabled" |
| 154 | +- bash -c "time make -k check-%SWIGLANG%-examples %CHECK_OPTIONS% %CHECK_OPTIONS2%" |
| 155 | +- bash -c "time make -k check-%SWIGLANG%-test-suite -j%MAKEJOBS% %CHECK_OPTIONS% %CHECK_OPTIONS2%" |
| 156 | + |
| 157 | +# Do not build on tags (GitHub only) |
| 158 | +skip_tags: true |
| 159 | + |
| 160 | +#on_finish: # Display RDP connection information |
| 161 | +# - ps: $blockRdp = $true; iex ((new-object net.webclient).DownloadString('https://raw.githubusercontent.com/appveyor/ci/master/scripts/enable-rdp.ps1')) |
0 commit comments