diff --git a/appveyor.yml b/appveyor.yml index 5727df1eff..70da472ded 100644 --- a/appveyor.yml +++ b/appveyor.yml @@ -28,336 +28,386 @@ version: 7.50.0.{build} environment: - UNITY: "OFF" - OPENSSL: "OFF" - DEBUG: "ON" - SHARED: "OFF" - RUN: "ON" + UNITY: 'OFF' + OPENSSL: 'OFF' + DEBUG: 'ON' + SHARED: 'OFF' matrix: # generated CMake-based Visual Studio Release builds - - job_name: "CMake, VS2008, Release x86, Schannel" - APPVEYOR_BUILD_WORKER_IMAGE: "Visual Studio 2015" + - job_name: 'CMake, VS2008, Release x86, Schannel, Build-only' + APPVEYOR_BUILD_WORKER_IMAGE: 'Visual Studio 2015' BUILD_SYSTEM: CMake - PRJ_GEN: "Visual Studio 9 2008" + PRJ_GEN: 'Visual Studio 9 2008' PRJ_CFG: Release - SCHANNEL: "ON" - ENABLE_UNICODE: "OFF" - HTTP_ONLY: "OFF" - TESTING: "OFF" - SHARED: "ON" - DISABLED_TESTS: "" - # MSVCR90.dll missing - RUN: "OFF" - - job_name: "CMake, VS2022, Release x64, OpenSSL, WebSockets, Unity" - APPVEYOR_BUILD_WORKER_IMAGE: "Visual Studio 2022" + SCHANNEL: 'ON' + ENABLE_UNICODE: 'OFF' + HTTP_ONLY: 'OFF' + SHARED: 'ON' + TESTING: 'OFF' + DISABLED_TESTS: '' + SKIP_RUN: 'Needs missing MSVCR90.dll' + - job_name: 'CMake, VS2022, Release x64, OpenSSL, WebSockets, Unity, Build-only' + APPVEYOR_BUILD_WORKER_IMAGE: 'Visual Studio 2022' BUILD_SYSTEM: CMake - PRJ_GEN: "Visual Studio 17 2022" - TARGET: "-A x64" + PRJ_GEN: 'Visual Studio 17 2022' + TARGET: '-A x64' PRJ_CFG: Release - OPENSSL: "ON" - SCHANNEL: "OFF" - ENABLE_UNICODE: "OFF" - HTTP_ONLY: "OFF" - TESTING: "OFF" - SHARED: "ON" - DISABLED_TESTS: "" - WEBSOCKETS: "ON" - UNITY: "ON" - - job_name: "CMake, VS2022, Release arm64, Schannel, Static" - APPVEYOR_BUILD_WORKER_IMAGE: "Visual Studio 2022" + OPENSSL: 'ON' + SCHANNEL: 'OFF' + ENABLE_UNICODE: 'OFF' + HTTP_ONLY: 'OFF' + SHARED: 'ON' + TESTING: 'OFF' + DISABLED_TESTS: '' + WEBSOCKETS: 'ON' + UNITY: 'ON' + - job_name: 'CMake, VS2022, Release arm64, Schannel, Static, Build-only' + APPVEYOR_BUILD_WORKER_IMAGE: 'Visual Studio 2022' BUILD_SYSTEM: CMake - PRJ_GEN: "Visual Studio 17 2022" - TARGET: "-A ARM64" + PRJ_GEN: 'Visual Studio 17 2022' + TARGET: '-A ARM64' PRJ_CFG: Release - SCHANNEL: "ON" - ENABLE_UNICODE: "OFF" - HTTP_ONLY: "OFF" - TESTING: "OFF" - DISABLED_TESTS: "" + SCHANNEL: 'ON' + ENABLE_UNICODE: 'OFF' + HTTP_ONLY: 'OFF' + TESTING: 'OFF' + DISABLED_TESTS: '' # generated CMake-based Visual Studio Debug builds - - job_name: "CMake, VS2010, Debug x64, no SSL, Static" - APPVEYOR_BUILD_WORKER_IMAGE: "Visual Studio 2015" + - job_name: 'CMake, VS2010, Debug x64, no SSL, Static' + APPVEYOR_BUILD_WORKER_IMAGE: 'Visual Studio 2015' BUILD_SYSTEM: CMake - PRJ_GEN: "Visual Studio 10 2010 Win64" + PRJ_GEN: 'Visual Studio 10 2010 Win64' PRJ_CFG: Debug - SCHANNEL: "OFF" - ENABLE_UNICODE: "OFF" - HTTP_ONLY: "OFF" - TESTING: "ON" - DISABLED_TESTS: "!1139 !1501" - ADD_PATH: "C:\\msys64\\usr\\bin" - - job_name: "CMake, VS2022, Debug x64, Schannel, Static, Unicode" - APPVEYOR_BUILD_WORKER_IMAGE: "Visual Studio 2022" + SCHANNEL: 'OFF' + ENABLE_UNICODE: 'OFF' + HTTP_ONLY: 'OFF' + TESTING: 'ON' + DISABLED_TESTS: '!1139 !1501' + ADD_PATH: 'C:\msys64\usr\bin' + - job_name: 'CMake, VS2022, Debug x64, Schannel, Static, Unicode' + APPVEYOR_BUILD_WORKER_IMAGE: 'Visual Studio 2022' BUILD_SYSTEM: CMake - PRJ_GEN: "Visual Studio 17 2022" - TARGET: "-A x64" + PRJ_GEN: 'Visual Studio 17 2022' + TARGET: '-A x64' PRJ_CFG: Debug - SCHANNEL: "ON" - ENABLE_UNICODE: "ON" - HTTP_ONLY: "OFF" - TESTING: "ON" - DISABLED_TESTS: "~571 !1139 !1501" - ADD_PATH: "C:\\msys64\\usr\\bin" - - job_name: "CMake, VS2022, Debug x64, no SSL, Static" - APPVEYOR_BUILD_WORKER_IMAGE: "Visual Studio 2022" + SCHANNEL: 'ON' + ENABLE_UNICODE: 'ON' + HTTP_ONLY: 'OFF' + TESTING: 'ON' + DISABLED_TESTS: '~571 !1139 !1501' + ADD_PATH: 'C:\msys64\usr\bin' + - job_name: 'CMake, VS2022, Debug x64, no SSL, Static' + APPVEYOR_BUILD_WORKER_IMAGE: 'Visual Studio 2022' BUILD_SYSTEM: CMake - PRJ_GEN: "Visual Studio 17 2022" - TARGET: "-A x64" + PRJ_GEN: 'Visual Studio 17 2022' + TARGET: '-A x64' PRJ_CFG: Debug - SCHANNEL: "OFF" - ENABLE_UNICODE: "OFF" - HTTP_ONLY: "OFF" - TESTING: "ON" - DISABLED_TESTS: "~571 !1139 !1501" - ADD_PATH: "C:\\msys64\\usr\\bin" - - job_name: "CMake, VS2022, Debug x64, no SSL, Static, HTTP only" - APPVEYOR_BUILD_WORKER_IMAGE: "Visual Studio 2022" + SCHANNEL: 'OFF' + ENABLE_UNICODE: 'OFF' + HTTP_ONLY: 'OFF' + TESTING: 'ON' + DISABLED_TESTS: '~571 !1139 !1501' + ADD_PATH: 'C:\msys64\usr\bin' + - job_name: 'CMake, VS2022, Debug x64, no SSL, Static, HTTP only' + APPVEYOR_BUILD_WORKER_IMAGE: 'Visual Studio 2022' BUILD_SYSTEM: CMake - PRJ_GEN: "Visual Studio 17 2022" - TARGET: "-A x64" + PRJ_GEN: 'Visual Studio 17 2022' + TARGET: '-A x64' PRJ_CFG: Debug - SCHANNEL: "OFF" - ENABLE_UNICODE: "OFF" - HTTP_ONLY: "ON" - TESTING: "ON" - DISABLED_TESTS: "!1139 !1501" - ADD_PATH: "C:\\msys64\\usr\\bin" + SCHANNEL: 'OFF' + ENABLE_UNICODE: 'OFF' + HTTP_ONLY: 'ON' + TESTING: 'ON' + DISABLED_TESTS: '!1139 !1501' + ADD_PATH: 'C:\msys64\usr\bin' # generated CMake-based MSYS Makefiles builds (mingw cross-compiling) - - job_name: "CMake, mingw-w64, gcc 8, Debug x64, Schannel, Static, Unicode" - APPVEYOR_BUILD_WORKER_IMAGE: "Visual Studio 2015" + - job_name: 'CMake, mingw-w64, gcc 8, Debug x64, Schannel, Static, Unicode' + APPVEYOR_BUILD_WORKER_IMAGE: 'Visual Studio 2015' BUILD_SYSTEM: CMake - PRJ_GEN: "MSYS Makefiles" + PRJ_GEN: 'MSYS Makefiles' PRJ_CFG: Debug - SCHANNEL: "ON" - ENABLE_UNICODE: "ON" - HTTP_ONLY: "OFF" - TESTING: "ON" - DISABLED_TESTS: "!1139 !1501" - ADD_PATH: "C:\\mingw-w64\\x86_64-8.1.0-posix-seh-rt_v6-rev0\\mingw64\\bin;C:\\msys64\\usr\\bin" - MSYS2_ARG_CONV_EXCL: "/*" + SCHANNEL: 'ON' + ENABLE_UNICODE: 'ON' + HTTP_ONLY: 'OFF' + TESTING: 'ON' + DISABLED_TESTS: '!1139 !1451 !1501' + ADD_PATH: 'C:\mingw-w64\x86_64-8.1.0-posix-seh-rt_v6-rev0\mingw64\bin;C:\msys64\usr\bin' + MSYS2_ARG_CONV_EXCL: '/*' BUILD_OPT: -k - - job_name: "CMake, mingw-w64, gcc 7, Debug x64, Schannel, Static, Unicode" - APPVEYOR_BUILD_WORKER_IMAGE: "Visual Studio 2017" + - job_name: 'CMake, mingw-w64, gcc 7, Debug x64, Schannel, Static, Unicode' + APPVEYOR_BUILD_WORKER_IMAGE: 'Visual Studio 2017' BUILD_SYSTEM: CMake - PRJ_GEN: "MSYS Makefiles" + PRJ_GEN: 'MSYS Makefiles' PRJ_CFG: Debug - SCHANNEL: "ON" - ENABLE_UNICODE: "ON" - HTTP_ONLY: "OFF" - TESTING: "ON" - DISABLED_TESTS: "!1139 !1501" - ADD_PATH: "C:\\mingw-w64\\x86_64-7.2.0-posix-seh-rt_v5-rev1\\mingw64\\bin;C:\\msys64\\usr\\bin" - MSYS2_ARG_CONV_EXCL: "/*" + SCHANNEL: 'ON' + ENABLE_UNICODE: 'ON' + HTTP_ONLY: 'OFF' + TESTING: 'ON' + DISABLED_TESTS: '!1139 !1451 !1501' + ADD_PATH: 'C:\mingw-w64\x86_64-7.2.0-posix-seh-rt_v5-rev1\mingw64\bin;C:\msys64\usr\bin' + MSYS2_ARG_CONV_EXCL: '/*' BUILD_OPT: -k - - job_name: "CMake, mingw-w64, gcc 9, Debug x64, Schannel, Static, Unity" - APPVEYOR_BUILD_WORKER_IMAGE: "Visual Studio 2017" + - job_name: 'CMake, mingw-w64, gcc 9, Debug x64, Schannel, Static, Unity' + APPVEYOR_BUILD_WORKER_IMAGE: 'Visual Studio 2017' BUILD_SYSTEM: CMake - PRJ_GEN: "MSYS Makefiles" + PRJ_GEN: 'MSYS Makefiles' PRJ_CFG: Debug - SCHANNEL: "ON" - ENABLE_UNICODE: "OFF" - HTTP_ONLY: "OFF" - TESTING: "OFF" - ADD_PATH: "C:\\msys64\\mingw64\\bin;C:\\msys64\\usr\\bin" - MSYS2_ARG_CONV_EXCL: "/*" + SCHANNEL: 'ON' + ENABLE_UNICODE: 'OFF' + HTTP_ONLY: 'OFF' + TESTING: 'ON' + DISABLED_TESTS: '!1139 !1451 !1501' + ADD_PATH: 'C:\msys64\mingw64\bin;C:\msys64\usr\bin' + MSYS2_ARG_CONV_EXCL: '/*' BUILD_OPT: -k - UNITY: "ON" - - job_name: "CMake, mingw-w64, gcc 6, Debug x86, Schannel, Static" - APPVEYOR_BUILD_WORKER_IMAGE: "Visual Studio 2015" + UNITY: 'ON' + - job_name: 'CMake, mingw-w64, gcc 6, Debug x86, Schannel, Static' + APPVEYOR_BUILD_WORKER_IMAGE: 'Visual Studio 2015' BUILD_SYSTEM: CMake - PRJ_GEN: "MSYS Makefiles" + PRJ_GEN: 'MSYS Makefiles' PRJ_CFG: Debug - SCHANNEL: "ON" - ENABLE_UNICODE: "OFF" - HTTP_ONLY: "OFF" - TESTING: "ON" - DISABLED_TESTS: "!1139 !1501" - ADD_PATH: "C:\\mingw-w64\\i686-6.3.0-posix-dwarf-rt_v5-rev1\\mingw32\\bin;C:\\msys64\\usr\\bin" - MSYS2_ARG_CONV_EXCL: "/*" + SCHANNEL: 'ON' + ENABLE_UNICODE: 'OFF' + HTTP_ONLY: 'OFF' + TESTING: 'ON' + DISABLED_TESTS: '!1139 !1451 !1501' + ADD_PATH: 'C:\mingw-w64\i686-6.3.0-posix-dwarf-rt_v5-rev1\mingw32\bin;C:\msys64\usr\bin' + MSYS2_ARG_CONV_EXCL: '/*' BUILD_OPT: -k # winbuild-based builds - - job_name: "winbuild, VS2015, Debug" - APPVEYOR_BUILD_WORKER_IMAGE: "Visual Studio 2015" + - job_name: 'winbuild, VS2015, Debug, x64, Build-only' + APPVEYOR_BUILD_WORKER_IMAGE: 'Visual Studio 2015' BUILD_SYSTEM: winbuild_vs2015 - DEBUG: "yes" + DEBUG: 'yes' PATHPART: debug - TESTING: "OFF" - ENABLE_UNICODE: "no" - - job_name: "winbuild, VS2015, Release" - APPVEYOR_BUILD_WORKER_IMAGE: "Visual Studio 2015" + TESTING: 'OFF' + ENABLE_UNICODE: 'no' + - job_name: 'winbuild, VS2015, Release, x64, Build-only' + APPVEYOR_BUILD_WORKER_IMAGE: 'Visual Studio 2015' BUILD_SYSTEM: winbuild_vs2015 - DEBUG: "no" + DEBUG: 'no' PATHPART: release - TESTING: "OFF" - ENABLE_UNICODE: "no" - - job_name: "winbuild, VS2017, Debug" - APPVEYOR_BUILD_WORKER_IMAGE: "Visual Studio 2017" + TESTING: 'OFF' + ENABLE_UNICODE: 'no' + - job_name: 'winbuild, VS2017, Debug, x64, Build-only' + APPVEYOR_BUILD_WORKER_IMAGE: 'Visual Studio 2017' BUILD_SYSTEM: winbuild_vs2017 - DEBUG: "yes" + DEBUG: 'yes' PATHPART: debug - TESTING: "OFF" - ENABLE_UNICODE: "no" - - job_name: "winbuild, VS2017, Release" - APPVEYOR_BUILD_WORKER_IMAGE: "Visual Studio 2017" + TESTING: 'OFF' + ENABLE_UNICODE: 'no' + - job_name: 'winbuild, VS2017, Release, x64, Build-only' + APPVEYOR_BUILD_WORKER_IMAGE: 'Visual Studio 2017' BUILD_SYSTEM: winbuild_vs2017 - DEBUG: "no" + DEBUG: 'no' PATHPART: release - TESTING: "OFF" - ENABLE_UNICODE: "no" - - job_name: "winbuild, VS2015, Debug, Unicode" - APPVEYOR_BUILD_WORKER_IMAGE: "Visual Studio 2015" + TESTING: 'OFF' + ENABLE_UNICODE: 'no' + - job_name: 'winbuild, VS2015, Debug, x64, Unicode, Build-only' + APPVEYOR_BUILD_WORKER_IMAGE: 'Visual Studio 2015' BUILD_SYSTEM: winbuild_vs2015 - DEBUG: "yes" + DEBUG: 'yes' PATHPART: debug - TESTING: "OFF" - ENABLE_UNICODE: "yes" - - job_name: "winbuild, VS2015, Release, Unicode" - APPVEYOR_BUILD_WORKER_IMAGE: "Visual Studio 2015" + TESTING: 'OFF' + ENABLE_UNICODE: 'yes' + - job_name: 'winbuild, VS2015, Release, x64, Unicode, Build-only' + APPVEYOR_BUILD_WORKER_IMAGE: 'Visual Studio 2015' BUILD_SYSTEM: winbuild_vs2015 - DEBUG: "no" + DEBUG: 'no' PATHPART: release - TESTING: "OFF" - ENABLE_UNICODE: "yes" - - job_name: "winbuild, VS2017, Debug, Unicode" - APPVEYOR_BUILD_WORKER_IMAGE: "Visual Studio 2017" + TESTING: 'OFF' + ENABLE_UNICODE: 'yes' + - job_name: 'winbuild, VS2017, Debug, x64, Unicode, Build-only' + APPVEYOR_BUILD_WORKER_IMAGE: 'Visual Studio 2017' BUILD_SYSTEM: winbuild_vs2017 - DEBUG: "yes" + DEBUG: 'yes' PATHPART: debug - TESTING: "OFF" - ENABLE_UNICODE: "yes" - - job_name: "winbuild, VS2017, Release, Unicode" - APPVEYOR_BUILD_WORKER_IMAGE: "Visual Studio 2017" + TESTING: 'OFF' + ENABLE_UNICODE: 'yes' + - job_name: 'winbuild, VS2017, Release, x64, Unicode, Build-only' + APPVEYOR_BUILD_WORKER_IMAGE: 'Visual Studio 2017' BUILD_SYSTEM: winbuild_vs2017 - DEBUG: "no" + DEBUG: 'no' PATHPART: release - TESTING: "OFF" - ENABLE_UNICODE: "yes" + TESTING: 'OFF' + ENABLE_UNICODE: 'yes' # generated VisualStudioSolution-based builds - - job_name: "VisualStudioSolution, VS2017, Debug" - APPVEYOR_BUILD_WORKER_IMAGE: "Visual Studio 2017" + - job_name: 'VisualStudioSolution, VS2017, Debug, x86, Build-only' + APPVEYOR_BUILD_WORKER_IMAGE: 'Visual Studio 2017' BUILD_SYSTEM: VisualStudioSolution - PRJ_CFG: "DLL Debug - DLL Windows SSPI - DLL WinIDN" - TESTING: "OFF" + PRJ_CFG: 'DLL Debug - DLL Windows SSPI - DLL WinIDN' + TESTING: 'OFF' VC_VERSION: VC14.10 # autotools-based builds (NOT mingw cross-compiling, but msys2 native) - - job_name: "autotools, msys2, Debug, no Proxy, no SSL" - APPVEYOR_BUILD_WORKER_IMAGE: "Visual Studio 2017" + - job_name: 'autotools, msys2, Debug, x86_64, no Proxy, no SSL' + APPVEYOR_BUILD_WORKER_IMAGE: 'Visual Studio 2017' BUILD_SYSTEM: autotools - TESTING: "ON" - DISABLED_TESTS: "!19 !1233" - ADD_PATH: "C:\\msys64\\usr\\bin" - CONFIG_ARGS: "--enable-debug --enable-werror --disable-threaded-resolver --disable-proxy --without-ssl --enable-websockets" - - job_name: "autotools, msys2, Debug, no SSL" - APPVEYOR_BUILD_WORKER_IMAGE: "Visual Studio 2017" + TESTING: 'ON' + DISABLED_TESTS: '!19 !1233' + ADD_PATH: 'C:\msys64\usr\bin' + CONFIG_ARGS: '--enable-debug --enable-werror --disable-threaded-resolver --disable-proxy --without-ssl --enable-websockets' + - job_name: 'autotools, msys2, Debug, x86_64, no SSL' + APPVEYOR_BUILD_WORKER_IMAGE: 'Visual Studio 2017' BUILD_SYSTEM: autotools - TESTING: "ON" - DISABLED_TESTS: "!19 !504 !704 !705 !1233" - ADD_PATH: "C:\\msys64\\usr\\bin" - CONFIG_ARGS: "--enable-debug --enable-werror --disable-threaded-resolver --without-ssl --enable-websockets" - - job_name: "autotools, msys2, Release, no SSL" - APPVEYOR_BUILD_WORKER_IMAGE: "Visual Studio 2017" + TESTING: 'ON' + DISABLED_TESTS: '!19 !504 !704 !705 !1233' + ADD_PATH: 'C:\msys64\usr\bin' + CONFIG_ARGS: '--enable-debug --enable-werror --disable-threaded-resolver --without-ssl --enable-websockets' + - job_name: 'autotools, msys2, Release, x86_64, no SSL' + APPVEYOR_BUILD_WORKER_IMAGE: 'Visual Studio 2017' BUILD_SYSTEM: autotools - TESTING: "ON" - DISABLED_TESTS: "!19 !504 !704 !705 !1233" - ADD_PATH: "C:\\msys64\\usr\\bin" - CONFIG_ARGS: "--enable-warnings --enable-werror --without-ssl --enable-websockets" + TESTING: 'ON' + DISABLED_TESTS: '!19 !504 !704 !705 !1233' + ADD_PATH: 'C:\msys64\usr\bin' + CONFIG_ARGS: '--enable-warnings --enable-werror --without-ssl --enable-websockets' # autotools-based Cygwin build - - job_name: "autotools, cygwin, Debug, no SSL" - APPVEYOR_BUILD_WORKER_IMAGE: "Visual Studio 2022" + - job_name: 'autotools, cygwin, Debug, x86_64, no SSL' + APPVEYOR_BUILD_WORKER_IMAGE: 'Visual Studio 2022' BUILD_SYSTEM: autotools - TESTING: "ON" - DISABLED_TESTS: "" - ADD_PATH: "C:\\cygwin64\\bin" - CONFIG_ARGS: "--enable-debug --enable-werror --disable-threaded-resolver --without-ssl --enable-websockets" - POSIX_PATH_PREFIX: "/cygdrive" + TESTING: 'ON' + DISABLED_TESTS: '' + ADD_PATH: 'C:\cygwin64\bin' + CONFIG_ARGS: '--enable-debug --enable-werror --disable-threaded-resolver --without-ssl --enable-websockets' + POSIX_PATH_PREFIX: '/cygdrive' install: - - if not "%ADD_PATH%" == "" ( - set "PATH=%ADD_PATH%;%PATH%" ) + - ps: | + if($env:ADD_PATH -ne $null) { + $env:PATH = "$env:ADD_PATH;$env:PATH" + } build_script: - - if "%BUILD_SYSTEM%" == "CMake" ( - cmake . - -G"%PRJ_GEN%" - %TARGET% - -DCURL_USE_OPENSSL=%OPENSSL% - -DOPENSSL_ROOT_DIR=C:/OpenSSL-v111-Win64 - -DCURL_USE_SCHANNEL=%SCHANNEL% - -DHTTP_ONLY=%HTTP_ONLY% - -DBUILD_SHARED_LIBS=%SHARED% - -DBUILD_TESTING=%TESTING% - -DENABLE_WEBSOCKETS=%WEBSOCKETS% - -DCMAKE_UNITY_BUILD=%UNITY% - -DCURL_WERROR=ON - -DENABLE_DEBUG=%DEBUG% - -DENABLE_UNICODE=%ENABLE_UNICODE% - -DCMAKE_RUNTIME_OUTPUT_DIRECTORY_RELEASE="" - -DCMAKE_RUNTIME_OUTPUT_DIRECTORY_DEBUG="" - -DCMAKE_INSTALL_PREFIX="C:/CURL" - -DCMAKE_BUILD_TYPE=%PRJ_CFG% && - cmake --build . --config %PRJ_CFG% --parallel 2 --clean-first -- %BUILD_OPT% && - if "%SHARED%" == "ON" ( - bash.exe -e -l -c "cp -f -p %POSIX_PATH_PREFIX%/c/projects/curl/lib/*.dll %POSIX_PATH_PREFIX%/c/projects/curl/src/" && - bash.exe -e -l -c "cp -f -p %POSIX_PATH_PREFIX%/c/projects/curl/lib/*.dll %POSIX_PATH_PREFIX%/c/projects/curl/tests/libtest/" ) && - if "%OPENSSL%" == "ON" ( - bash.exe -e -l -c "cp -f -p %POSIX_PATH_PREFIX%/c/OpenSSL-v111-Win64/*.dll %POSIX_PATH_PREFIX%/c/projects/curl/src/" ) && - bash.exe -e -l -c "find %POSIX_PATH_PREFIX%/c/projects/curl -name '*.exe' -o -name '*.dll'" && - if "%RUN%" == "ON" ( - src\curl.exe -V ) - ) else ( - if "%BUILD_SYSTEM%" == "VisualStudioSolution" ( - cd projects && - .\generate.bat %VC_VERSION% && - msbuild.exe /p:Configuration="%PRJ_CFG%" "Windows\\%VC_VERSION%\\curl-all.sln" && - bash.exe -e -l -c "find %POSIX_PATH_PREFIX%/c/projects/curl -name '*.exe' -o -name '*.dll'" && - cd "../build/Win32/%VC_VERSION%/%PRJ_CFG%" && - curld.exe -V - ) else ( - if "%BUILD_SYSTEM%" == "winbuild_vs2015" ( - call buildconf.bat && - cd winbuild && - call "C:\Program Files\Microsoft SDKs\Windows\v7.1\Bin\SetEnv.cmd" /x64 && - call "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" x86_amd64 && - nmake /f Makefile.vc mode=dll VC=14 "SSL_PATH=C:\OpenSSL-v111-Win64" WITH_SSL=dll MACHINE=x64 DEBUG=%DEBUG% ENABLE_UNICODE=%ENABLE_UNICODE% && - bash.exe -e -l -c "find %POSIX_PATH_PREFIX%/c/projects/curl -name '*.exe' -o -name '*.dll'" && - ..\builds\libcurl-vc14-x64-%PATHPART%-dll-ssl-dll-ipv6-sspi\bin\curl.exe -V - ) else ( - if "%BUILD_SYSTEM%" == "winbuild_vs2017" ( - call buildconf.bat && - cd winbuild && - call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Auxiliary\Build\vcvars64.bat" && - nmake /f Makefile.vc mode=dll VC=14.10 "SSL_PATH=C:\OpenSSL-v111-Win64" WITH_SSL=dll MACHINE=x64 DEBUG=%DEBUG% ENABLE_UNICODE=%ENABLE_UNICODE% && - ..\builds\libcurl-vc14.10-x64-%PATHPART%-dll-ssl-dll-ipv6-sspi\bin\curl.exe -V - ) else ( - if "%BUILD_SYSTEM%" == "autotools" ( - bash.exe -e -l -c "cd %POSIX_PATH_PREFIX%/c/projects/curl && autoreconf -fi && ./configure %CONFIG_ARGS% && make V=1 && make V=1 examples && cd tests && make V=1" && - src\curl.exe -V - ))))) - # - ps: | - # if(Test-Path CMakeFiles/CMakeConfigureLog.yaml) { cat CMakeFiles/CMakeConfigureLog.yaml } - # if(Test-Path CMakeFiles/CMakeOutput.log) { cat CMakeFiles/CMakeOutput.log } - # if(Test-Path CMakeFiles/CMakeError.log) { cat CMakeFiles/CMakeError.log } - - if "%TESTING%" == "ON" ( - if "%BUILD_SYSTEM%" == "CMake" ( - cmake --build . --config %PRJ_CFG% --parallel 2 --target testdeps - )) + - ps: | + function Pull-BatchFile-Env { + param([string]$Path, [string]$Parameters) + $tempFile = [IO.Path]::GetTempFileName() + cmd.exe /c " `"$Path`" $Parameters && set " > $tempFile + Get-Content $tempFile | ForEach-Object { if($_ -match '^(.*?)=(.*)$') { Set-Content "env:\$($matches[1])" $matches[2] } } + Remove-Item $tempFile + } + + $ErrorActionPreference = 'Stop' + + $openssl_root = 'C:\OpenSSL-v111-Win64' + + if($env:BUILD_SYSTEM -eq 'CMake') { + + $options = @('-DCURL_WERROR=ON') + $options += "-G$env:PRJ_GEN" + if($env:TARGET -ne $null) { + $options += "$env:TARGET" + if($env:TARGET.Contains('ARM64')) { + $env:SKIP_RUN = 'ARM64 architecture' + } + } + $options += "-DCURL_USE_OPENSSL=$env:OPENSSL" + if($env:OPENSSL -eq 'ON') { + $options += "-DOPENSSL_ROOT_DIR=$openssl_root" + } + $options += "-DCURL_USE_SCHANNEL=$env:SCHANNEL" + $options += "-DHTTP_ONLY=$env:HTTP_ONLY" + $options += "-DBUILD_SHARED_LIBS=$env:SHARED" + $options += "-DBUILD_TESTING=$env:TESTING" + $options += "-DENABLE_WEBSOCKETS=$env:WEBSOCKETS" + $options += "-DCMAKE_UNITY_BUILD=$env:UNITY" + $options += "-DENABLE_DEBUG=$env:DEBUG" + $options += "-DENABLE_UNICODE=$env:ENABLE_UNICODE" + $options += '-DCMAKE_INSTALL_PREFIX=C:/CURL' + $options += "-DCMAKE_BUILD_TYPE=$env:PRJ_CFG" + if($env:PRJ_CFG -eq 'Debug') { + $options += '-DCMAKE_RUNTIME_OUTPUT_DIRECTORY_DEBUG=' + } + elseif ($env:PRJ_CFG -eq 'Release') { + $options += '-DCMAKE_RUNTIME_OUTPUT_DIRECTORY_RELEASE=' + } + if($env:PRJ_GEN.Contains('Visual Studio')) { + $options += '-DCMAKE_VS_GLOBALS=TrackFileAccess=false' + } + + cmake --version + Write-Host 'CMake options:' $options + cmake . $options + cmake --build . --config $env:PRJ_CFG --parallel 2 --clean-first -- $env:BUILD_OPT + if($env:SHARED -eq 'ON') { + Copy-Item -Path 'C:\Projects\curl\lib\*.dll' -Destination 'C:\projects\curl\src' + Copy-Item -Path 'C:\Projects\curl\lib\*.dll' -Destination 'C:\projects\curl\tests\libtest' + } + if($env:OPENSSL -eq 'ON') { + Copy-Item -Path "$openssl_root\*.dll" -Destination 'C:\projects\curl\src' + } + $curl = '.\src\curl.exe' + } + elseif($env:BUILD_SYSTEM -eq 'VisualStudioSolution') { + cd projects + .\generate.bat $env:VC_VERSION + msbuild.exe -maxcpucount "-property:Configuration=$env:PRJ_CFG" "Windows\$env:VC_VERSION\curl-all.sln" + $curl = "..\build\Win32\$env:VC_VERSION\$env:PRJ_CFG\curld.exe" + } + elseif($env:BUILD_SYSTEM -eq 'winbuild_vs2015') { + .\buildconf.bat + cd winbuild + Pull-BatchFile-Env 'C:\Program Files\Microsoft SDKs\Windows\v7.1\Bin\SetEnv.cmd' /x64 + Pull-BatchFile-Env 'C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat' x86_amd64 + nmake /nologo /f Makefile.vc mode=dll VC=14 "SSL_PATH=$openssl_root" WITH_SSL=dll MACHINE=x64 DEBUG=$env:DEBUG ENABLE_UNICODE=$env:ENABLE_UNICODE + $curl = "..\builds\libcurl-vc14-x64-$env:PATHPART-dll-ssl-dll-ipv6-sspi\bin\curl.exe" + } + elseif($env:BUILD_SYSTEM -eq 'winbuild_vs2017') { + .\buildconf.bat + cd winbuild + Pull-BatchFile-Env 'C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Auxiliary\Build\vcvars64.bat' + nmake /nologo /f Makefile.vc mode=dll VC=14.10 "SSL_PATH=$openssl_root" WITH_SSL=dll MACHINE=x64 DEBUG=$env:DEBUG ENABLE_UNICODE=$env:ENABLE_UNICODE + $curl = "..\builds\libcurl-vc14.10-x64-$env:PATHPART-dll-ssl-dll-ipv6-sspi\bin\curl.exe" + } + elseif($env:BUILD_SYSTEM -eq 'autotools') { + & bash -e -c "cd $env:POSIX_PATH_PREFIX/c/projects/curl && autoreconf -fi 2>&1 && ./configure $env:CONFIG_ARGS 2>&1 && make V=1 && make V=1 examples && cd tests && make V=1" + $curl = '.\src\curl.exe' + } + + Get-ChildItem -Path C:\projects\curl -Include ('*.exe', '*.dll') -Recurse -Name + if($env:SKIP_RUN -eq $null) { + cmd.exe /c "`"$curl`" -V 2>&1" + if(-not $?) { + Write-Host "Error running curl: '$curl':" ("0x" + $LastExitCode.ToString("X")) + exit 1 + } + } + else { + Write-Host "Skip running curl.exe. Reason: $env:SKIP_RUN" + } + + if($false) { + if(Test-Path CMakeFiles/CMakeConfigureLog.yaml) { cat CMakeFiles/CMakeConfigureLog.yaml } + if(Test-Path CMakeFiles/CMakeOutput.log) { cat CMakeFiles/CMakeOutput.log } + if(Test-Path CMakeFiles/CMakeError.log) { cat CMakeFiles/CMakeError.log } + if(Test-Path config.log) { cat config.log } + } + + if($env:TESTING -eq 'ON' -and $env:BUILD_SYSTEM -eq 'CMake') { + cmake --build . --config $env:PRJ_CFG --parallel 2 --target testdeps + } test_script: - - if exist C:/msys64/usr/bin/curl.exe ( - set ACURL=-ac %POSIX_PATH_PREFIX%/c/msys64/usr/bin/curl.exe ) - - if exist C:/Windows/System32/curl.exe ( - set ACURL=-ac %POSIX_PATH_PREFIX%/c/Windows/System32/curl.exe ) - - if "%TESTING%" == "ON" ( - if "%BUILD_SYSTEM%" == "CMake" ( - set TFLAGS=%ACURL% %DISABLED_TESTS% && - cmake --build . --config %PRJ_CFG% --target test-ci - ) else ( - if "%BUILD_SYSTEM%" == "autotools" ( - bash.exe -e -l -c "cd %POSIX_PATH_PREFIX%/c/projects/curl && make V=1 TFLAGS='%ACURL% %DISABLED_TESTS%' test-ci" - ) else ( - bash.exe -e -l -c "cd %POSIX_PATH_PREFIX%/c/projects/curl/tests && ./runtests.pl -a -p !flaky -r -rm %ACURL% %DISABLED_TESTS%" - )) - ) + - ps: | + if(Test-Path 'C:/msys64/usr/bin/curl.exe') { + $acurl="-ac $env:POSIX_PATH_PREFIX/c/msys64/usr/bin/curl.exe" + } + if(Test-Path 'C:/Windows/System32/curl.exe') { + $acurl="-ac $env:POSIX_PATH_PREFIX/c/Windows/System32/curl.exe" + } + if($env:TESTING -eq 'ON') { + if($env:BUILD_SYSTEM -eq 'CMake') { + $env:TFLAGS="$acurl $env:DISABLED_TESTS" + cmake --build . --config $env:PRJ_CFG --target test-ci + } + elseif($env:BUILD_SYSTEM -eq 'autotools') { + & bash -e -c "cd $env:POSIX_PATH_PREFIX/c/projects/curl && make V=1 TFLAGS='$acurl $env:DISABLED_TESTS' test-ci" + } + else { + & bash -e -c "cd $env:POSIX_PATH_PREFIX/c/projects/curl/tests && ./runtests.pl -a -p !flaky -r -rm $acurl $env:DISABLED_TESTS" + } + } + +clone_depth: 10 # select branches to avoid testing feature branches twice (as branch and as pull request) branches: