# NOTE: This file is not part of the official higan source, it's been added
# to help build WIP binaries with minimal fuss.

image: debian:stable

higan-linux-x86_64-binaries:
  script:
    - apt-get update && apt-get -y install build-essential libgtk2.0-dev libpulse-dev mesa-common-dev libgtksourceview2.0-dev libcairo2-dev libsdl2-dev libxv-dev libao-dev libopenal-dev libudev-dev mkdocs
    - make -C genius
    - make -C higan target=higan
    - LC_ALL=C.UTF-8 mkdocs build
    - mkdir higan-nightly
    - cp -a genius/out/genius higan-nightly/genius
    - cp -a higan/out/higan higan-nightly/higan
    - cp -a higan/systems/ higan-nightly/
    - cp -a shaders higan-nightly/
    - cp -a docs_build higan-nightly/docs
    - cp -a GPLv3.txt higan-nightly/
  artifacts:
    paths:
      - higan-nightly/*

#bsnes-linux-x86_64-binaries:
#  script:
#    - apt-get update && apt-get -y install build-essential libgtk2.0-dev libpulse-dev mesa-common-dev libgtksourceview2.0-dev libcairo2-dev libsdl2-dev libxv-dev libao-dev libopenal-dev libudev-dev
#    - make -C higan target=bsnes
#    - mkdir bsnes-nightly
#    - cp -a higan/out/bsnes bsnes-nightly/bsnes
#    - cp -a higan/systems/ bsnes-nightly/
#    - cp -a shaders bsnes-nightly/
#    - cp -a GPLv3.txt bsnes-nightly/
#  artifacts:
#    paths:
#      - bsnes-nightly/*

higan-windows-x86_64-binaries:
  # This is a normal Windows cross-compile process, except that
  # nall::chrono tries to use clock_gettime on Windows even
  # though it's a POSIX function, and for some weird reason mingw has
  # clock_gettime() in the pthread library.
  script:
    - apt-get update && apt-get -y install build-essential mingw-w64 mkdocs
    - sed -i -e 's/-lole32/& -static -lpthread/' nall/GNUmakefile
    # genius does not currently build on Windows due to lack of a combo edit control in hiro
    #- make -C genius platform=windows compiler="x86_64-w64-mingw32-g++" windres="x86_64-w64-mingw32-windres"
    - make -C icarus platform=windows compiler="x86_64-w64-mingw32-g++" windres="x86_64-w64-mingw32-windres"
    - make -C higan target=higan platform=windows compiler="x86_64-w64-mingw32-g++" windres="x86_64-w64-mingw32-windres"
    - LC_ALL=C.UTF-8 mkdocs build
    - mkdir higan-nightly
    #- cp -a genius/out/genius higan-nightly/genius.exe
    - cp -a icarus/out/icarus higan-nightly/icarus.exe
    - cp -a icarus/database higan-nightly/
    - cp -a icarus/firmware higan-nightly/
    - cp -a higan/out/higan higan-nightly/higan.exe
    - cp -a higan/systems/ higan-nightly/
    - cp -a shaders higan-nightly/
    - cp -a docs_build higan-nightly/docs
    - cp -a GPLv3.txt higan-nightly/
  artifacts:
    paths:
      - higan-nightly/*

#bsnes-windows-x86_64-binaries:
#  # This is a normal Windows cross-compile process, except that
#  # nall::chrono tries to use clock_gettime on Windows even
#  # though it's a POSIX function, and for some weird reason mingw has
#  # clock_gettime() in the pthread library.
#  script:
#    - apt-get update && apt-get -y install build-essential mingw-w64
#    - sed -i -e 's/-lole32/& -static -lpthread/' nall/GNUmakefile
#    # genius does not currently build on Windows due to lack of a combo edit control in hiro
#    #- make -C genius platform=windows compiler="x86_64-w64-mingw32-g++" windres="x86_64-w64-mingw32-windres"
#    - make -C higan target=bsnes platform=windows compiler="x86_64-w64-mingw32-g++" windres="x86_64-w64-mingw32-windres"
#    - mkdir bsnes-nightly
#    - cp -a higan/out/bsnes bsnes-nightly/bsnes.exe
#    - cp -a higan/systems/ bsnes-nightly/
#    - cp -a shaders bsnes-nightly/
#    - cp -a GPLv3.txt bsnes-nightly/
#  artifacts:
#    paths:
#      - bsnes-nightly/*

libretro-test:
  script:
    - apt-get update && apt-get -y install build-essential git
    # git refuses to even attempt a merge if you haven't told it who you are,
    # even if you use --no-commit. *sigh*
    - EMAIL=fake-email@example.com git merge origin/libretro
    - make -C higan binary=library target=libretro
    - mkdir libretro-nightly
    - cp -a higan/out/higan_sfc_libretro.so libretro-nightly/
    - cp -a GPLv3.txt libretro-nightly/
  artifacts:
    paths:
      - libretro-nightly/*
