# # # # sol3 # The MIT License (MIT) # # Copyright (c) 2013-2019 Rapptz, ThePhD, and contributors # # Permission is hereby granted, free of charge, to any person obtaining a copy of # this software and associated documentation files (the "Software"), to deal in # the Software without restriction, including without limitation the rights to # use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of # the Software, and to permit persons to whom the Software is furnished to do so, # subject to the following conditions: # # The above copyright notice and this permission notice shall be included in all # copies or substantial portions of the Software. # # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS # FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR # COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER # IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN # CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. version: 2.20.0-{build} max_jobs: 4 pull_requests: do_not_increment_build_number: true # Ordering is important! # specifying VS 2015 first makes all the 2015 jobs run first # we need this so the MinGW jobs can run first # In general, the matrix seems to order by appearance of first-order # dimensions (Image, Platform, Configuration) and then # the order of whatever elements are in the matrix image: - Visual Studio 2015 - Visual Studio 2017 # Run x64 first, x86 second platform: - x64 - x86 environment: matrix: # apparently, I can't quite make LLVM work right now... - SOL2_LUA_VERSION: 5.3.5 MINGW_VERSION: 7.3.0 - SOL2_LUA_VERSION: 5.3.5 MINGW_VERSION: 8.1.0 - SOL2_LUA_VERSION: luajit-2.0.5 MINGW_VERSION: 8.1.0 - SOL2_LUA_VERSION: luajit-2.1.0-beta3 MINGW_VERSION: 8.1.0 - SOL2_LUA_VERSION: 5.3.5 SOL2_NO_2015: 1 - SOL2_LUA_VERSION: 5.2.4 SOL2_NO_2015: 1 - SOL2_LUA_VERSION: 5.1.5 SOL2_NO_2015: 1 - SOL2_LUA_VERSION: luajit-2.0.5 SOL2_NO_2015: 1 SOL2_BUILD_NINJA: 1 - SOL2_LUA_VERSION: luajit-2.1.0-beta3 SOL2_NO_2015: 1 SOL2_BUILD_NINJA: 1 matrix: #fast_finish: true allow_failures: # 32-bit builds are temperamental with exceptions - platform: x86 exclude: # Necessary: MinGW doesn't exist on VS 2017 images - image: Visual Studio 2017 MINGW_VERSION: 7.3.0 - image: Visual Studio 2017 MINGW_VERSION: 8.1.0 # There are no recent i686 compilers on the VS2015/2017 images - MINGW_VERSION: 7.3.0 platform: x86 - MINGW_VERSION: 8.1.0 platform: x86 # Get rid of Visual Studio 2015 builds (unsupported) - image: Visual Studio 2015 SOL2_NO_2015: 1 - platform: x86 SOL2_LUA_VERSION: 5.2.4 - platform: x86 SOL2_LUA_VERSION: 5.1.5 # Get rid of x86 builds for non-latest (no reason to redo that work) - platform: x86 SOL2_LUA_VERSION: 5.3.5 - platform: x86 SOL2_LUA_VERSION: 5.2.4 - platform: x86 SOL2_LUA_VERSION: 5.1.5 init: # # Ninja # make sure we have Ninja - set top_level=%cd% - cd .. - md tools - cd tools - set ninja_path=%cd%\ninja - set NINJA_URL="https://github.com/ninja-build/ninja/releases/download/v1.8.2/ninja-win.zip" - appveyor DownloadFile %NINJA_URL% -FileName ninja.zip - 7z x ninja.zip -o%cd%\ninja - cd "%top_level%" # # PATH # manipulations to manupulations need to be done here - set python_path=C:\Python36 - set mingw_path= - set llvm_path= - if "%MINGW_VERSION%"=="7.3.0" (if "%PLATFORM%"=="x64" (set mingw_path=C:\mingw-w64\x86_64-7.3.0-posix-seh-rt_v5-rev0\mingw64\bin) else ( set mingw_path=C:\mingw-w64\i686-7.3.0-posix-seh-rt_v5-rev0\mingw32\bin)) - if "%MINGW_VERSION%"=="8.1.0" (if "%PLATFORM%"=="x64" (set mingw_path=C:\mingw-w64\x86_64-8.1.0-posix-seh-rt_v6-rev0\mingw64\bin) else ( set mingw_path=C:\mingw-w64\i686-8.1.0-posix-seh-rt_v6-rev0\mingw32\bin)) - if "%PLATFORM%"=="x64" (set python_path=C:\Python36-x64) - set PATH=%python_path%;%PATH% - set PATH=%mingw_path%;%PATH% - set PATH=%llvm_path%;%PATH% - set PATH=%ninja_path%;%PATH% - echo PATH=%PATH% # # Generators and CMake arguments # configure the generator appropriately - set CMAKE_GENERATOR=Ninja - set arch= x86 - set parallelism= - if "%PLATFORM%"=="x64" (set arch= Win64) - if "%APPVEYOR_BUILD_WORKER_IMAGE%"=="Visual Studio 2017" (set CMAKE_GENERATOR=Visual Studio 15 2017%arch%&&set parallelism=/maxcpucount) - if "%APPVEYOR_BUILD_WORKER_IMAGE%"=="Visual Studio 2015" (set CMAKE_GENERATOR=Visual Studio 14 2015%arch%&&set parallelism=/maxcpucount) - if "%SOL2_BUILD_NINJA%"=="1"(set CMAKE_GENERATOR=Ninja) - set lua_build_type=ON - set build_compiler=-DCMAKE_CXX_COMPILER=cl.exe -DCMAKE_C_COMPILER=cl.exe - set vcvars_script="C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" amd64 - if "%PLATFORM%"=="x86" (vcvars_script="C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" x86) - if "%MINGW_VERSION%"=="7.3.0" (set CMAKE_GENERATOR=Ninja&&set build_compiler=-DCMAKE_CXX_COMPILER=g++.exe -DCMAKE_C_COMPILER=gcc.exe) - if "%MINGW_VERSION%"=="8.1.0" (set CMAKE_GENERATOR=Ninja&&set build_compiler=-DCMAKE_CXX_COMPILER=g++.exe -DCMAKE_C_COMPILER=gcc.exe) # # Last printouts # print out generator information - echo Appveyor Image is %APPVEYOR_BUILD_WORKER_IMAGE% (vcvars script is %vcvars_script%) - echo cmake generator is %CMAKE_GENERATOR% using build_compiler=%build_compiler% with special flags logger=%logger% parallelism=%parallelism% # print out useful tool information - ninja --version - cmake --version before_build: - md build-sol2 - cd build-sol2 - if "%MINGW_VERSION%"=="" ( %vcvars_script% ) - cmake .. -G "%CMAKE_GENERATOR%" %build_compiler% -DCMAKE_BUILD_TYPE=Release "-DSOL2_LUA_VERSION=%SOL2_LUA_VERSION%" -DSOL2_PLATFORM=%PLATFORM% -DSOL2_CI=ON -DSOL2_BUILD_LUA=ON -DBUILD_LUA_AS_DLL=%lua_build_type% -DSOL2_TESTS=ON -DSOL2_EXAMPLES=ON -DSOL2_TESTS_EXAMPLES=ON build_script: - cmake --build . --config Release -- %parallelism% test_script: - ctest -C Release --output-on-failure notifications: - provider: Webhook url: http://skyhook.glitch.me/api/webhooks/427786348108185611/y2nTmghqltv1SKX2DclEMEKyZtRcwKFlwfZpB_mL1A0nZTVS5MSfumqDKq30-gvWgeL5/appveyor method: POST on_build_success: true on_build_failure: true on_build_status_changed: true