| version: 3.0.0-{build} |
| |
| # Only download the 50 first commits like travis to speedup clone |
| clone_depth: 50 |
| |
| os: Visual Studio 2015 |
| |
| init: |
| # Disable popups as they hang the build as there is nobody to click on the OK button... |
| # Hanging the build is a lot less user friendly than reporting a build failure. |
| # |
| # Disable of system hard error popup |
| # See: https://msdn.microsoft.com/en-us/library/bb513638%28VS.85%29.aspx |
| - reg add "HKLM\SYSTEM\CurrentControlSet\Control\Windows" /f /v ErrorMode /d 2 |
| # Disable the following popup on program failure: |
| # | ** <program name> has stopped working ** | |
| # | Windows can check online for a solution to the problem| |
| # | - Check online for a solution and close the program | |
| # | - Close the program | |
| # See: https://msdn.microsoft.com/en-us/library/bb513638%28VS.85%29.aspx |
| - reg add "HKLM\Software\Microsoft\Windows\Windows Error Reporting" /f /v DontShowUI /d 1 |
| |
| # Instruct cmake were to find external dependencies |
| - set PREFIX_PATH=%APPVEYOR_BUILD_FOLDER%\asio-1.10.6;%APPVEYOR_BUILD_FOLDER%\catch |
| # Tell CMake where to install |
| - set INSTALL=%HOMEPATH%\install |
| # legacy functional tests are bash specific |
| - set CTEST_PARAMS=--output-on-failure |
| |
| install: |
| - cinst cmake.portable wget 7zip.commandline |
| # Install Windows Installer XML (WiX) to create installer with cpack |
| - cinst wixtoolset |
| |
| # Download and install external dependancy if they are not in the cache |
| - if not exist libxml2-x86_64 ( |
| wget --no-check-certificate https://01.org/sites/default/files/libxml2-x86_64-3eaedba1b64180668fdab7ad2eba549586017bf3.zip && |
| 7z x libxml2-x86_64-3eaedba1b64180668fdab7ad2eba549586017bf3.zip) |
| - if not exist libxml2-x86_64-debug ( |
| wget --no-check-certificate https://01.org/sites/default/files/libxml2-x86_64-debug-3eaedba1b64180668fdab7ad2eba549586017bf3.zip && |
| 7z x libxml2-x86_64-debug-3eaedba1b64180668fdab7ad2eba549586017bf3.zip) |
| - if not exist asio-1.10.6 ( |
| wget --no-check-certificate https://01.org/sites/default/files/asio-1.10.6.tar.gz && |
| 7z x asio-1.10.6.tar.gz && |
| 7z x -i"!asio*/include" asio-1.10.6.tar) |
| # This version of catch is known to work. |
| - if not exist catch ( |
| wget --no-check-certificate https://raw.github.com/philsquared/Catch/v1.2.1/single_include/catch.hpp --directory-prefix catch ) |
| - set DEBUG_LIBXML2_PATH=%APPVEYOR_BUILD_FOLDER%\libxml2-x86_64-debug |
| - set RELEASE_LIBXML2_PATH=%APPVEYOR_BUILD_FOLDER%\libxml2-x86_64 |
| |
| # Setup Visual studio build environement |
| - '"C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" x86_amd64' |
| |
| cache: |
| - C:\ProgramData\chocolatey\bin -> appveyor.yml |
| - C:\ProgramData\chocolatey\lib -> appveyor.yml |
| - libxml2-x86_64 -> appveyor.yml |
| - libxml2-x86_64-debug -> appveyor.yml |
| - asio-1.10.6 -> appveyor.yml |
| - catch -> appveyor.yml |
| |
| build_script: |
| - mkdir build && cd build |
| |
| - mkdir 64bits-debug && cd 64bits-debug |
| # Add debug libxml2.dll in the path so that tests can find it |
| - set TEST_PATH=%DEBUG_LIBXML2_PATH%\bin |
| - cmake -G "NMake Makefiles" -DPYTHON_BINDINGS=OFF -DCMAKE_PREFIX_PATH="%PREFIX_PATH%;%DEBUG_LIBXML2_PATH%" ..\.. |
| - cmake --build . --config debug |
| - ctest --build-config debug %CTEST_PARAMS% |
| - cd .. |
| |
| - mkdir 64bits-release & cd 64bits-release |
| # Add debug libxml2.dll in the path so that tests can find it |
| - set TEST_PATH=%RELEASE_LIBXML2_PATH%\bin |
| - cmake -G "Visual Studio 14 2015 Win64" -DPYTHON_BINDINGS=OFF -DCMAKE_PREFIX_PATH="%PREFIX_PATH%;%RELEASE_LIBXML2_PATH%" -DCMAKE_INSTALL_PREFIX=%INSTALL% ..\.. |
| # Build, test and install |
| - cmake --build . --config release |
| - ctest --build-config release %CTEST_PARAMS% |
| - cmake --build . --config release --target install |
| - cpack --verbose -G WIX |
| - cd .. |
| |
| # build and test the skeleton plugin against the previously-installed build; this serves as a smoke test of the whole stack |
| - mkdir skeleton && cd skeleton |
| # %INSTALL%\lib is where the skeleton plugin is installed (see comment below) |
| # %INSTALL%\bin is where parameter.dll is installed |
| # Also add the path where the release libxml2.dll has been extracted |
| - set TEST_PATH=%RELEASE_LIBXML2_PATH%\bin;%INSTALL%\lib;%INSTALL%\bin |
| - cmake -G "Visual Studio 14 2015 Win64" -DCMAKE_INSTALL_PREFIX=%INSTALL% -DCMAKE_PREFIX_PATH=%INSTALL% %APPVEYOR_BUILD_FOLDER%\skeleton-subsystem |
| # Unfortunately, the skeleton test currently doesn't work on |
| # multi-configuration build systems (Visual Studio is one of those) without |
| # installing the plugin |
| - cmake --build . --config release --target install |
| - ctest --build-config release %CTEST_PARAMS% |
| - cd .. |