swig/appveyor.yml
Vadim Zeitlin 7744425c21 Ignore change to files not affecting the build in appveyor.yml
There is no need to rerun the CI builds if only the docs, changelog or
anything GitHub-related changes.
2021-10-03 16:14:21 +02:00

162 lines
6.5 KiB
YAML

platform:
- x86
- x64
skip_commits:
files:
- 'CHANGES*'
- 'Doc/**'
- '.github/**'
environment:
global:
MAKEJOBS: 2
matrix:
- SWIGLANG: csharp
VSVER: 12
- SWIGLANG: csharp
VSVER: 14
- SWIGLANG: java
VSVER: 14
- SWIGLANG: python
VSVER: 14
VER: 27
- SWIGLANG: python
VSVER: 15
VER: 38
PY3: 3
APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2017
- SWIGLANG: python
VSVER: 16
VER: 39
PY3: 3
APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2019
- SWIGLANG: python
OSVARIANT: cygwin
- SWIGLANG: java
OSVARIANT: mingw
APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2019
- SWIGLANG: python
OSVARIANT: mingw
WITHLANG: python
VER: 37
PY3: 3
APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2019
- BUILDSYSTEM: cmake
VSVER: 14
matrix:
allow_failures:
- SWIGLANG: python
OSVARIANT: cygwin
install:
- date /T & time /T
- ps: >-
if ($env:Platform -eq "x86") {
$env:PCRE_PLATFORM="Win32"
$env:JAVA_HOME="C:/Program Files (x86)/Java/jdk1.8.0"
$env:VCVARS_PLATFORM="x86"
$env:LANG_PLATFORM=""
$env:CYGWINBIN="C:\cygwin\bin"
$env:CYGWINSETUP="C:/cygwin/setup-x86.exe"
$env:MSYSBIN="C:\msys64\usr\bin"
$env:MINGWBIN="C:\msys64\mingw32\bin"
$env:MBITS="32"
$env:MARCH="i686"
$env:VSARCH=""
} else {
$env:PCRE_PLATFORM="x64"
$env:JAVA_HOME="C:/Program Files/Java/jdk15"
$env:VCVARS_PLATFORM="amd64"
$env:LANG_PLATFORM="-x64"
$env:CYGWINBIN="C:\cygwin64\bin"
$env:CYGWINSETUP="C:/cygwin64/setup-x86_64.exe"
$env:MSYSBIN="C:\msys64\usr\bin"
$env:MINGWBIN="C:\msys64\mingw64\bin"
$env:MBITS="64"
$env:MARCH="x86_64"
$env:VSARCH=" Win64"
}
- ps: >-
if (!$env:OSVARIANT) {
$env:PATH="$env:CYGWINBIN;$env:PATH"
$env:CYGWIN="nodosfilewarning"
$env:CC="cccl"
$env:CXX="cccl"
if ($env:VSVER -ge 16) {
$env:VCVARSBAT="C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Auxiliary\Build\vcvars$env:MBITS.bat"
$env:BOOSTROOT="C:/Libraries/boost_1_73_0"
} elseif ($env:VSVER -eq 15) {
$env:VCVARSBAT="C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Auxiliary\Build\vcvars$env:MBITS.bat"
$env:BOOSTROOT="C:/Libraries/boost_1_69_0"
} else {
$env:VSCOMNTOOLS=(Get-Content ("env:VS" + "$env:VSVER" + "0COMNTOOLS"))
$env:VCVARSBAT="$env:VSCOMNTOOLS..\..\VC\vcvarsall.bat"
$env:VCVARSARG="$env:VCVARS_PLATFORM"
$env:BOOSTROOT="C:/Libraries/boost_1_69_0"
}
} elseif ($env:OSVARIANT -eq "cygwin") {
$env:PATH="$env:CYGWINBIN;$env:PATH"
$env:CYGWIN="nodosfilewarning"
$env:CC="gcc"
$env:CXX="g++"
} elseif ($env:OSVARIANT -eq "mingw") {
# Note mingw setup tests the native Windows Python distribution (not MinGW Python) with gcc
$env:PATH="$env:MINGWBIN;$env:MSYSBIN;$env:PATH"
$env:MSYSTEM="MINGW$env:MBITS" # This is important for msys2
$env:CC="gcc"
$env:CXX="g++"
if ($env:MBITS -eq "64" -and $env:SWIGLANG -eq "python") {
$env:CHECK_OPTIONS2="CFLAGS+=-DMS_WIN64 CXXFLAGS+=-DMS_WIN64"
}
}
- if "%OSVARIANT%"=="" bash -c "cd /usr/bin && curl --retry 15 -s -L https://github.com/swig/cccl/archive/cccl-1.2.tar.gz | tar -xz --strip 1 cccl-cccl-1.2/cccl"
- if "%OSVARIANT%"=="" call "%VCVARSBAT%" %VCVARSARG%
- if "%OSVARIANT%"=="" Tools\nuget-install.cmd pcre -Verbosity quiet -Version 8.33.0.1 -OutputDirectory C:\pcre
- if "%OSVARIANT%"=="" set PCRE_ROOT=C:/pcre/pcre.8.33.0.1/build/native
- if not "%OSVARIANT%"=="cygwin" set PATH=C:\Python%VER%%LANG_PLATFORM%;%PATH%
- if "%OSVARIANT%"=="" bash -c "which cl.exe"
- if "%OSVARIANT%"=="" bash -c "cl.exe /? 2>&1 | head -n 1"
- if "%OSVARIANT%"=="" bash -c "which csc.exe"
- if "%OSVARIANT%"=="" bash -c "csc.exe /? | head -n 1"
- if "%OSVARIANT%"=="cygwin" %CYGWINSETUP% --quiet-mode --packages python2-devel,libpcre-devel,libboost-devel > cygwin-install.txt || bash -c "cat cygwin-install.txt"
- if "%OSVARIANT%"=="mingw" bash -c "pacman --noconfirm --sync mingw%MBITS%/mingw-w64-%MARCH%-pcre mingw%MBITS%/mingw-w64-%MARCH%-boost"
- if not "%WITHLANG%"=="" set SWIGWITHLANG==%WITHLANG%
- if not "%WITHLANG%"=="" where %WITHLANG%
- bash -c "which $CC"
- bash -c "which $CXX"
- bash -c "$CC --version | head -n 1"
- bash -c "$CXX --version | head -n 1"
- bash -c "which python"
- bash -c "python -V"
- bash -c "make --version | head -n 2"
- pwd
- echo MAKEJOBS=%MAKEJOBS%
- uname -a
build_script:
- set CCCL_OPTIONS=--cccl-muffle /W3 /EHsc
- set CHECK_OPTIONS=CSHARPOPTIONS=-platform:%Platform%
- if "%BUILDSYSTEM%"=="cmake" cmake --version && cmake -G "Visual Studio 14 2015%VSARCH%" -DCMAKE_INSTALL_PREFIX="%CD:\=/%/install2" -DCMAKE_C_FLAGS="/WX /DPCRE_STATIC" -DCMAKE_CXX_FLAGS="/WX /DPCRE_STATIC" -DPCRE_INCLUDE_DIR=%PCRE_ROOT%/include -DPCRE_LIBRARY=%PCRE_ROOT%/lib/v110/%PCRE_PLATFORM%/Release/static/utf8/pcre8.lib -DBISON_EXECUTABLE=C:/cygwin/bin/bison.exe . && cmake --build . --config Release --target install && ctest --output-on-failure -V -C Release && appveyor exit
# Open dummy file descriptor to fix error on cygwin: ./configure: line 560: 0: Bad file descriptor
- if "%OSVARIANT%"=="" bash -c "exec 0</dev/null && ./autogen.sh && time ./configure --disable-dependency-tracking --disable-ccache --enable-cpp11-testing CC=$CC CXX=$CXX CFLAGS='-O2' CXXFLAGS='-O2' LDFLAGS='--cccl-link /LTCG' PCRE_CFLAGS='-I%PCRE_ROOT%/include -DPCRE_STATIC' PCRE_LIBS='-L%PCRE_ROOT%/lib/v110/%PCRE_PLATFORM%/Release/static/utf8 -lpcre8' --without-perl5 --without-go --with-boost=%BOOSTROOT% || cat config.log"
- if not "%OSVARIANT%"=="" bash -c "exec 0</dev/null && ./autogen.sh && time ./configure CC=%CC% CXX=%CXX% --without-alllang --with-$SWIGLANG$PY3$SWIGWITHLANG --enable-cpp11-testing || cat config.log"
- bash -c "time make -s -j%MAKEJOBS%"
test_script:
- set CCCL_OPTIONS=--cccl-muffle /W3 /EHsc
- .\swig.exe -version
- if not "%OSVARIANT%"=="" CCache\ccache-swig -V
- bash -c "file ./swig.exe"
- bash -c "make check-%SWIGLANG%-version"
- bash -c "make check-%SWIGLANG%-enabled"
- bash -c "time make -k check-%SWIGLANG%-examples %CHECK_OPTIONS% %CHECK_OPTIONS2%"
- bash -c "time make -k check-%SWIGLANG%-test-suite -j%MAKEJOBS% %CHECK_OPTIONS% %CHECK_OPTIONS2%"
# Do not build on tags (GitHub only)
skip_tags: true
#on_finish: # Display RDP connection information
# - ps: $blockRdp = $true; iex ((new-object net.webclient).DownloadString('https://raw.githubusercontent.com/appveyor/ci/master/scripts/enable-rdp.ps1'))