environment: COVERITY_SCAN_PROJECT_NAME: "saprykin/plibsys" COVERITY_SCAN_NOTIFICATION_EMAIL: "saprykin.spb@gmail.com" COVERITY_SCAN_TOKEN: secure: 6WFXzLxAMuUovtYc+u8OoruE/V6zhK2M4mZlrszRBIA= matrix: - CMAKE_GENERATOR: "Watcom WMake" USE_WATCOM: "1" APPVEYOR_BUILD_WORKER_IMAGE: "Visual Studio 2015" - CMAKE_GENERATOR: "MinGW Makefiles" USE_MINGW: "1" USE_MINGW_493: "1" APPVEYOR_BUILD_WORKER_IMAGE: "Visual Studio 2015" - CMAKE_GENERATOR: "MinGW Makefiles" USE_MINGW: "1" USE_MINGW64: "1" USE_MINGW_540: "1" APPVEYOR_BUILD_WORKER_IMAGE: "Visual Studio 2015" - CMAKE_GENERATOR: "MinGW Makefiles" USE_MINGW: "1" USE_MINGW64: "1" USE_MINGW_630: "1" APPVEYOR_BUILD_WORKER_IMAGE: "Visual Studio 2015" - CMAKE_GENERATOR: "MinGW Makefiles" USE_MINGW: "1" USE_MINGW64: "1" USE_MINGW_730: "1" APPVEYOR_BUILD_WORKER_IMAGE: "Visual Studio 2015" - CMAKE_GENERATOR: "MinGW Makefiles" USE_MINGW: "1" USE_MINGW64: "1" USE_MINGW_810: "1" APPVEYOR_BUILD_WORKER_IMAGE: "Visual Studio 2015" - CMAKE_GENERATOR: "Unix Makefiles" USE_MSYS64: "1" APPVEYOR_BUILD_WORKER_IMAGE: "Visual Studio 2019" - CMAKE_GENERATOR: "MSYS Makefiles" USE_MSYS64: "1" USE_MINGW64: "1" APPVEYOR_BUILD_WORKER_IMAGE: "Visual Studio 2019" - CMAKE_GENERATOR: "Unix Makefiles" USE_CYGWIN: "1" USE_CYGWIN64: "1" APPVEYOR_BUILD_WORKER_IMAGE: "Visual Studio 2015" - CMAKE_GENERATOR: "Unix Makefiles" USE_CYGWIN: "1" APPVEYOR_BUILD_WORKER_IMAGE: "Visual Studio 2015" - CMAKE_GENERATOR: "Visual Studio 9 2008" USE_OLD_MSBUILD: "1" APPVEYOR_BUILD_WORKER_IMAGE: "Visual Studio 2015" - CMAKE_GENERATOR: "Visual Studio 10 2010" APPVEYOR_BUILD_WORKER_IMAGE: "Visual Studio 2015" - CMAKE_GENERATOR: "Visual Studio 10 2010 Win64" APPVEYOR_BUILD_WORKER_IMAGE: "Visual Studio 2015" - CMAKE_GENERATOR: "Visual Studio 11 2012" APPVEYOR_BUILD_WORKER_IMAGE: "Visual Studio 2015" - CMAKE_GENERATOR: "Visual Studio 11 2012 Win64" APPVEYOR_BUILD_WORKER_IMAGE: "Visual Studio 2015" - CMAKE_GENERATOR: "Visual Studio 12 2013" APPVEYOR_BUILD_WORKER_IMAGE: "Visual Studio 2015" - CMAKE_GENERATOR: "Visual Studio 12 2013 Win64" APPVEYOR_BUILD_WORKER_IMAGE: "Visual Studio 2015" - CMAKE_GENERATOR: "Visual Studio 14 2015" APPVEYOR_BUILD_WORKER_IMAGE: "Visual Studio 2015" - CMAKE_GENERATOR: "Visual Studio 14 2015 Win64" USE_COVERITY: "1" APPVEYOR_BUILD_WORKER_IMAGE: "Visual Studio 2015" - CMAKE_GENERATOR: "Visual Studio 15 2017" APPVEYOR_BUILD_WORKER_IMAGE: "Visual Studio 2017" - CMAKE_GENERATOR: "Visual Studio 15 2017 Win64" APPVEYOR_BUILD_WORKER_IMAGE: "Visual Studio 2017" - CMAKE_GENERATOR: "Visual Studio 16 2019" APPVEYOR_BUILD_WORKER_IMAGE: "Visual Studio 2019" - CMAKE_GENERATOR: "Visual Studio 16 2019" CMAKE_GENERATOR_ARCH: "x64" APPVEYOR_BUILD_WORKER_IMAGE: "Visual Studio 2019" - CMAKE_GENERATOR: "NMake Makefiles" USE_LLVM: "1" APPVEYOR_BUILD_WORKER_IMAGE: "Visual Studio 2015" configuration: Release version: 0.0.1.{build} branches: only: - master - appveyor_test clone_folder: c:\projects\plibsys cache: - c:\projects\i686-4.9.3-release-win32-dwarf-rt_v4-rev1.7z - c:\projects\x86_64-5.4.0-release-win32-seh-rt_v5-rev0.7z - c:\projects\x86_64-6.3.0-release-win32-seh-rt_v5-rev1.7z - c:\projects\x86_64-7.3.0-release-win32-seh-rt_v5-rev0.7z - c:\projects\x86_64-8.1.0-release-win32-seh-rt_v6-rev0.7z - c:\projects\open-watcom-c-win32-1.9.exe - c:\cygwin-setup-cache install: - If "%USE_CYGWIN%" == "1" ( If "%USE_CYGWIN64%" == "1" ( c:\cygwin64\setup-x86_64.exe -gqnNdO -R c:\cygwin64 -s http://cygwin.mirror.constant.com -l "c:\cygwin-setup-cache" -P cmake -P cygrunsrv )) - If "%USE_CYGWIN%" == "1" ( If NOT "%USE_CYGWIN64%" == "1" ( c:\cygwin\setup-x86.exe -gqnNdO -R c:\cygwin -s http://cygwin.mirror.constant.com -l "c:\cygwin-setup-cache" -P cmake -P cygrunsrv )) - ps: >- If ($env:USE_MSYS64 -eq "1") { $env:PATH = "c:\msys64\usr\bin;$env:PATH"; If ($env:USE_MINGW64 -eq "1") { $env:PATH = "c:\msys64\mingw64\bin;$env:PATH"; } Else { & C:\msys64\usr\bin\mkdir -p /var/cache/pacman/pkg; & pacman --sync --noconfirm cmake doxygen; } } ElseIf ($env:USE_MINGW -eq "1") { If ($env:USE_MINGW_493 -eq "1") { $MINGW_BASE = "i686-4.9.3-release-win32-dwarf-rt_v4-rev1"; $MINGW_VERSION = "4.9.3"; } ElseIf ($env:USE_MINGW_540 -eq "1") { $MINGW_BASE = "x86_64-5.4.0-release-win32-seh-rt_v5-rev0"; $MINGW_VERSION = "5.4.0"; } ElseIf ($env:USE_MINGW_630 -eq "1") { $MINGW_BASE = "x86_64-6.3.0-release-win32-seh-rt_v5-rev1"; $MINGW_VERSION = "6.3.0"; } ElseIf ($env:USE_MINGW_730 -eq "1") { $MINGW_BASE = "x86_64-7.3.0-release-win32-seh-rt_v5-rev0"; $MINGW_VERSION = "7.3.0"; } ElseIf ($env:USE_MINGW_810 -eq "1") { $MINGW_BASE = "x86_64-8.1.0-release-win32-seh-rt_v6-rev0"; $MINGW_VERSION = "8.1.0"; } $MINGW_ARCHIVE = "$MINGW_BASE.7z"; If ($env:USE_MINGW64 -eq "1") { $MINGW_URL = "https://sourceforge.net/projects/mingw-w64/files/Toolchains%20targetting%20Win64/Personal%20Builds/mingw-builds/$MINGW_VERSION/threads-win32/seh/$MINGW_ARCHIVE/download"; } Else { $MINGW_URL = "https://sourceforge.net/projects/mingw-w64/files/Toolchains%20targetting%20Win32/Personal%20Builds/mingw-builds/$MINGW_VERSION/threads-win32/dwarf/$MINGW_ARCHIVE/download"; } Set-Location c:\projects | Out-Null; If (-Not (Test-Path "$MINGW_ARCHIVE")) { & appveyor DownloadFile "$MINGW_URL" -FileName "$MINGW_ARCHIVE"; } New-Item -ItemType directory -Path "$MINGW_BASE" | Out-Null; Copy-Item "$MINGW_ARCHIVE" "$MINGW_BASE"; Set-Location "$MINGW_BASE" | Out-Null; & 7z x -y "$MINGW_ARCHIVE"; If ($env:USE_MINGW64 -eq "1") { $env:PATH = "c:\projects\$MINGW_BASE\mingw64\bin;C:\Program Files (x86)\CMake\bin"; } Else { $env:PATH = "c:\projects\$MINGW_BASE\mingw32\bin;C:\Program Files (x86)\CMake\bin"; } } ElseIf ($env:USE_WATCOM -eq "1") { $WATCOM_BASE = "open-watcom-c-win32-1.9"; $WATCOM_INSTALLER = "$WATCOM_BASE.exe"; $WATCOM_URL = "https://sourceforge.net/projects/openwatcom/files/open-watcom-1.9/$WATCOM_INSTALLER/download"; Set-Location c:\projects | Out-Null; If (-Not (Test-Path "$WATCOM_INSTALLER")) { & appveyor DownloadFile "$WATCOM_URL" -FileName "$WATCOM_INSTALLER"; } New-Item -ItemType directory -Path "$WATCOM_BASE" | Out-Null; Copy-Item "$WATCOM_INSTALLER" "$WATCOM_BASE"; Set-Location "$WATCOM_BASE" | Out-Null; & 7z x -y "$WATCOM_INSTALLER"; $CUR_LOCATION = "c:\projects\$WATCOM_BASE"; $env:PATH = "$CUR_LOCATION\binw;$env:PATH"; $env:PATH = "$CUR_LOCATION\binnt;$env:PATH"; $env:INCLUDE = "$CUR_LOCATION\h\nt;$env:INCLUDE"; $env:INCLUDE = "$env:INCLUDE;$CUR_LOCATION\h\nt\directx"; $env:INCLUDE = "$env:INCLUDE;$CUR_LOCATION\h\nt\ddk"; $env:INCLUDE = "$CUR_LOCATION\h;$env:INCLUDE"; $env:WATCOM = "$CUR_LOCATION"; $env:EDPATH = "$CUR_LOCATION\eddat"; } build_script: - ps: >- $BUILD_DIR = "c:\projects\plibsys-build"; New-Item -ItemType directory -Path $BUILD_DIR | Out-Null; Set-Location $BUILD_DIR | Out-Null; If ($env:USE_MSYS64 -eq "1") { if ($env:USE_MINGW64 -eq "1") { $BUILD_TYPE = ""; } Else { $BUILD_TYPE = "-DCMAKE_BUILD_TYPE=$env:configuration"; $CTEST_PARAMS = @("-E", "pshm|psemaphore"); } $BUILD_COMMAND = "make"; $BUILD_PARAMS = @("-j", "2"); } ElseIf ($env:USE_MINGW -eq "1") { if ($env:USE_MINGW_493 -eq "1") { $BUILD_TYPE = "-DCMAKE_BUILD_TYPE=$env:configuration"; } Else { $BUILD_TYPE = ""; } $BUILD_COMMAND = "mingw32-make"; $BUILD_PARAMS = @("-j", "2"); } ElseIf ($env:USE_CYGWIN -eq "1") { If ($env:USE_CYGWIN64 -eq "1") { $env:PATH = "c:\cygwin64\bin"; } Else { $env:PATH = "c:\cygwin\bin"; } $BUILD_COMMAND = "make"; $BUILD_PARAMS = @("-j", "2"); If ($env:APPVEYOR_REPO_BRANCH -eq "appveyor_test") { & bash -lc 'cygserver-config --yes'; & cygrunsrv -S cygserver; } } ElseIf ($env:USE_LLVM -eq "1") { pushd "$env:VS140COMNTOOLS\..\..\VC\bin\amd64" cmd /c "vcvars64.bat&set" | foreach { if ($_ -match "=") { $v = $_.split("="); set-item -force -path "ENV:\$($v[0])" -value "$($v[1])" } } popd $env:PATH = "C:\Program Files\LLVM\bin;$env:PATH"; $BUILD_COMMAND = "nmake"; $BUILD_PARAMS = "/NOLOGO" $BUILD_TYPE = "-DCMAKE_BUILD_TYPE=$env:configuration"; $CMAKE_C_COMPILER = "-DCMAKE_C_COMPILER=clang-cl.exe" $CMAKE_CXX_COMPILER = "-DCMAKE_CXX_COMPILER=cl.exe" } ElseIf ($env:USE_WATCOM -eq "1") { $BUILD_COMMAND = "wmake"; } Else { If ($env:USE_OLD_MSBUILD -eq "1") { $env:PATH = "C:\Windows\Microsoft.NET\Framework\v3.5;$env:PATH"; } $BUILD_COMMAND = "msbuild"; $BUILD_PARAMS = @("/verbosity:normal", "$BUILD_DIR\plibsys.sln", "/p:Configuration=$env:configuration", "/m"); } $CMAKE_GENERATOR_ARGS = "-G`"$env:CMAKE_GENERATOR`""; If (Test-Path variable:global:CMAKE_GENERATOR_ARGS) { $CMAKE_GENERATOR_ARGS = "$CMAKE_GENERATOR_ARGS -A $CMAKE_GENERATOR_ARGS"; } If($env:USE_COVERITY -eq "1" -And $env:APPVEYOR_REPO_BRANCH -eq "appveyor_test") { & nuget install PublishCoverity -o $BUILD_DIR -excludeversion; $COVERITY_EXE = "$BUILD_DIR\PublishCoverity\tools\PublishCoverity.exe"; # Do not build tests for Coverity & cmake $CMAKE_GENERATOR_ARGS $CMAKE_C_COMPILER $CMAKE_CXX_COMPILER ../plibsys; & cov-build --dir "$BUILD_DIR\cov-int" $BUILD_COMMAND $BUILD_PARAMS; & $COVERITY_EXE compress -o "$BUILD_DIR\coverity.zip" -i "$BUILD_DIR\cov-int"; & $COVERITY_EXE publish -z "$BUILD_DIR\coverity.zip" -r $env:COVERITY_SCAN_PROJECT_NAME -t $env:COVERITY_SCAN_TOKEN -e $env:COVERITY_SCAN_NOTIFICATION_EMAIL --codeVersion $env:APPVEYOR_BUILD_VERSION; Get-ChildItem -Path ./ -Recurse | Remove-Item -Force -Recurse; } & cmake '$CMAKE_GENERATOR_ARGS' $BUILD_TYPE $CMAKE_C_COMPILER $CMAKE_CXX_COMPILER ../plibsys; & $BUILD_COMMAND $BUILD_PARAMS; If ($env:APPVEYOR_REPO_BRANCH -eq "appveyor_test") { & ctest $CTEST_PARAMS --output-on-failure -V -C Release; }