diff --git a/appveyor.yml b/appveyor.yml index 2c1ff30b..479b45a4 100644 --- a/appveyor.yml +++ b/appveyor.yml @@ -1,191 +1,192 @@ -version: '{build}' - -configuration: - - Release - -platform: - - x86 - - x64 - -environment: - enable_cxx: NO - enable_ssl_dynamic_loading: YES - enable_lua: NO - enable_lua_shared: NO - c_standard: auto - cxx_standard: auto - matrix: - - compiler: msvc-18-seh - build_shared: NO - no_files: NO - enable_ipv6: NO - enable_ssl: YES - enable_websockets: YES - no_cgi: NO - - compiler: msvc-18-seh - build_shared: YES - no_files: NO - enable_ipv6: NO - enable_ssl: YES - enable_websockets: YES - no_cgi: NO - - compiler: msvc-18-seh - build_shared: YES - no_files: YES - enable_ipv6: NO - enable_ssl: YES - enable_websockets: YES - no_cgi: NO - - compiler: gcc-5.1.0-posix - build_shared: NO - no_files: YES - enable_ipv6: NO - enable_ssl: NO - enable_websockets: NO - no_cgi: YES - - compiler: gcc-5.1.0-posix - build_shared: NO - no_files: NO - enable_ipv6: YES - enable_ssl: YES - enable_websockets: YES - no_cgi: NO - - compiler: gcc-5.1.0-posix - build_shared: NO - no_files: NO - enable_ipv6: NO - enable_ssl: YES - enable_websockets: YES - no_cgi: NO - - compiler: gcc-5.1.0-posix - build_shared: YES - no_files: NO - enable_ipv6: NO - enable_ssl: YES - enable_websockets: YES - no_cgi: NO - - compiler: gcc-5.1.0-posix - build_shared: YES - no_files: YES - enable_ipv6: NO - enable_ssl: YES - enable_websockets: YES - no_cgi: NO - - -install: - # Derive some extra information - - set build_type=%configuration% - - for /f "tokens=1-3 delims=-" %%a in ("%compiler%") do (@set "compiler_name=%%a") - - for /f "tokens=1-3 delims=-" %%a in ("%compiler%") do (@set "compiler_version=%%b") - - for /f "tokens=1-3 delims=-" %%a in ("%compiler%") do (@set "compiler_threading=%%c") - - if "%platform%"=="x64" (set arch=x86_64) - - if "%platform%"=="x86" (set arch=i686) - # Download the specific version of MinGW - - if "%compiler_name%"=="gcc" (@set "mingw_output_folder=C:\mingw-builds") - - if "%compiler_name%"=="gcc" ( - @for /f %%a in ( - 'call mingw.cmd - /version "%compiler_version%" - /arch "%arch%" - /threading "%compiler_threading%" - "%mingw_output_folder%"' - ) do @set "compiler_path=%%a" - ) - - if "%compiler_name%"=="gcc" (@set "mingw_log_folder=%mingw_output_folder%\logs") - - if exist "%mingw_log_folder%" @for /f %%f in ('dir /b /oD /tc "%mingw_log_folder%"') do @set "mingw_log_file=%mingw_log_folder%\%%f" - - if exist "%mingw_log_file%" powershell Push-AppveyorArtifact "%mingw_log_file%" -FileName mingw-download.log - # Get OpenSSL - - if not exist C:\ssl\ (md C:\ssl\) - - if not exist C:\ssl\Win32OpenSSL.exe (curl http://slproweb.com/download/Win32OpenSSL-1_0_2d.exe -o C:\ssl\Win32OpenSSL.exe) - - if not exist C:\ssl\Win64OpenSSL.exe (curl http://slproweb.com/download/Win64OpenSSL-1_0_2d.exe -o C:\ssl\Win64OpenSSL.exe) - - C:\ssl\Win32OpenSSL.exe /SILENT /LOG="C:\ssl\install32.log" - - C:\ssl\Win64OpenSSL.exe /SILENT /LOG="C:\ssl\install64.log" - - -before_build: - # Set up mingw commands - - if "%compiler_name%"=="gcc" (set "generator=MinGW Makefiles") - - if "%compiler_name%"=="gcc" (set "build=mingw32-make -j4") - - if "%compiler_name%"=="gcc" (set "test=mingw32-make CTEST_OUTPUT_ON_FAILURE=1 test") - # MSVC specific commands - # Note: The minimum version officially supported for CivetWeb is VS2010. Older ones might work or not. - - if "%compiler_version%"=="14" (set "vs_version=8" & set "vs_year=2005") - - if "%compiler_version%"=="15" (set "vs_version=9" & set "vs_year=2008") - - if "%compiler_version%"=="16" (set "vs_version=10" & set "vs_year=2010") - - if "%compiler_version%"=="17" (set "vs_version=11" & set "vs_year=2012") - - if "%compiler_version%"=="18" (set "vs_version=12" & set "vs_year=2013") - - if "%compiler_version%"=="19" (set "vs_version=14" & set "vs_year=2015") - - if "%compiler_name%"=="msvc" (set "generator=Visual Studio %vs_version% %vs_year%") - - if "%compiler_name%"=="msvc" ( - if "%platform%"=="x64" ( - set "generator=%generator% Win64" - ) - ) - - if %compiler_version% gtr 9 (set platform=%platform:x86=Win32%) - - if "%compiler_name%"=="msvc" (set "msbuild_opts=/clp:OnlyErrors;OnlyWarnings /nologo /m /v:m") - - if "%compiler_name%"=="msvc" (set "build=msbuild %msbuild_opts% /p:Configuration=%configuration% /p:Platform=%platform% civetweb.sln") - - if "%compiler_name%"=="msvc" (set "test=msbuild %msbuild_opts% RUN_TESTS.vcxproj") - # Add the compiler path if needed - - if not "%compiler_path%"=="" (set "PATH=%PATH%;%compiler_path%") - # git bash conflicts with MinGW makefiles - - if "%generator%"=="MinGW Makefiles" (set "PATH=%PATH:C:\Program Files (x86)\Git\bin=%") - # Useful locations - - set "source_path=%cd%" - - set "output_path=%source_path%\output" - - set "build_path=%output_path%\build" - - set "install_path=%output_path%\install" - - set "third_party_dir=C:\third-party" - # Check some settings of the build server - - ver - - cd - - dir - - ipconfig /all - # Generate the build scripts with CMake - - mkdir "%build_path%" - - cd "%build_path%" - - cmake --version - - appveyor AddMessage -Category Information "Generating '%generator%'" - - cmake - -G "%generator%" - -DCMAKE_BUILD_TYPE=%build_type% - -DBUILD_SHARED_LIBS=%build_shared% - -DCIVETWEB_SERVE_NO_FILES=%no_files% - "-DCIVETWEB_THIRD_PARTY_DIR=%third_party_dir:\=\\%" - -DCIVETWEB_ENABLE_THIRD_PARTY_OUTPUT=YES - -DCIVETWEB_ENABLE_SSL=%enable_ssl% - -DCIVETWEB_DISABLE_CGI=%no_cgi% - -DCIVETWEB_ENABLE_SSL_DYNAMIC_LOADING=%enable_ssl_dynamic_loading% - -DCIVETWEB_ENABLE_WEBSOCKETS=%enable_websockets% - -DCIVETWEB_ENABLE_CXX=%enable_cxx% - -DCIVETWEB_ENABLE_LUA=%enable_lua% - -DCIVETWEB_ENABLE_LUA_SHARED=%enable_lua_shared% - -DCIVETWEB_C_STANDARD=%c_standard% - -DCIVETWEB_CXX_STANDARD=%cxx_standard% - "%source_path%" - - powershell Push-AppveyorArtifact CMakeCache.txt - - cd "%source_path%" - -build_script: - - cd - - cd "%build_path%" - - appveyor AddMessage -Category Information "Build command '%build%'" - - cmd /c "%build%" - - cd "%source_path%" - -test_script: - - cd "%build_path%" - - appveyor AddMessage -Category Information "Test command '%build%'" - - cmd /c "%test%" - - cd "%source_path%" - -after_test: - - cmake "-DCMAKE_INSTALL_PREFIX=%install_path%" -P "%build_path%/cmake_install.cmake" - -matrix: - fast_finish: true - -cache: - - C:\mingw-builds -> mingw.cmd - - C:\third-party -> **\CMakeLists.txt - - C:\ssl +version: '{build}' + +configuration: + - Release + +platform: + - x86 + - x64 + +environment: + enable_cxx: NO + enable_ssl_dynamic_loading: YES + enable_lua: NO + enable_lua_shared: NO + c_standard: auto + cxx_standard: auto + matrix: + - compiler: msvc-18-seh + build_shared: NO + no_files: NO + enable_ipv6: NO + enable_ssl: YES + enable_websockets: YES + no_cgi: NO + - compiler: msvc-18-seh + build_shared: YES + no_files: NO + enable_ipv6: NO + enable_ssl: YES + enable_websockets: YES + no_cgi: NO + - compiler: msvc-18-seh + build_shared: YES + no_files: YES + enable_ipv6: NO + enable_ssl: YES + enable_websockets: YES + no_cgi: NO + - compiler: gcc-5.1.0-posix + build_shared: NO + no_files: YES + enable_ipv6: NO + enable_ssl: NO + enable_websockets: NO + no_cgi: YES + - compiler: gcc-5.1.0-posix + build_shared: NO + no_files: NO + enable_ipv6: YES + enable_ssl: YES + enable_websockets: YES + no_cgi: NO + - compiler: gcc-5.1.0-posix + build_shared: NO + no_files: NO + enable_ipv6: NO + enable_ssl: YES + enable_websockets: YES + no_cgi: NO + - compiler: gcc-5.1.0-posix + build_shared: YES + no_files: NO + enable_ipv6: NO + enable_ssl: YES + enable_websockets: YES + no_cgi: NO + - compiler: gcc-5.1.0-posix + build_shared: YES + no_files: YES + enable_ipv6: NO + enable_ssl: YES + enable_websockets: YES + no_cgi: NO + + +install: + # Derive some extra information + - set build_type=%configuration% + - for /f "tokens=1-3 delims=-" %%a in ("%compiler%") do (@set "compiler_name=%%a") + - for /f "tokens=1-3 delims=-" %%a in ("%compiler%") do (@set "compiler_version=%%b") + - for /f "tokens=1-3 delims=-" %%a in ("%compiler%") do (@set "compiler_threading=%%c") + - if "%platform%"=="x64" (set arch=x86_64) + - if "%platform%"=="x86" (set arch=i686) + # Download the specific version of MinGW + - if "%compiler_name%"=="gcc" (@set "mingw_output_folder=C:\mingw-builds") + - if "%compiler_name%"=="gcc" ( + @for /f %%a in ( + 'call mingw.cmd + /version "%compiler_version%" + /arch "%arch%" + /threading "%compiler_threading%" + "%mingw_output_folder%"' + ) do @set "compiler_path=%%a" + ) + - if "%compiler_name%"=="gcc" (@set "mingw_log_folder=%mingw_output_folder%\logs") + - if exist "%mingw_log_folder%" @for /f %%f in ('dir /b /oD /tc "%mingw_log_folder%"') do @set "mingw_log_file=%mingw_log_folder%\%%f" + - if exist "%mingw_log_file%" powershell Push-AppveyorArtifact "%mingw_log_file%" -FileName mingw-download.log + # Get OpenSSL + - if not exist C:\ssl\ (md C:\ssl\) + - if not exist C:\ssl\Win32OpenSSL.exe (curl http://slproweb.com/download/Win32OpenSSL-1_0_2d.exe -o C:\ssl\Win32OpenSSL.exe) + - if not exist C:\ssl\Win64OpenSSL.exe (curl http://slproweb.com/download/Win64OpenSSL-1_0_2d.exe -o C:\ssl\Win64OpenSSL.exe) + - dir C:\ssl + - C:\ssl\Win32OpenSSL.exe /SILENT /LOG="C:\ssl\install32.log" + - C:\ssl\Win64OpenSSL.exe /SILENT /LOG="C:\ssl\install64.log" + + +before_build: + # Set up mingw commands + - if "%compiler_name%"=="gcc" (set "generator=MinGW Makefiles") + - if "%compiler_name%"=="gcc" (set "build=mingw32-make -j4") + - if "%compiler_name%"=="gcc" (set "test=mingw32-make CTEST_OUTPUT_ON_FAILURE=1 test") + # MSVC specific commands + # Note: The minimum version officially supported for CivetWeb is VS2010. Older ones might work or not. + - if "%compiler_version%"=="14" (set "vs_version=8" & set "vs_year=2005") + - if "%compiler_version%"=="15" (set "vs_version=9" & set "vs_year=2008") + - if "%compiler_version%"=="16" (set "vs_version=10" & set "vs_year=2010") + - if "%compiler_version%"=="17" (set "vs_version=11" & set "vs_year=2012") + - if "%compiler_version%"=="18" (set "vs_version=12" & set "vs_year=2013") + - if "%compiler_version%"=="19" (set "vs_version=14" & set "vs_year=2015") + - if "%compiler_name%"=="msvc" (set "generator=Visual Studio %vs_version% %vs_year%") + - if "%compiler_name%"=="msvc" ( + if "%platform%"=="x64" ( + set "generator=%generator% Win64" + ) + ) + - if %compiler_version% gtr 9 (set platform=%platform:x86=Win32%) + - if "%compiler_name%"=="msvc" (set "msbuild_opts=/clp:OnlyErrors;OnlyWarnings /nologo /m /v:m") + - if "%compiler_name%"=="msvc" (set "build=msbuild %msbuild_opts% /p:Configuration=%configuration% /p:Platform=%platform% civetweb.sln") + - if "%compiler_name%"=="msvc" (set "test=msbuild %msbuild_opts% RUN_TESTS.vcxproj") + # Add the compiler path if needed + - if not "%compiler_path%"=="" (set "PATH=%PATH%;%compiler_path%") + # git bash conflicts with MinGW makefiles + - if "%generator%"=="MinGW Makefiles" (set "PATH=%PATH:C:\Program Files (x86)\Git\bin=%") + # Useful locations + - set "source_path=%cd%" + - set "output_path=%source_path%\output" + - set "build_path=%output_path%\build" + - set "install_path=%output_path%\install" + - set "third_party_dir=C:\third-party" + # Check some settings of the build server + - ver + - cd + - dir + - ipconfig /all + # Generate the build scripts with CMake + - mkdir "%build_path%" + - cd "%build_path%" + - cmake --version + - appveyor AddMessage -Category Information "Generating '%generator%'" + - cmake + -G "%generator%" + -DCMAKE_BUILD_TYPE=%build_type% + -DBUILD_SHARED_LIBS=%build_shared% + -DCIVETWEB_SERVE_NO_FILES=%no_files% + "-DCIVETWEB_THIRD_PARTY_DIR=%third_party_dir:\=\\%" + -DCIVETWEB_ENABLE_THIRD_PARTY_OUTPUT=YES + -DCIVETWEB_ENABLE_SSL=%enable_ssl% + -DCIVETWEB_DISABLE_CGI=%no_cgi% + -DCIVETWEB_ENABLE_SSL_DYNAMIC_LOADING=%enable_ssl_dynamic_loading% + -DCIVETWEB_ENABLE_WEBSOCKETS=%enable_websockets% + -DCIVETWEB_ENABLE_CXX=%enable_cxx% + -DCIVETWEB_ENABLE_LUA=%enable_lua% + -DCIVETWEB_ENABLE_LUA_SHARED=%enable_lua_shared% + -DCIVETWEB_C_STANDARD=%c_standard% + -DCIVETWEB_CXX_STANDARD=%cxx_standard% + "%source_path%" + - powershell Push-AppveyorArtifact CMakeCache.txt + - cd "%source_path%" + +build_script: + - cd + - cd "%build_path%" + - appveyor AddMessage -Category Information "Build command '%build%'" + - cmd /c "%build%" + - cd "%source_path%" + +test_script: + - cd "%build_path%" + - appveyor AddMessage -Category Information "Test command '%build%'" + - cmd /c "%test%" + - cd "%source_path%" + +after_test: + - cmake "-DCMAKE_INSTALL_PREFIX=%install_path%" -P "%build_path%/cmake_install.cmake" + +matrix: + fast_finish: true + +cache: + - C:\mingw-builds -> mingw.cmd + - C:\third-party -> **\CMakeLists.txt + - C:\ssl