environment: matrix: - APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2017 platform: x86 - APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2015 platform: x64 shallow_clone: true cache: - downloads -> appveyor.yml - '%LOCALAPPDATA%\pip\Cache' - C:\ProgramData\chocolatey\bin -> appveyor.yml - C:\ProgramData\chocolatey\lib -> appveyor.yml init: - ps: | if($env:platform -eq "x86") { $env:PATH="c:\Python27;c:\Python27\Scripts;$env:PATH" $env:VS_VER=2017 $env:SDK="release-1911" $env:MSVC_VER=1911 $env:ARCHITECTURE="x86" $env:WIN64_ARG="" } else { $env:PATH="c:\Python27-x64;c:\Python27-x64\Scripts;$env:PATH" $env:VS_VER=2015 $env:SDK="release-1900-x64" $env:MSVC_VER=1900 $env:ARCHITECTURE="amd64" $env:WIN64_ARG="WIN64=YES" } function exec { param ( [ScriptBlock] $ScriptBlock ) & $ScriptBlock 2>&1 | ForEach-Object -Process { "$_" } if ($LastExitCode -ne 0) { exit $LastExitCode } } - ps: iex ((new-object net.webclient).DownloadString('https://raw.githubusercontent.com/appveyor/ci/master/scripts/enable-rdp.ps1')) install: - ps: | Install-PackageProvider NuGet -Force Import-PackageProvider NuGet -Force Set-PSRepository -Name PSGallery -InstallationPolicy Trusted Install-Module Pscx -AllowClobber Install-Module VSSetup -Scope CurrentUser # Install SWIG and VC for Python2.7 by Choco cinst -y --no-progress swig vcpython27 Import-VisualStudioVars -VisualStudioVersion $env:VS_VER -Architecture $env:ARCHITECTURE exec { pip install numpy } $env:SDK_ZIP="$env:SDK"+"-dev.zip" $env:SDK_URL="http://download.gisinternals.com/sdk/downloads/$env:SDK_ZIP" if(-Not (Test-Path -Path downloads)) { mkdir downloads } cd downloads if(-Not (Test-Path -Path $env:SDK_ZIP )) { appveyor DownloadFile "$env:SDK_URL" } cd .. mkdir sdk cd sdk exec { 7z x ..\downloads\$env:SDK_ZIP } $env:SDK_PREFIX="$env:APPVEYOR_BUILD_FOLDER\sdk\$env:SDK" $env:SDK_INC="$env:SDK_PREFIX\include" $env:SDK_LIB="$env:SDK_PREFIX\lib" $env:SDK_BIN="$env:SDK_PREFIX\bin" $env:NMAKE_LOCAL= "GEOS_CFLAGS=-I`$(SDK_INC) -DHAVE_GEOS`n" $env:NMAKE_LOCAL+="GEOS_LIB=`$(SDK_LIB)\geos_c.lib`n" $env:NMAKE_LOCAL+="PG_INC_DIR=`$(SDK_INC)`n" $env:NMAKE_LOCAL+="PG_LIB=`$(SDK_LIB)\libpqdll.lib wsock32.lib`n" $env:NMAKE_LOCAL+="CURL_DIR=bla`n" $env:NMAKE_LOCAL+="CURL_INC=-I`$(SDK_INC)`n" $env:NMAKE_LOCAL+="CURL_LIB=`$(SDK_LIB)\libcurl_imp.lib wsock32.lib wldap32.lib winmm.lib`n" $env:NMAKE_LOCAL+="SQLITE_INC=-I`$(SDK_INC) -DHAVE_SPATIALITE -DSPATIALITE_AMALGAMATION`n" $env:NMAKE_LOCAL+="SQLITE_LIB=`$(SDK_LIB)\spatialite_i.lib `$(SDK_LIB)\sqlite3_i.lib`n" $env:NMAKE_LOCAL+="KMLSUPEROVERLAY_SUPPORTED = YES`n" $env:NMAKE_LOCAL+="MINIZIP_INCLUDE = -I`$(SDK_INC)`n" $env:NMAKE_LOCAL+="MINIZIP_LIBRARY = `$(SDK_LIB)\minizip.lib`n" $env:NMAKE_LOCAL+="MYSQL_INC_DIR=`$(SDK_INC)`n" $env:NMAKE_LOCAL+="MYSQL_LIB=`$(SDK_LIB)\libmysql.lib advapi32.lib`n" $env:NMAKE_LOCAL+="XERCES_DIR=bla`n" $env:NMAKE_LOCAL+="XERCES_INCLUDE=-I`$(SDK_INC) -I`$(SDK_INC)\xercesc`n" $env:NMAKE_LOCAL+="XERCES_LIB=`$(SDK_LIB)\xerces-c_3.lib`n" $env:NMAKE_LOCAL+="ILI_ENABLED = YES`n" $env:NMAKE_LOCAL+="EXPAT_DIR=bla`n" $env:NMAKE_LOCAL+="EXPAT_INCLUDE=-I`$(SDK_INC)`n" $env:NMAKE_LOCAL+="EXPAT_LIB=`$(SDK_LIB)\expat.lib`n" $env:NMAKE_LOCAL+="LIBKML_DIR=bla`n" $env:NMAKE_LOCAL+="LIBKML_INCLUDE=-I`$(SDK_INC)`n" $env:NMAKE_LOCAL+="LIBKML_LIBS=`$(SDK_LIB)\libkmlbase.lib `$(SDK_LIB)\libkmlconvenience.lib `$(SDK_LIB)\libkmldom.lib `$(SDK_LIB)\libkmlengine.lib `$(SDK_LIB)\libkmlregionator.lib `$(SDK_LIB)\libkmlxsd.lib `$(SDK_LIB)\expat.lib `$(SDK_LIB)\zdll.lib`n" $env:NMAKE_LOCAL+="POPPLER_ENABLED = YES`n" $env:NMAKE_LOCAL+="POPPLER_CFLAGS = -I`$(SDK_INC) -I`$(SDK_INC)\poppler`n" $env:NMAKE_LOCAL+="POPPLER_HAS_OPTCONTENT = YES`n" $env:NMAKE_LOCAL+="POPPLER_0_20_OR_LATER = YES`n" $env:NMAKE_LOCAL+="POPPLER_0_23_OR_LATER = YES`n" $env:NMAKE_LOCAL+="POPPLER_BASE_STREAM_HAS_TWO_ARGS = YES`n" $env:NMAKE_LOCAL+="POPPLER_LIBS = `$(SDK_LIB)\poppler.lib `$(SDK_LIB)\freetype2411.lib advapi32.lib gdi32.lib`n" $env:NMAKE_LOCAL+="OPENJPEG_ENABLED = YES`n" $env:NMAKE_LOCAL+="OPENJPEG_CFLAGS = -I`$(SDK_INC)\openjpeg-2.1`n" $env:NMAKE_LOCAL+="OPENJPEG_LIB = `$(SDK_LIB)\openjp2.lib`n" $env:NMAKE_LOCAL+="ECWDIR=bla`n" $env:NMAKE_LOCAL+="ECWLIB=`$(SDK_LIB)\libecwj2.lib`n" $env:NMAKE_LOCAL+="ECWFLAGS=-DECWSDK_VERSION=33 -I`$(SDK_INC) /D_MBCS /D_UNICODE /DUNICODE /D_WINDOWS /DLIBECWJ2 /DWIN32 /D_WINDLL -DNO_X86_MMI`n" $env:NMAKE_LOCAL+="HDF5_DIR = `$(SDK_PREFIX)`n" $env:NMAKE_LOCAL+="HDF5_LIB = `$(SDK_LIB)\hdf5.lib`n" $env:NMAKE_LOCAL+="KEA_CFLAGS = -I`$(SDK_INC)`n" $env:NMAKE_LOCAL+="KEA_LIB = `$(SDK_LIB)\libkea.lib`n" $env:NMAKE_LOCAL+="NETCDF_SETTING=yes`n" $env:NMAKE_LOCAL+="NETCDF_LIB=`$(SDK_LIB)\netcdf.lib`n" $env:NMAKE_LOCAL+="NETCDF_INC_DIR=`$(SDK_INC)`n" $env:NMAKE_LOCAL+="NETCDF_HAS_NC4 = yes`n" $env:NMAKE_LOCAL | Set-Content "$env:APPVEYOR_BUILD_FOLDER\gdal\nmake.local" # cd $env:APPVEYOR_BUILD_FOLDER\gdal exec { nmake /f makefile.vc MSVC_VER=$env:MSVC_VER $env:WIN64_ARG USER_DEFS=/WX } cd apps exec { nmake /f makefile.vc test_ogrsf.exe MSVC_VER=$env:MSVC_VER $env:WIN64_ARG USER_DEFS=/WX } $env:DISTUTILS_USE_SDK=1 $env:MSSdk=1 cd $env:APPVEYOR_BUILD_FOLDER\gdal\swig\python exec { python setup.py build } exec { python setup.py install } cd $env:APPVEYOR_BUILD_FOLDER\autotest\cpp exec { nmake /f makefile.vc MSVC_VER=$env:MSVC_VER $env:WIN64_ARG } build: off test_script: - ps: | $env:PATH="$env:APPVEYOR_BUILD_FOLDER\gdal;$env:APPVEYOR_BUILD_FOLDER\gdal\apps;$env:SDK_BIN;$env:PATH" $env:GDAL_DATA="$env:APPVEYOR_BUILD_FOLDER\gdal\data" $env:PROJ_LIB="$env:SDK_BIN\proj\SHARE" $env:DO_NOT_FAIL_ON_RECODE_ERRORS="YES" # The ca-bundle.crt file which we could point to is invalid in the current SDK # See https://github.com/gisinternals/buildsystem/issues/104 $env:GDAL_HTTP_UNSAFESSL="YES" cd $env:APPVEYOR_BUILD_FOLDER\autotest\cpp exec { nmake /f makefile.vc check MSVC_VER=$env:MSVC_VER $env:WIN64_ARG } cd $env:APPVEYOR_BUILD_FOLDER\autotest exec { python run_all.py } deploy: off