GlPortal / RadixEngine

A free and open game engine.
zlib License
148 stars 58 forks source link

appveyor integration #92

Open hhirsch opened 7 years ago

hhirsch commented 7 years ago

https://github.com/mmatyas/supermariowar/blob/master/.appveyor.yml

ghost commented 7 years ago

There is also option to use msys2 which i demonstrated in my fork (poor me i worked on master) https://github.com/SGOrava/RadixEngine Results of this conquest can be found here: https://ci.appveyor.com/project/SGOrava/radixengine/build/Radix%20master-28

For build which will use visual studio it might be good to use/create prebuild binaries and use them instead of building everything, it will take extremely long time to compile which could be used only to have midnight builds.

hhirsch commented 7 years ago

@SGOrava Very nice. Do you want to create a pull request or should I copy the file to a new branch?

ghost commented 7 years ago

It is little more than just CI config. Some work needs to be done with threads, i never tested if that works, i only made it able to compile, will test later.

Also i might try to force it to build new vs project / solution / environment.

hhirsch commented 7 years ago
# Notes:
#   - Minimal appveyor.yml file is an empty file. All sections are optional.
#   - Indent each level of configuration with 2 spaces. Do not use tabs!
#   - All section names are case-sensitive.
#   - Section names should be unique on each level.
# from example:
# https://gitlab.com/RetroShare/RetroShare/blob/master/appveyor.yml

#---------------------------------#
#      general configuration      #
#---------------------------------#

# version format
version: Radix {branch}-{build}

#---------------------------------#
#    environment configuration    #
#---------------------------------#

# system image to use
image: Visual Studio 2017

# scripts that are called at very beginning, before repo cloning
init:
  - git config --global core.autocrlf input

# clone directory
clone_folder: c:\projects\Radix

# set clone depth
# clone entire repository history if not defined
clone_depth: 1

environment:
  global:
    MSYS2_ARCH: i686
    TARGET: i686_32-pc-msys

# scripts that run after cloning repository
#install:
#  # by default, all script lines are interpreted as batch
#  - echo This is batch
#  # to run script as a PowerShell command prepend it with ps:
#  - ps: Write-Host 'This is PowerShell'
#  # batch commands start from cmd:
#  - cmd: echo This is batch again
#  - cmd: set MY_VAR=12345
install:
  # Configuring MSys2
  - set PATH=C:\msys64\usr\bin;%PATH%
  - set PATH=C:\msys64\mingw32\bin;%PATH%

  # Install needed libreries
  - C:\msys64\usr\bin\bash -lc "pacman --noconfirm -Sy --force mingw-w64-i686-{cmake,make,gcc,gcc-ada,gcc-fortran,gcc-libgfortran,gcc-objc,pkg-config,assimp,libepoxy,SDL2,SDL2_mixer,bullet,tinyxml2,freeimage}"

  # Hack for new MSys2
  - copy C:\msys64\mingw32\i686-w64-mingw32\bin\ar.exe C:\msys64\mingw32\bin\i686-w64-mingw32-ar.exe
  - copy C:\msys64\mingw32\i686-w64-mingw32\bin\ranlib.exe C:\msys64\mingw32\bin\i686-w64-mingw32-ranlib.exe
  - copy C:\msys64\mingw32\bin\windres.exe C:\msys64\mingw32\bin\i686-w64-mingw32-windres.exe
  - copy C:\msys64\mingw64\x86_64-w64-mingw32\bin\ar.exe C:\msys64\mingw64\bin\x86_64-w64-mingw32-ar.exe
  - copy C:\msys64\mingw64\x86_64-w64-mingw32\bin\ranlib.exe C:\msys64\mingw64\bin\x86_64-w64-mingw32-ranlib.exe
  - copy C:\msys64\mingw64\bin\windres.exe C:\msys64\mingw64\bin\x86_64-w64-mingw32-windres.exe

#---------------------------------#
#       build configuration       #
#---------------------------------#

# build platform, i.e. x86, x64, Any CPU. This setting is optional.
platform: x86

# build Configuration, i.e. Debug, Release, etc.
configuration: Release

# scripts to run before build
before_build:
  - cd C:\projects\Radix
  - git submodule update --init --recursive

# to run your custom scripts instead of automatic MSBuild
build_script:
  - cd C:\projects\Radix
  - set
  - cmake -DCMAKE_CXX_FLAGS="--include stdint.h" -G "MSYS Makefiles"
  - make -j2