stages:
  - prebuild
  - build
  - stats
  - ok
  - fail

# with :; prevent from run it on windows
before_script:
  - ":; uname -a"
  - ":; cat /etc/os-release"
  - ":; pwd"
  - ":; cat /proc/sys/kernel/core_pattern"
  - ":; mkdir logs || true"
  - ":; ${UPDATEREPOS}"
  - ":; ${DOCKERRETRY} ${PMUPDATE} >logs/apt.log"
  - ":; ${DOCKERRETRY} ${PMINSTALL} ${PACKAGES} >>logs/apt.log"

image: debian:unstable
variables:
  GET_SOURCES_ATTEMPTS: "5"
  ARTIFACT_DOWNLOAD_ATTEMPTS: "5"
  UPDATEREPOS: "tools/ci/scripts/updaterepos.sh"
  PMUPDATE: "apt-get update"
  PMINSTALL: "apt-get install -y -qq"
  DOCKERRETRY: "./tools/ci/scripts/dockerretry.sh"

.job-push: &job-push
  artifacts:
    paths:
    - logs
    when: always
    expire_in: 3 week
  except:
    - triggers
  dependencies: []

.job-always: &job-always
  artifacts:
    paths:
    - logs
    when: always
    expire_in: 3 week
  dependencies: []

.job-deheader_shared: &job-deheader_shared
  variables:
    INCLUDES: "-I/usr/include/SDL -I/usr/include/libxml2"
    LOGFILE: logs/deheader.log
    CXX: g++-5
    PACKAGES: python wget 
              gcc-5 g++-5 
              libxml2-dev libcurl4-gnutls-dev libpng-dev 
              libsdl-gfx1.2-dev libsdl-image1.2-dev libsdl-mixer1.2-dev libsdl-net1.2-dev libsdl-ttf2.0-dev

.job-deheader_sdl2_shared: &job-deheader_sdl2_shared
  variables:
    INCLUDES: "-I/usr/include/SDL2 -I/usr/include/libxml2"
    LOGFILE: logs/deheader.log
    CXX: g++-5
    PACKAGES: python wget 
              gcc-5 g++-5 
              libxml2-dev libcurl4-gnutls-dev libpng-dev 
              libsdl2-gfx-dev libsdl2-image-dev libsdl2-mixer-dev libsdl2-net-dev libsdl2-ttf-dev

# pre build

gcc-5_c++11_i386:
  stage: prebuild
  script:
  - ./tools/ci/jobs/gcc5_c++11.sh
  - ./tools/ci/scripts/runtests.sh
  image: vicamo/debian:sid-i386
  <<: *job-push
  variables:
    PACKAGES: gcc-5 g++-5 
              make autoconf automake autopoint gettext 
              libxml2-dev libcurl4-gnutls-dev libpng-dev 
              libsdl-gfx1.2-dev libsdl-image1.2-dev libsdl-mixer1.2-dev libsdl-net1.2-dev libsdl-ttf2.0-dev 
              gdb valgrind netcat-openbsd procps
  tags:
    - docker

gcc-6-i386:
  stage: prebuild
  script:
  - ./tools/ci/jobs/gcc6.sh
  - ./tools/ci/scripts/runtests.sh
  image: vicamo/debian:sid-i386
  <<: *job-push
  variables:
    PACKAGES: gcc-6 g++-6 
              make autoconf automake autopoint gettext 
              libxml2-dev libcurl4-gnutls-dev libpng-dev 
              libsdl-gfx1.2-dev libsdl-image1.2-dev libsdl-mixer1.2-dev libsdl-net1.2-dev libsdl-ttf2.0-dev
              gdb valgrind netcat-openbsd procps
  tags:
    - docker

gcc-7-i386:
  stage: prebuild
  script:
  - ./tools/ci/jobs/gcc7.sh
  - ./tools/ci/scripts/runtests.sh
  image: vicamo/debian:sid-i386
  <<: *job-push
  variables:
    PACKAGES: gcc-7 g++-7 
              make autoconf automake autopoint gettext 
              libxml2-dev libcurl4-gnutls-dev libpng-dev 
              libsdl-gfx1.2-dev libsdl-image1.2-dev libsdl-mixer1.2-dev libsdl-net1.2-dev libsdl-ttf2.0-dev
              gdb valgrind netcat-openbsd procps
  tags:
    - docker

clang-3.9:
  stage: prebuild
  script:
  - ./tools/ci/jobs/clang39.sh
  - ./tools/ci/scripts/runtests.sh
  <<: *job-push
  variables:
    PACKAGES: clang-3.9 libc++-dev libc++abi-dev 
              make autoconf automake autopoint gettext 
              libxml2-dev libcurl4-gnutls-dev libpng-dev 
              libsdl-gfx1.2-dev libsdl-image1.2-dev libsdl-mixer1.2-dev libsdl-net1.2-dev libsdl-ttf2.0-dev
              gdb valgrind netcat-openbsd procps

gcc-6:
  stage: prebuild
  script:
  - ./tools/ci/jobs/gcc6.sh
  - ./tools/ci/scripts/runtests.sh
  <<: *job-push
  variables:
    PACKAGES: gcc-6 g++-6 
              make autoconf automake autopoint gettext 
              libxml2-dev libcurl4-gnutls-dev libpng-dev 
              libsdl-gfx1.2-dev libsdl-image1.2-dev libsdl-mixer1.2-dev libsdl-net1.2-dev libsdl-ttf2.0-dev
              gdb valgrind netcat-openbsd procps

gcc-7:
  stage: prebuild
  script:
  - ./tools/ci/jobs/gcc7.sh
  - ./tools/ci/scripts/runtests.sh
  <<: *job-push
  variables:
    PACKAGES: gcc-7 g++-7 
              make autoconf automake autopoint gettext 
              libxml2-dev libcurl4-gnutls-dev libpng-dev 
              libsdl-gfx1.2-dev libsdl-image1.2-dev libsdl-mixer1.2-dev libsdl-net1.2-dev libsdl-ttf2.0-dev
              gdb valgrind netcat-openbsd procps

gcc-6_default:
  stage: prebuild
  script:
  - ./tools/ci/jobs/any_compiler.sh --enable-werror
  - ./tools/ci/scripts/runtests.sh
  <<: *job-push
  variables:
    LOGFILE: gcc6.log
    CC: gcc-6
    CXX: g++-6
    CXXFLAGS: "-Wall -Wextra"
    PACKAGES: gcc-6 g++-6 
              make autoconf automake autopoint gettext 
              libxml2-dev libcurl4-gnutls-dev libpng-dev 
              libsdl-gfx1.2-dev libsdl-image1.2-dev libsdl-mixer1.2-dev libsdl-net1.2-dev libsdl-ttf2.0-dev
              gdb valgrind netcat-openbsd procps

gcc-7_default:
  stage: prebuild
  script:
  - ./tools/ci/jobs/any_compiler.sh --enable-werror
  - ./tools/ci/scripts/runtests.sh
  <<: *job-push
  variables:
    LOGFILE: gcc6.log
    CC: gcc-7
    CXX: g++-7
    CXXFLAGS: "-Wall -Wextra"
    PACKAGES: gcc-7 g++-7 
              make autoconf automake autopoint gettext 
              libxml2-dev libcurl4-gnutls-dev libpng-dev 
              libsdl-gfx1.2-dev libsdl-image1.2-dev libsdl-mixer1.2-dev libsdl-net1.2-dev libsdl-ttf2.0-dev
              gdb valgrind netcat-openbsd procps

gcc-4.4:
  stage: prebuild
  script:
  - ./tools/ci/jobs/gcc44.sh
  - ./tools/ci/scripts/runtests.sh
  image: debian:wheezy
  <<: *job-push
  variables:
    PACKAGES: gcc-4.4 g++-4.4 
              make autoconf automake autopoint gettext 
              libxml2-dev libcurl4-gnutls-dev libpng-dev 
              libsdl-gfx1.2-dev libsdl-image1.2-dev libsdl-mixer1.2-dev libsdl-net1.2-dev libsdl-ttf2.0-dev
              gdb valgrind netcat-openbsd procps
  tags:
    - docker

mxe_gcc5_shared_32:
  stage: prebuild
  script:
  - ls /mxe
  - ./tools/ci/jobs/mxe_gcc5.sh
  <<: *job-push
  image: registry.gitlab.com/manaplus/mxe:gcc5_shared_32
  variables:
    PACKAGES: bash
    CROSS: i686-w64-mingw32.shared
  tags:
    - docker

mxe_gcc5_shared_64:
  stage: prebuild
  script:
  - ls /mxe
  - ./tools/ci/jobs/mxe_gcc5.sh
  <<: *job-push
  image: registry.gitlab.com/manaplus/mxe:gcc5_shared_64
  variables:
    PACKAGES: bash
    CROSS: x86_64-w64-mingw32.shared
  tags:
    - docker

mxe_gcc5_shared_32_testsbin:
  stage: prebuild
  script:
  - ls /mxe
  - ./tools/ci/jobs/mxe_gcc5_tests.sh --without-manaplusgame --without-dyecmd
  artifacts:
    paths:
    - logs
    untracked: true
    when: always
    expire_in: 1 week
  dependencies: []
  image: registry.gitlab.com/manaplus/mxe:gcc5_shared_32
  variables:
    PACKAGES: bash
    CROSS: i686-w64-mingw32.shared
  except:
    - triggers
  tags:
    - docker

mxe_gcc5_shared_64_testsbin:
  stage: prebuild
  script:
  - ls /mxe
  - ./tools/ci/jobs/mxe_gcc5_tests.sh --without-manaplusgame --without-dyecmd
  artifacts:
    paths:
    - logs
    untracked: true
    when: always
    expire_in: 1 week
  dependencies: []
  image: registry.gitlab.com/manaplus/mxe:gcc5_shared_64
  variables:
    PACKAGES: bash
    CROSS: x86_64-w64-mingw32.shared
  except:
    - triggers
  tags:
    - docker

gcc-5_sdl2:
  stage: prebuild
  script:
  - ./tools/ci/jobs/gcc5_sdl2.sh
  - ./tools/ci/scripts/runtests.sh
  <<: *job-push
  variables:
    PACKAGES: gcc-5 g++-5 
              make autoconf automake autopoint gettext 
              libxml2-dev libcurl4-gnutls-dev libpng-dev 
              libsdl2-gfx-dev libsdl2-image-dev libsdl2-mixer-dev libsdl2-net-dev libsdl2-ttf-dev
              gdb valgrind netcat-openbsd procps

gcc-7_game_only:
  stage: prebuild
  script:
  - ./tools/ci/jobs/gcc7.sh --without-dyecmd
  - ./tools/ci/scripts/runtests.sh
  <<: *job-push
  variables:
    PACKAGES: gcc-7 g++-7 
              make autoconf automake autopoint gettext 
              libxml2-dev libcurl4-gnutls-dev libpng-dev 
              libsdl-gfx1.2-dev libsdl-image1.2-dev libsdl-mixer1.2-dev libsdl-net1.2-dev libsdl-ttf2.0-dev
              gdb valgrind netcat-openbsd procps

gcc-7_dyecmd_only:
  stage: prebuild
  script:
  - ./tools/ci/jobs/gcc7.sh --without-manaplusgame
  <<: *job-push
  variables:
    PACKAGES: gcc-7 g++-7 
              make autoconf automake autopoint gettext 
              libxml2-dev libcurl4-gnutls-dev libpng-dev 
              libsdl-gfx1.2-dev libsdl-image1.2-dev libsdl-mixer1.2-dev libsdl-net1.2-dev libsdl-ttf2.0-dev

gcc-7_unittestsbin:
  stage: prebuild
  script:
  - ./tools/ci/jobs/gcc7_silent.sh --enable-unittestsbin --without-manaplusgame --without-dyecmd
  <<: *job-push
  variables:
    PACKAGES: gcc-7 g++-7 
              make autoconf automake autopoint gettext 
              libxml2-dev libcurl4-gnutls-dev libpng-dev 
              libsdl-gfx1.2-dev libsdl-image1.2-dev libsdl-mixer1.2-dev libsdl-net1.2-dev libsdl-ttf2.0-dev

mplint_po:
  stage: prebuild
  script:
  - ./tools/ci/jobs/mplint.sh po
  <<: *job-push
  variables:
    PACKAGES: gcc g++ git 
              make autoconf automake autopoint gettext

mplint_src:
  stage: prebuild
  script:
  - ./tools/ci/jobs/mplint.sh src
  <<: *job-push
  variables:
    PACKAGES: gcc g++ git 
              make autoconf automake autopoint gettext

mplint_data:
  stage: prebuild
  script:
  - ./tools/ci/jobs/mplint.sh data
  <<: *job-push
  variables:
    PACKAGES: gcc g++ git 
              make autoconf automake autopoint gettext

cpplint:
  stage: prebuild
  script:
  - ./tools/ci/jobs/cpplint.sh
  <<: *job-push
  variables:
    PACKAGES: python wget

gcc-5_h_all:
  stage: prebuild
  script:
  - ./tools/ci/jobs/gcc5_h.sh -std=c++0x -DDEBUGBUILD -DTMWA_SUPPORT -DENABLE_NLS -DUSE_OPENGL -DENABLE_LIBXML -I/usr/include/SDL
  <<: *job-push
  variables:
    PACKAGES: gcc-5 g++-5 
              make autoconf automake autopoint gettext 
              libxml2-dev libcurl4-gnutls-dev libpng-dev 
              libsdl-gfx1.2-dev libsdl-image1.2-dev libsdl-mixer1.2-dev libsdl-net1.2-dev libsdl-ttf2.0-dev

gcc-5_h_all_i386:
  stage: prebuild
  script:
  - ./tools/ci/jobs/gcc5_h.sh -std=c++0x -DDEBUGBUILD -DTMWA_SUPPORT -DENABLE_NLS -DUSE_OPENGL -DENABLE_LIBXML -I/usr/include/SDL
  image: vicamo/debian:sid-i386
  <<: *job-push
  variables:
    PACKAGES: gcc-5 g++-5 
              make autoconf automake autopoint gettext 
              libxml2-dev libcurl4-gnutls-dev libpng-dev 
              libsdl-gfx1.2-dev libsdl-image1.2-dev libsdl-mixer1.2-dev libsdl-net1.2-dev libsdl-ttf2.0-dev
  tags:
    - docker

pngcheck:
  stage: prebuild
  script:
  - ./tools/ci/jobs/pngcheck.sh
  <<: *job-push
  variables:
    PACKAGES: pngcheck

icccheck:
  stage: prebuild
  script:
  - ./tools/ci/jobs/imagemagiccheck.sh
  <<: *job-push
  variables:
    PACKAGES: imagemagick

nsiqcppstyle:
  stage: prebuild
  script:
  - ./tools/ci/jobs/nsiqcppstyle.sh
  <<: *job-push
  variables:
    PACKAGES: "git python grep"

# tests

# disabled due memory issue. Probably out of memory of gcc issues
.gcc-6_SDL_SDL-1.2_sanitize2_test:
  stage: build
  script:
  - ./tools/ci/scripts/downloadlib.sh ${LIBNAME} ${LIBVERSION}
  - echo /usr/local/spm/bin/${LIBNAME}_${LIBVERSION}/runenv.sh ${runenvz}
  - export LD_PRELOAD=/usr/lib/x86_64-linux-gnu/libasan.so.3
  - /usr/local/spm/bin/${LIBNAME}_${LIBVERSION}/runenv.sh ${runenvx} ${runenvz} env
  - /usr/local/spm/bin/${LIBNAME}_${LIBVERSION}/runenv.sh ${runenvx} ${runenvz} ./tools/ci/jobs/gcc6_sanitize_tests.sh --enable-unittests=yes --without-manaplusgame --without-dyecmd
  - export LD_PRELOAD
  - /usr/local/spm/bin/${LIBNAME}_${LIBVERSION}/runenv.sh ${runenvx} ${runenvz} ./tools/ci/scripts/checkldd.sh src/manaplustests
  - ldd ./src/manaplustests | grep "libasan"
  <<: *job-push
  variables:
    LIBNAME: SDL
    LIBVERSION: SDL-1.2_asan
    PACKAGES: gcc-6 g++-6 
              make autoconf automake autopoint gettext pkg-config 
              libx11-dev libxext-dev libxt-dev libxv-dev x11proto-core-dev libgl1-mesa-dev libasound2-dev libglu1-mesa-dev libicu-dev 
              valgrind 
              wget unzip
    ASAN_OPTIONS: "detect_leaks=0"
    runenvz: /usr/local/spm/bin/${LIBNAME}_${LIBVERSION}/runzlib_master.sh
    runenvx: /usr/local/spm/bin/${LIBNAME}_${LIBVERSION}/runlibxml2_master.sh
  tags:
    - docker

# disabled due memory issue. Probably out of memory of gcc issues
.gcc-6_SDL_default_sanitize2_test:
  stage: build
  script:
  - ./tools/ci/scripts/downloadlib.sh ${LIBNAME} ${LIBVERSION}
  - export LD_PRELOAD=/usr/lib/x86_64-linux-gnu/libasan.so.3
  - /usr/local/spm/bin/${LIBNAME}_${LIBVERSION}/runenv.sh ${runenvx} ${runenvz} ./tools/ci/jobs/gcc6_sanitize_tests.sh --enable-unittests=yes --with-sdl2 --without-manaplusgame --without-dyecmd
  - export LD_PRELOAD
  - /usr/local/spm/bin/${LIBNAME}_${LIBVERSION}/runenv.sh ${runenvx} ${runenvz} ./tools/ci/scripts/checkldd.sh src/manaplustests
  - ldd ./src/manaplustests | grep "libasan"
  <<: *job-push
  variables:
    LIBNAME: SDL
    LIBVERSION: default_asan
    PACKAGES: gcc-6 g++-6 
              make autoconf automake autopoint gettext pkg-config 
              libx11-dev libxext-dev libxt-dev libxv-dev x11proto-core-dev libgl1-mesa-dev libasound2-dev libicu-dev 
              valgrind 
              wget unzip
    ASAN_OPTIONS: "detect_leaks=0"
    runenvz: /usr/local/spm/bin/${LIBNAME}_${LIBVERSION}/runzlib_master.sh
    runenvx: /usr/local/spm/bin/${LIBNAME}_${LIBVERSION}/runlibxml2_master.sh
  tags:
    - docker

gcc-5_sanitize_tests:
  stage: build
  script:
  - ./tools/ci/jobs/gcc5_sanitize_tests.sh
  - ldd ./src/manaplustests | grep "libasan"
  <<: *job-push
  variables:
    PACKAGES: gcc-5 g++-5 
              make autoconf automake autopoint gettext 
              libxml2-dev libcurl4-gnutls-dev libpng-dev 
              libsdl-gfx1.2-dev libsdl-image1.2-dev libsdl-mixer1.2-dev libsdl-net1.2-dev libsdl-ttf2.0-dev 
              valgrind
  tags:
    - docker

gcc-5_sanitize_tests_i386:
  stage: build
  script:
  - ./tools/ci/jobs/gcc5_sanitize_tests.sh --without-dyecmd --without-manaplusgame
  - ldd ./src/manaplustests | grep "libasan"
  image: vicamo/debian:sid-i386
  <<: *job-push
  variables:
    PACKAGES: gcc-5 g++-5 
              make autoconf automake autopoint gettext 
              libxml2-dev libcurl4-gnutls-dev libpng-dev 
              libsdl-gfx1.2-dev libsdl-image1.2-dev libsdl-mixer1.2-dev libsdl-net1.2-dev libsdl-ttf2.0-dev 
              valgrind
  tags:
    - docker

gcc-6_sanitize_doctest_tests:
  stage: build
  script:
  - ./tools/ci/jobs/gcc6_sanitize_tests.sh --enable-unittests=doctest --without-dyecmd --without-manaplusgame
  - ldd ./src/manaplustests | grep "libasan"
  <<: *job-push
  variables:
    PACKAGES: gcc-6 g++-6 
              make autoconf automake autopoint gettext 
              libxml2-dev libcurl4-gnutls-dev libpng-dev 
              libsdl-gfx1.2-dev libsdl-image1.2-dev libsdl-mixer1.2-dev libsdl-net1.2-dev libsdl-ttf2.0-dev 
              valgrind
  tags:
    - docker

gcc-6_sanitize_doctest_tests_i386:
  stage: build
  script:
  - ./tools/ci/jobs/gcc6_sanitize_tests.sh --enable-unittests=doctest --without-dyecmd --without-manaplusgame
  - ldd ./src/manaplustests | grep "libasan"
  image: vicamo/debian:sid-i386
  <<: *job-push
  variables:
    PACKAGES: gcc-6 g++-6 
              make autoconf automake autopoint gettext 
              libxml2-dev libcurl4-gnutls-dev libpng-dev 
              libsdl-gfx1.2-dev libsdl-image1.2-dev libsdl-mixer1.2-dev libsdl-net1.2-dev libsdl-ttf2.0-dev 
              valgrind
  tags:
    - docker

# out of memory
.gcc-7_sanitize_doctest_tests:
  stage: build
  script:
  - ./tools/ci/jobs/gcc7_sanitize_tests.sh --enable-unittests=doctest --without-dyecmd --without-manaplusgame
  - ldd ./src/manaplustests | grep "libasan"
  <<: *job-push
  variables:
    PACKAGES: gcc-7 g++-7 
              make autoconf automake autopoint gettext 
              libxml2-dev libcurl4-gnutls-dev libpng-dev 
              libsdl-gfx1.2-dev libsdl-image1.2-dev libsdl-mixer1.2-dev libsdl-net1.2-dev libsdl-ttf2.0-dev 
              valgrind
  tags:
    - docker

# out of memory
.gcc-7_sanitize_doctest_tests_i386:
  stage: build
  script:
  - ./tools/ci/jobs/gcc7_sanitize_tests.sh --enable-unittests=doctest --without-dyecmd --without-manaplusgame
  - ldd ./src/manaplustests | grep "libasan"
  image: vicamo/debian:sid-i386
  <<: *job-push
  variables:
    PACKAGES: gcc-7 g++-7 
              make autoconf automake autopoint gettext 
              libxml2-dev libcurl4-gnutls-dev libpng-dev 
              libsdl-gfx1.2-dev libsdl-image1.2-dev libsdl-mixer1.2-dev libsdl-net1.2-dev libsdl-ttf2.0-dev 
              valgrind
  tags:
    - docker

gcc-5_sanitize_no_opengl_tests:
  stage: build
  script:
  - ./tools/ci/jobs/gcc5_sanitize_tests.sh --without-opengl --without-dyecmd --without-manaplusgame
  - ldd ./src/manaplustests | grep "libasan"
  <<: *job-push
  variables:
    PACKAGES: gcc-5 g++-5 
              make autoconf automake autopoint gettext 
              libxml2-dev libcurl4-gnutls-dev libpng-dev 
              libsdl-gfx1.2-dev libsdl-image1.2-dev libsdl-mixer1.2-dev libsdl-net1.2-dev libsdl-ttf2.0-dev 
              valgrind
  tags:
    - docker

gcc-5_sanitize_no_opengltests_i386:
  stage: build
  script:
  - ./tools/ci/jobs/gcc5_sanitize_tests.sh --without-opengl --without-dyecmd --without-manaplusgame
  - ldd ./src/manaplustests | grep "libasan"
  image: vicamo/debian:sid-i386
  <<: *job-push
  variables:
    PACKAGES: gcc-5 g++-5 
              make autoconf automake autopoint gettext 
              libxml2-dev libcurl4-gnutls-dev libpng-dev 
              libsdl-gfx1.2-dev libsdl-image1.2-dev libsdl-mixer1.2-dev libsdl-net1.2-dev libsdl-ttf2.0-dev 
              valgrind
  tags:
    - docker


gcc-5_sanitize:
  stage: build
  script:
  - ./tools/ci/jobs/gcc5_sanitize.sh
  - ./tools/ci/scripts/runtests.sh
  <<: *job-push
  variables:
    PACKAGES: gcc-5 g++-5 
              make autoconf automake autopoint gettext 
              libxml2-dev libcurl4-gnutls-dev libpng-dev 
              libsdl-gfx1.2-dev libsdl-image1.2-dev libsdl-mixer1.2-dev libsdl-net1.2-dev libsdl-ttf2.0-dev
              gdb valgrind netcat-openbsd procps
  tags:
    - docker

gcc-6_sanitize:
  stage: build
  script:
  - ./tools/ci/jobs/gcc6_sanitize.sh
  - ./tools/ci/scripts/runtests.sh
  <<: *job-push
  variables:
    PACKAGES: gcc-6 g++-6 
              make autoconf automake autopoint gettext 
              libxml2-dev libcurl4-gnutls-dev libpng-dev 
              libsdl-gfx1.2-dev libsdl-image1.2-dev libsdl-mixer1.2-dev libsdl-net1.2-dev libsdl-ttf2.0-dev
              gdb valgrind netcat-openbsd procps
  tags:
    - docker

gcc-6_sanitize_i386:
  stage: build
  script:
  - ./tools/ci/jobs/gcc6_sanitize.sh
  - ./tools/ci/scripts/runtests.sh
  image: vicamo/debian:sid-i386
  <<: *job-push
  variables:
    PACKAGES: gcc-6 g++-6 
              make autoconf automake autopoint gettext 
              libxml2-dev libcurl4-gnutls-dev libpng-dev 
              libsdl-gfx1.2-dev libsdl-image1.2-dev libsdl-mixer1.2-dev libsdl-net1.2-dev libsdl-ttf2.0-dev
              gdb valgrind netcat-openbsd procps
  tags:
    - docker

gcc-7_sanitize:
  stage: build
  script:
  - ./tools/ci/jobs/gcc7_sanitize.sh
  - ./tools/ci/scripts/runtests.sh
  <<: *job-push
  variables:
    PACKAGES: gcc-7 g++-7 
              make autoconf automake autopoint gettext 
              libxml2-dev libcurl4-gnutls-dev libpng-dev 
              libsdl-gfx1.2-dev libsdl-image1.2-dev libsdl-mixer1.2-dev libsdl-net1.2-dev libsdl-ttf2.0-dev
              gdb valgrind netcat-openbsd procps
  tags:
    - docker

# out of memory
.gcc-7_sanitize_i386:
  stage: build
  script:
  - ./tools/ci/jobs/gcc7_sanitize.sh
  - ./tools/ci/scripts/runtests.sh
  image: vicamo/debian:sid-i386
  <<: *job-push
  variables:
    PACKAGES: gcc-7 g++-7 
              make autoconf automake autopoint gettext 
              libxml2-dev libcurl4-gnutls-dev libpng-dev 
              libsdl-gfx1.2-dev libsdl-image1.2-dev libsdl-mixer1.2-dev libsdl-net1.2-dev libsdl-ttf2.0-dev
              gdb valgrind netcat-openbsd procps
  tags:
    - docker

.fedora_gcc-snapshot_sanitize_tests:
  stage: build
  script:
  - ./tools/ci/jobs/gccsnapshot_sanitize_tests.sh --without-dyecmd --without-manaplusgame
  - ldd ./src/manaplustests | grep "libasan"
  <<: *job-push
  image: fedora:rawhide
  variables:
    PMUPDATE: "dnf install --refresh -y @development-tools"
    PMINSTALL: "dnf install -y bash tar findutils gcc gcc-c++ make libpng-devel libcurl-devel openssl-devel libxml2-devel gcc SDL-devel SDL_net-devel SDL_image-devel SDL_ttf-devel SDL_mixer-devel SDL_gfx-devel zlib-devel gettext-devel automake autoconf valgrind libasan liblsan libubsan"
    FLAGS: "gccfedora.sh"
  tags:
  - docker

.fedora_gcc-snapshot_sanitize_sdl2_tests:
  stage: build
  script:
  - ./tools/ci/jobs/gccsnapshot_sanitize_tests.sh --with-sdl2 --without-dyecmd --without-manaplusgame
  - ldd ./src/manaplustests | grep "libasan"
  <<: *job-push
  image: fedora:rawhide
  variables:
    PMUPDATE: "dnf install --refresh -y @development-tools"
    PMINSTALL: "dnf install -y bash tar findutils mesa-libGL-devel gcc gcc-c++ make libpng-devel libcurl-devel openssl-devel libxml2-devel gcc SDL2-devel SDL2_net-devel SDL2_image-devel SDL2_ttf-devel SDL2_mixer-devel SDL2_gfx-devel zlib-devel gettext-devel automake autoconf valgrind libasan liblsan libubsan"
    FLAGS: "gccfedora.sh"
  tags:
  - docker


gcc-6_SDL_SDL-1.2_sanitize_test:
  stage: build
  script:
  - ./tools/ci/scripts/downloadlib.sh ${LIBNAME} ${LIBVERSION}
  - echo /usr/local/spm/bin/${LIBNAME}_${LIBVERSION}/runenv.sh ${runenvz}
  - /usr/local/spm/bin/${LIBNAME}_${LIBVERSION}/runenv.sh ${runenvx} ${runenvz} env
  - /usr/local/spm/bin/${LIBNAME}_${LIBVERSION}/runenv.sh ${runenvx} ${runenvz} ./tools/ci/jobs/gcc6_sanitize_tests.sh --enable-unittests=yes --without-manaplusgame --without-dyecmd
  - /usr/local/spm/bin/${LIBNAME}_${LIBVERSION}/runenv.sh ${runenvx} ${runenvz} ./tools/ci/scripts/checkldd.sh src/manaplustests
  - ldd ./src/manaplustests | grep "libasan"
  <<: *job-push
  variables:
    LIBNAME: SDL
    LIBVERSION: SDL-1.2
    PACKAGES: gcc-6 g++-6 
              make autoconf automake autopoint gettext pkg-config 
              libx11-dev libxext-dev libxt-dev libxv-dev x11proto-core-dev libgl1-mesa-dev libasound2-dev libglu1-mesa-dev libicu-dev 
              valgrind 
              wget unzip
    runenvz: /usr/local/spm/bin/${LIBNAME}_${LIBVERSION}/runzlib_master.sh
    runenvx: /usr/local/spm/bin/${LIBNAME}_${LIBVERSION}/runlibxml2_master.sh
  tags:
    - docker

gcc-6_SDL_default_sanitize_test:
  stage: build
  script:
  - ./tools/ci/scripts/downloadlib.sh ${LIBNAME} ${LIBVERSION}
  - /usr/local/spm/bin/${LIBNAME}_${LIBVERSION}/runenv.sh ${runenvx} ${runenvz} ./tools/ci/jobs/gcc6_sanitize_tests.sh --enable-unittests=yes --with-sdl2 --without-manaplusgame --without-dyecmd
  - /usr/local/spm/bin/${LIBNAME}_${LIBVERSION}/runenv.sh ${runenvx} ${runenvz} ./tools/ci/scripts/checkldd.sh src/manaplustests
  - ldd ./src/manaplustests | grep "libasan"
  <<: *job-push
  variables:
    LIBNAME: SDL
    LIBVERSION: default
    PACKAGES: gcc-6 g++-6 
              make autoconf automake autopoint gettext pkg-config 
              libx11-dev libxext-dev libxt-dev libxv-dev x11proto-core-dev libgl1-mesa-dev libasound2-dev libicu-dev 
              valgrind 
              wget unzip
    runenvz: /usr/local/spm/bin/${LIBNAME}_${LIBVERSION}/runzlib_master.sh
    runenvx: /usr/local/spm/bin/${LIBNAME}_${LIBVERSION}/runlibxml2_master.sh
  tags:
    - docker


gcc-6_SDL_SDL-1.2_old_sanitize_test:
  stage: build
  script:
  - ./tools/ci/scripts/downloadlib.sh ${LIBNAME} ${LIBVERSION}
  - echo /usr/local/spm/bin/${LIBNAME}_${LIBVERSION}/runenv.sh ${runenvz}
  - /usr/local/spm/bin/${LIBNAME}_${LIBVERSION}/runenv.sh ${runenvx} ${runenvz} env
  - /usr/local/spm/bin/${LIBNAME}_${LIBVERSION}/runenv.sh ${runenvx} ${runenvz} ./tools/ci/jobs/gcc6_sanitize_tests.sh --enable-unittests=yes --without-manaplusgame --without-dyecmd
  - /usr/local/spm/bin/${LIBNAME}_${LIBVERSION}/runenv.sh ${runenvx} ${runenvz} ./tools/ci/scripts/checkldd.sh src/manaplustests
  - ldd ./src/manaplustests | grep "libasan"
  <<: *job-push
  variables:
    LIBNAME: SDL
    LIBVERSION: SDL-1.2_old
    PACKAGES: gcc-6 g++-6 
              make autoconf automake autopoint gettext pkg-config 
              libx11-dev libxext-dev libxt-dev libxv-dev x11proto-core-dev libgl1-mesa-dev libasound2-dev libglu1-mesa-dev libicu-dev 
              valgrind 
              libjpeg-dev libtiff-dev
              wget unzip
    runenvz: /usr/local/spm/bin/${LIBNAME}_${LIBVERSION}/runzlib_v1.2.5.sh
    runenvx: /usr/local/spm/bin/${LIBNAME}_${LIBVERSION}/runlibxml2_v2.9.1.sh
    POST_CXXFLAGS: "-Wno-undef"
  tags:
    - docker

gcc-6_SDL_default_old_sanitize_test:
  stage: build
  script:
  - ./tools/ci/scripts/downloadlib.sh ${LIBNAME} ${LIBVERSION}
  - /usr/local/spm/bin/${LIBNAME}_${LIBVERSION}/runenv.sh ${runenvx} ${runenvz} ./tools/ci/jobs/gcc6_sanitize_tests.sh --enable-unittests=yes --with-sdl2 --without-manaplusgame --without-dyecmd
  - /usr/local/spm/bin/${LIBNAME}_${LIBVERSION}/runenv.sh ${runenvx} ${runenvz} ./tools/ci/scripts/checkldd.sh src/manaplustests
  - ldd ./src/manaplustests | grep "libasan"
  <<: *job-push
  variables:
    LIBNAME: SDL
    LIBVERSION: default_old
    PACKAGES: gcc-6 g++-6 
              make autoconf automake autopoint gettext pkg-config 
              libx11-dev libxext-dev libxt-dev libxv-dev x11proto-core-dev libgl1-mesa-dev libasound2-dev libicu-dev 
              valgrind 
              libjpeg-dev libtiff-dev
              wget unzip
    runenvz: /usr/local/spm/bin/${LIBNAME}_${LIBVERSION}/runzlib_v1.2.5.sh
    runenvx: /usr/local/spm/bin/${LIBNAME}_${LIBVERSION}/runlibxml2_v2.9.1.sh
    POST_CXXFLAGS: "-Wno-undef"
  tags:
    - docker

gcc-6_tests_simd:
  stage: build
  script:
  - ./tools/ci/jobs/gcc6_tests_simd.sh --without-dyecmd --without-manaplusgame
  <<: *job-push
  variables:
    PACKAGES: gcc-6 g++-6 
              make autoconf automake autopoint gettext 
              libxml2-dev libcurl4-gnutls-dev libpng-dev 
              libsdl-gfx1.2-dev libsdl-image1.2-dev libsdl-mixer1.2-dev libsdl-net1.2-dev libsdl-ttf2.0-dev 
              valgrind
  tags:
    - docker

gcc-7_tests_simd:
  stage: build
  script:
  - ./tools/ci/jobs/gcc7_tests_simd.sh --without-dyecmd --without-manaplusgame
  <<: *job-push
  variables:
    PACKAGES: gcc-7 g++-7 
              make autoconf automake autopoint gettext 
              libxml2-dev libcurl4-gnutls-dev libpng-dev 
              libsdl-gfx1.2-dev libsdl-image1.2-dev libsdl-mixer1.2-dev libsdl-net1.2-dev libsdl-ttf2.0-dev 
              valgrind
  tags:
    - docker

gcc-6_tests_lto:
  stage: build
  script:
  - ./tools/ci/jobs/gcc6_tests.sh --without-dyecmd --without-manaplusgame
  <<: *job-push
  variables:
    POST_CXXFLAGS: "-ffast-math -O9 -flto -fwhole-program -funswitch-loops"
    PACKAGES: gcc-6 g++-6 
              make autoconf automake autopoint gettext 
              libxml2-dev libcurl4-gnutls-dev libpng-dev 
              libsdl-gfx1.2-dev libsdl-image1.2-dev libsdl-mixer1.2-dev libsdl-net1.2-dev libsdl-ttf2.0-dev 
              valgrind
  tags:
    - docker

gcc-6_tests_lto_i386:
  stage: build
  script:
  - ./tools/ci/jobs/gcc6_tests.sh --without-dyecmd --without-manaplusgame
  <<: *job-push
  image: vicamo/debian:sid-i386
  variables:
    POST_CXXFLAGS: "-ffast-math -O9 -flto -fwhole-program -funswitch-loops"
    PACKAGES: gcc-6 g++-6 
              make autoconf automake autopoint gettext 
              libxml2-dev libcurl4-gnutls-dev libpng-dev 
              libsdl-gfx1.2-dev libsdl-image1.2-dev libsdl-mixer1.2-dev libsdl-net1.2-dev libsdl-ttf2.0-dev 
              valgrind
  tags:
    - docker

gcc-7_tests_lto:
  stage: build
  script:
  - ./tools/ci/jobs/gcc7_tests.sh --without-dyecmd --without-manaplusgame
  <<: *job-push
  variables:
    POST_CXXFLAGS: "-ffast-math -O9 -flto -fwhole-program -funswitch-loops"
    PACKAGES: gcc-7 g++-7 
              make autoconf automake autopoint gettext 
              libxml2-dev libcurl4-gnutls-dev libpng-dev 
              libsdl-gfx1.2-dev libsdl-image1.2-dev libsdl-mixer1.2-dev libsdl-net1.2-dev libsdl-ttf2.0-dev 
              valgrind
  tags:
    - docker

gcc-7_tests_lto_i386:
  stage: build
  script:
  - ./tools/ci/jobs/gcc7_tests.sh --without-dyecmd --without-manaplusgame
  <<: *job-push
  image: vicamo/debian:sid-i386
  variables:
    POST_CXXFLAGS: "-ffast-math -O9 -flto -fwhole-program -funswitch-loops"
    PACKAGES: gcc-7 g++-7 
              make autoconf automake autopoint gettext 
              libxml2-dev libcurl4-gnutls-dev libpng-dev 
              libsdl-gfx1.2-dev libsdl-image1.2-dev libsdl-mixer1.2-dev libsdl-net1.2-dev libsdl-ttf2.0-dev 
              valgrind
  tags:
    - docker

gcc-5_tests:
  stage: build
  script:
  - ./tools/ci/jobs/gcc5_tests.sh --without-dyecmd
  <<: *job-push
  variables:
    PACKAGES: gcc-5 g++-5 
              make autoconf automake autopoint gettext 
              libxml2-dev libcurl4-gnutls-dev libpng-dev 
              libsdl-gfx1.2-dev libsdl-image1.2-dev libsdl-mixer1.2-dev libsdl-net1.2-dev libsdl-ttf2.0-dev 
              valgrind
  tags:
    - docker

gcc-5_tests_i386:
  stage: build
  script:
  - ./tools/ci/jobs/gcc5_tests.sh --without-dyecmd --without-manaplusgame
  image: vicamo/debian:sid-i386
  <<: *job-push
  variables:
    PACKAGES: gcc-5 g++-5 
              make autoconf automake autopoint gettext 
              libxml2-dev libcurl4-gnutls-dev libpng-dev 
              libsdl-gfx1.2-dev libsdl-image1.2-dev libsdl-mixer1.2-dev libsdl-net1.2-dev libsdl-ttf2.0-dev 
              valgrind
  tags:
    - docker

gcc-7_tests_gcov:
  stage: build
  script:
  - ./tools/ci/jobs/gcc7_tests_gcov.sh --without-dyecmd --without-manaplusgame
  <<: *job-push
  variables:
    PACKAGES: gcc-7 g++-7 
              make autoconf automake autopoint gettext 
              libxml2-dev libcurl4-gnutls-dev libpng-dev 
              libsdl-gfx1.2-dev libsdl-image1.2-dev libsdl-mixer1.2-dev libsdl-net1.2-dev libsdl-ttf2.0-dev 
              gcovr 
              valgrind
  tags:
    - docker

gcc-7_tests_i386:
  stage: build
  script:
  - ./tools/ci/jobs/gcc7_tests.sh --without-dyecmd --without-manaplusgame
  image: vicamo/debian:sid-i386
  <<: *job-push
  variables:
    PACKAGES: gcc-7 g++-7 
              make autoconf automake autopoint gettext 
              libxml2-dev libcurl4-gnutls-dev libpng-dev 
              libsdl-gfx1.2-dev libsdl-image1.2-dev libsdl-mixer1.2-dev libsdl-net1.2-dev libsdl-ttf2.0-dev 
              valgrind
  tags:
    - docker

gcc-6_tests:
  stage: build
  script:
  - ./tools/ci/jobs/gcc6_tests.sh --without-dyecmd --without-manaplusgame
  <<: *job-push
  variables:
    PACKAGES: gcc-6 g++-6 
              make autoconf automake autopoint gettext 
              libxml2-dev libcurl4-gnutls-dev libpng-dev 
              libsdl-gfx1.2-dev libsdl-image1.2-dev libsdl-mixer1.2-dev libsdl-net1.2-dev libsdl-ttf2.0-dev 
              valgrind
  tags:
    - docker

gcc-6_tests_i386:
  stage: build
  script:
  - ./tools/ci/jobs/gcc6_tests.sh --without-dyecmd --without-manaplusgame
  image: vicamo/debian:sid-i386
  <<: *job-push
  variables:
    PACKAGES: gcc-6 g++-6 
              make autoconf automake autopoint gettext 
              libxml2-dev libcurl4-gnutls-dev libpng-dev 
              libsdl-gfx1.2-dev libsdl-image1.2-dev libsdl-mixer1.2-dev libsdl-net1.2-dev libsdl-ttf2.0-dev 
              valgrind
  tags:
    - docker

gcc-6_tests_glibcdebug:
  stage: build
  script:
  - ./tools/ci/jobs/gcc6_tests.sh --without-dyecmd --without-manaplusgame --enable-glibcdebug
  <<: *job-push
  variables:
    PACKAGES: gcc-6 g++-6 
              make autoconf automake autopoint gettext 
              libxml2-dev libcurl4-gnutls-dev libpng-dev 
              libsdl-gfx1.2-dev libsdl-image1.2-dev libsdl-mixer1.2-dev libsdl-net1.2-dev libsdl-ttf2.0-dev 
              valgrind
  tags:
    - docker

gcc-7_tests_glibcdebug:
  stage: build
  script:
  - ./tools/ci/jobs/gcc7_tests.sh --without-dyecmd --without-manaplusgame --enable-glibcdebug
  <<: *job-push
  variables:
    PACKAGES: gcc-7 g++-7 
              make autoconf automake autopoint gettext 
              libxml2-dev libcurl4-gnutls-dev libpng-dev 
              libsdl-gfx1.2-dev libsdl-image1.2-dev libsdl-mixer1.2-dev libsdl-net1.2-dev libsdl-ttf2.0-dev 
              valgrind
  tags:
    - docker

gcc-7_pugixml_tests:
  stage: build
  script:
  - ./tools/ci/jobs/gcc7_tests.sh --without-dyecmd --without-manaplusgame --enable-libxml=pugixml
  <<: *job-push
  variables:
    PACKAGES: gcc-7 g++-7 
              make autoconf automake autopoint gettext 
              libpugixml-dev libcurl4-gnutls-dev libpng-dev 
              libsdl-gfx1.2-dev libsdl-image1.2-dev libsdl-mixer1.2-dev libsdl-net1.2-dev libsdl-ttf2.0-dev 
              valgrind
  tags:
    - docker

gcc-7_pugixml_tests_i386:
  stage: build
  script:
  - ./tools/ci/jobs/gcc7_tests.sh --without-dyecmd --without-manaplusgame --enable-libxml=pugixml
  image: vicamo/debian:sid-i386
  <<: *job-push
  variables:
    PACKAGES: gcc-7 g++-7 
              make autoconf automake autopoint gettext 
              libpugixml-dev libcurl4-gnutls-dev libpng-dev 
              libsdl-gfx1.2-dev libsdl-image1.2-dev libsdl-mixer1.2-dev libsdl-net1.2-dev libsdl-ttf2.0-dev 
              valgrind
  tags:
    - docker

gcc-6_tests_glibcdebug_i386:
  stage: build
  script:
  - ./tools/ci/jobs/gcc6_tests.sh --without-dyecmd --without-manaplusgame --enable-glibcdebug
  image: vicamo/debian:sid-i386
  <<: *job-push
  variables:
    PACKAGES: gcc-6 g++-6 
              make autoconf automake autopoint gettext 
              libxml2-dev libcurl4-gnutls-dev libpng-dev 
              libsdl-gfx1.2-dev libsdl-image1.2-dev libsdl-mixer1.2-dev libsdl-net1.2-dev libsdl-ttf2.0-dev 
              valgrind
  tags:
    - docker

gcc-7_tests_glibcdebug_i386:
  stage: build
  script:
  - ./tools/ci/jobs/gcc7_tests.sh --without-dyecmd --without-manaplusgame --enable-glibcdebug
  image: vicamo/debian:sid-i386
  <<: *job-push
  variables:
    PACKAGES: gcc-7 g++-7 
              make autoconf automake autopoint gettext 
              libxml2-dev libcurl4-gnutls-dev libpng-dev 
              libsdl-gfx1.2-dev libsdl-image1.2-dev libsdl-mixer1.2-dev libsdl-net1.2-dev libsdl-ttf2.0-dev 
              valgrind
  tags:
    - docker

gcc-7_sdl2_tests_gcov:
  stage: build
  script:
  - ./tools/ci/jobs/gcc7_sdl2_tests_gcov.sh --without-dyecmd --without-manaplusgame
  <<: *job-push
  variables:
    PACKAGES: gcc-7 g++-7 
              make autoconf automake autopoint gettext 
              libxml2-dev libcurl4-gnutls-dev libpng-dev 
              libsdl2-dev libsdl2-gfx-dev libsdl2-image-dev libsdl2-mixer-dev libsdl2-net-dev libsdl2-ttf-dev 
              gcovr
              valgrind
  tags:
    - docker

gcc-6_sdl2_tests:
  stage: build
  script:
  - ./tools/ci/jobs/gcc6_sdl2_tests.sh --without-dyecmd --without-manaplusgame
  <<: *job-push
  variables:
    PACKAGES: gcc-6 g++-6 
              make autoconf automake autopoint gettext 
              libxml2-dev libcurl4-gnutls-dev libpng-dev 
              libsdl2-dev libsdl2-gfx-dev libsdl2-image-dev libsdl2-mixer-dev libsdl2-net-dev libsdl2-ttf-dev 
              gcovr
              valgrind
  tags:
    - docker

gcc-6_sdl2_tests_i386:
  stage: build
  script:
  - ./tools/ci/jobs/gcc6_sdl2_tests.sh --without-dyecmd --without-manaplusgame
  image: vicamo/debian:sid-i386
  <<: *job-push
  variables:
    PACKAGES: gcc-6 g++-6 
              make autoconf automake autopoint gettext 
              libxml2-dev libcurl4-gnutls-dev libpng-dev 
              libsdl2-dev libsdl2-gfx-dev libsdl2-image-dev libsdl2-mixer-dev libsdl2-net-dev libsdl2-ttf-dev 
              valgrind
  tags:
    - docker

gcc-7_sdl2_tests_i386:
  stage: build
  script:
  - ./tools/ci/jobs/gcc7_tests.sh --with-sdl2 --without-dyecmd --without-manaplusgame
  image: vicamo/debian:sid-i386
  <<: *job-push
  variables:
    PACKAGES: gcc-7 g++-7 
              make autoconf automake autopoint gettext 
              libxml2-dev libcurl4-gnutls-dev libpng-dev 
              libsdl2-dev libsdl2-gfx-dev libsdl2-image-dev libsdl2-mixer-dev libsdl2-net-dev libsdl2-ttf-dev 
              valgrind
  tags:
    - docker

gcc-5_sdl2_tests_glibcdebug:
  stage: build
  script:
  - ./tools/ci/jobs/gcc5_sdl2_tests.sh --without-manaplusgame --enable-glibcdebug
  <<: *job-push
  variables:
    PACKAGES: gcc-5 g++-5 
              make autoconf automake autopoint gettext 
              libxml2-dev libcurl4-gnutls-dev libpng-dev 
              libsdl2-gfx-dev libsdl2-image-dev libsdl2-mixer-dev libsdl2-net-dev libsdl2-ttf-dev
              valgrind
  tags:
    - docker

gcc-5_sdl2_tests_i386:
  stage: build
  script:
  - ./tools/ci/jobs/gcc5_sdl2_tests.sh --without-dyecmd --without-manaplusgame
  image: vicamo/debian:sid-i386
  <<: *job-push
  variables:
    PACKAGES: gcc-5 g++-5 
              make autoconf automake autopoint gettext 
              libxml2-dev libcurl4-gnutls-dev libpng-dev 
              libsdl2-gfx-dev libsdl2-image-dev libsdl2-mixer-dev libsdl2-net-dev libsdl2-ttf-dev
              valgrind
  tags:
    - docker

gcc-5_sdl2_no_opengl_tests:
  stage: build
  script:
  - ./tools/ci/jobs/gcc5_sdl2_tests.sh --without-opengl --without-dyecmd --without-manaplusgame
  <<: *job-push
  variables:
    PACKAGES: gcc-5 g++-5 
              make autoconf automake autopoint gettext 
              libxml2-dev libcurl4-gnutls-dev libpng-dev 
              libsdl2-gfx-dev libsdl2-image-dev libsdl2-mixer-dev libsdl2-net-dev libsdl2-ttf-dev
              valgrind
  tags:
    - docker

gcc-5_sdl2_no_opengl_tests_i386:
  stage: build
  script:
  - ./tools/ci/jobs/gcc5_sdl2_tests.sh --without-opengl --without-dyecmd --without-manaplusgame
  image: vicamo/debian:sid-i386
  <<: *job-push
  variables:
    PACKAGES: gcc-5 g++-5 
              make autoconf automake autopoint gettext 
              libxml2-dev libcurl4-gnutls-dev libpng-dev 
              libsdl2-gfx-dev libsdl2-image-dev libsdl2-mixer-dev libsdl2-net-dev libsdl2-ttf-dev
              valgrind
  tags:
    - docker

gcc-6_zlib_v1.2.3.9_tests:
  stage: build
  script:
  - ./tools/ci/scripts/downloadlib.sh ${LIBNAME} ${LIBVERSION}
  - /usr/local/spm/bin/${LIBNAME}_${LIBVERSION}/runenv.sh ./tools/ci/jobs/gcc6_tests.sh --without-dyecmd --without-manaplusgame
  - /usr/local/spm/bin/${LIBNAME}_${LIBVERSION}/runenv.sh ./tools/ci/scripts/checkldd.sh src/manaplustests
  <<: *job-push
  variables:
    LIBNAME: zlib
    LIBVERSION: v1.2.3.9
    PACKAGES: gcc-6 g++-6 
              make autoconf automake autopoint gettext 
              libxml2-dev libcurl4-gnutls-dev libpng-dev 
              libsdl-gfx1.2-dev libsdl-image1.2-dev libsdl-mixer1.2-dev libsdl-net1.2-dev libsdl-ttf2.0-dev
              wget unzip
    POST_CXXFLAGS: "-Wno-undef"
  tags:
    - docker

gcc-6_zlib_master_tests:
  stage: build
  script:
  - ./tools/ci/scripts/downloadlib.sh ${LIBNAME} ${LIBVERSION}
  - /usr/local/spm/bin/${LIBNAME}_${LIBVERSION}/runenv.sh ./tools/ci/jobs/gcc6_tests.sh --without-dyecmd --without-manaplusgame
  - /usr/local/spm/bin/${LIBNAME}_${LIBVERSION}/runenv.sh ./tools/ci/scripts/checkldd.sh src/manaplustests
  <<: *job-push
  variables:
    LIBNAME: zlib
    LIBVERSION: master
    PACKAGES: gcc-6 g++-6 
              make autoconf automake autopoint gettext 
              libxml2-dev libcurl4-gnutls-dev libpng-dev 
              libsdl-gfx1.2-dev libsdl-image1.2-dev libsdl-mixer1.2-dev libsdl-net1.2-dev libsdl-ttf2.0-dev
              wget unzip
  tags:
    - docker

gcc-6_tests_valgrind:
  stage: build
  script:
  - ./tools/ci/jobs/gcc6_tests.sh --without-dyecmd --without-manaplusgame || true
  - echo test valgrind
  - valgrind -q --read-var-info=yes --track-origins=yes --malloc-fill=11 --free-fill=55 --show-reachable=yes --leak-check=full --leak-resolution=high --partial-loads-ok=yes --error-limit=no ./src/manaplustests 2>logs/valg.log
  - grep "invalid" logs/valg.log && exit 1 || true
  <<: *job-push
  variables:
    PACKAGES: gcc-6 g++-6 
              make autoconf automake autopoint gettext 
              libxml2-dev libcurl4-gnutls-dev libpng-dev 
              libsdl-gfx1.2-dev libsdl-image1.2-dev libsdl-mixer1.2-dev libsdl-net1.2-dev libsdl-ttf2.0-dev 
              valgrind
  tags:
    - docker

gcc-6_tests_valgrind_i386:
  stage: build
  script:
  - ./tools/ci/jobs/gcc6_tests.sh --without-dyecmd --without-manaplusgame || true
  - echo test valgrind
  - valgrind -q --read-var-info=yes --track-origins=yes --malloc-fill=11 --free-fill=55 --show-reachable=yes --leak-check=full --leak-resolution=high --partial-loads-ok=yes --error-limit=no ./src/manaplustests 2>logs/valg.log
  - grep "invalid" logs/valg.log && exit 1 || true
  image: vicamo/debian:sid-i386
  <<: *job-push
  variables:
    PACKAGES: gcc-6 g++-6 
              make autoconf automake autopoint gettext 
              libxml2-dev libcurl4-gnutls-dev libpng-dev 
              libsdl-gfx1.2-dev libsdl-image1.2-dev libsdl-mixer1.2-dev libsdl-net1.2-dev libsdl-ttf2.0-dev 
              valgrind
  tags:
    - docker

gcc-7_tests_valgrind:
  stage: build
  script:
  - ./tools/ci/jobs/gcc7_tests.sh --without-dyecmd --without-manaplusgame || true
  - echo test valgrind
  - valgrind -q --read-var-info=yes --track-origins=yes --malloc-fill=11 --free-fill=55 --show-reachable=yes --leak-check=full --leak-resolution=high --partial-loads-ok=yes --error-limit=no ./src/manaplustests 2>logs/valg.log
  - grep "invalid" logs/valg.log && exit 1 || true
  <<: *job-push
  variables:
    PACKAGES: gcc-7 g++-7 
              make autoconf automake autopoint gettext 
              libxml2-dev libcurl4-gnutls-dev libpng-dev 
              libsdl-gfx1.2-dev libsdl-image1.2-dev libsdl-mixer1.2-dev libsdl-net1.2-dev libsdl-ttf2.0-dev 
              valgrind
  tags:
    - docker

gcc-7_tests_valgrind_i386:
  stage: build
  script:
  - ./tools/ci/jobs/gcc7_tests.sh --without-dyecmd --without-manaplusgame || true
  - echo test valgrind
  - valgrind -q --read-var-info=yes --track-origins=yes --malloc-fill=11 --free-fill=55 --show-reachable=yes --leak-check=full --leak-resolution=high --partial-loads-ok=yes --error-limit=no ./src/manaplustests 2>logs/valg.log
  - grep "invalid" logs/valg.log && exit 1 || true
  image: vicamo/debian:sid-i386
  <<: *job-push
  variables:
    PACKAGES: gcc-7 g++-7 
              make autoconf automake autopoint gettext 
              libxml2-dev libcurl4-gnutls-dev libpng-dev 
              libsdl-gfx1.2-dev libsdl-image1.2-dev libsdl-mixer1.2-dev libsdl-net1.2-dev libsdl-ttf2.0-dev 
              valgrind
  tags:
    - docker

gcc-7_tests_jmalloc:
  stage: build
  script:
  - ls ${MALLOC}
  - LD_PRELOAD=${MALLOC} ./tools/ci/jobs/gcc7_tests.sh --without-dyecmd --without-manaplusgame
  <<: *job-push
  variables:
    PACKAGES: gcc-7 g++-7 
              make autoconf automake autopoint gettext 
              libxml2-dev libcurl4-gnutls-dev libpng-dev 
              libsdl-gfx1.2-dev libsdl-image1.2-dev libsdl-mixer1.2-dev libsdl-net1.2-dev libsdl-ttf2.0-dev 
              valgrind libjemalloc1
    MALLOC: /usr/lib/x86_64-linux-gnu/libjemalloc.so.1
  tags:
    - docker

gcc-7_tests_jmalloc_i386:
  stage: build
  script:
  - ls ${MALLOC}
  - LD_PRELOAD=${MALLOC} ./tools/ci/jobs/gcc7_tests.sh --without-dyecmd --without-manaplusgame
  <<: *job-push
  image: vicamo/debian:sid-i386
  variables:
    PACKAGES: gcc-7 g++-7 
              make autoconf automake autopoint gettext 
              libxml2-dev libcurl4-gnutls-dev libpng-dev 
              libsdl-gfx1.2-dev libsdl-image1.2-dev libsdl-mixer1.2-dev libsdl-net1.2-dev libsdl-ttf2.0-dev 
              valgrind libjemalloc1
    MALLOC: /usr/lib/i386-linux-gnu/libjemalloc.so.1
  tags:
    - docker

gcc-7_lto:
  stage: build
  script:
  - ./tools/ci/jobs/gcc7_lto.sh
  - ./tools/ci/scripts/runtests.sh
  <<: *job-push
  variables:
    PACKAGES: gcc-7 g++-7 
              make autoconf automake autopoint gettext 
              libxml2-dev libcurl4-gnutls-dev libpng-dev 
              libsdl-gfx1.2-dev libsdl-image1.2-dev libsdl-mixer1.2-dev libsdl-net1.2-dev libsdl-ttf2.0-dev
              gdb valgrind netcat-openbsd procps
    POST_CXXFLAGS: "-Wno-null-dereference"

gcc-7_lto_i386:
  stage: build
  script:
  - ./tools/ci/jobs/gcc7_lto.sh
  - ./tools/ci/scripts/runtests.sh
  image: vicamo/debian:sid-i386
  <<: *job-push
  variables:
    PACKAGES: gcc-7 g++-7 
              make autoconf automake autopoint gettext 
              libxml2-dev libcurl4-gnutls-dev libpng-dev 
              libsdl-gfx1.2-dev libsdl-image1.2-dev libsdl-mixer1.2-dev libsdl-net1.2-dev libsdl-ttf2.0-dev
              gdb valgrind netcat-openbsd procps
    POST_CXXFLAGS: "-Wno-null-dereference"
  tags:
    - docker

gcc-6_lto:
  stage: build
  script:
  - ./tools/ci/jobs/gcc6_lto.sh
  - ./tools/ci/scripts/runtests.sh
  <<: *job-push
  variables:
    PACKAGES: gcc-6 g++-6 
              make autoconf automake autopoint gettext 
              libxml2-dev libcurl4-gnutls-dev libpng-dev 
              libsdl-gfx1.2-dev libsdl-image1.2-dev libsdl-mixer1.2-dev libsdl-net1.2-dev libsdl-ttf2.0-dev
              gdb valgrind netcat-openbsd procps

gcc-6_lto_i386:
  stage: build
  script:
  - ./tools/ci/jobs/gcc6_lto.sh
  - ./tools/ci/scripts/runtests.sh
  image: vicamo/debian:sid-i386
  <<: *job-push
  variables:
    PACKAGES: gcc-6 g++-6 
              make autoconf automake autopoint gettext 
              libxml2-dev libcurl4-gnutls-dev libpng-dev 
              libsdl-gfx1.2-dev libsdl-image1.2-dev libsdl-mixer1.2-dev libsdl-net1.2-dev libsdl-ttf2.0-dev
              gdb valgrind netcat-openbsd procps
  tags:
    - docker

gcc-5_tarball_tests:
  stage: build
  script:
  - ./tools/ci/jobs/gcc6_tarball_tests.sh --without-dyecmd --without-manaplusgame
  <<: *job-push
  variables:
    PACKAGES: gcc-6 g++-6 
              make autoconf automake autopoint gettext 
              libxml2-dev libcurl4-gnutls-dev libpng-dev 
              libsdl-gfx1.2-dev libsdl-image1.2-dev libsdl-mixer1.2-dev libsdl-net1.2-dev libsdl-ttf2.0-dev 
              valgrind

gentoo_gcc-4.9_tests:
  stage: build
  script:
  - ./tools/ci/jobs/gcc49_tests.sh --without-dyecmd --without-manaplusgame
  image: registry.gitlab.com/manaplus/images:gentoo_gcc49_sdl1
  <<: *job-push
  variables:
    PMUPDATE: "echo"
    PMINSTALL: "echo"
    NEWCC: gcc-4.9.4
    NEWCXX: g++-4.9.4
  tags:
    - docker

gentoo_gcc-4.9_tests_sdl2:
  stage: build
  script:
  - ./tools/ci/jobs/gcc49_tests.sh --without-dyecmd --without-manaplusgame --with-sdl2
  image: registry.gitlab.com/manaplus/images:gentoo_gcc49_sdl2
  <<: *job-push
  variables:
    PMUPDATE: "echo"
    PMINSTALL: "echo"
    NEWCC: gcc-4.9.4
    NEWCXX: g++-4.9.4
  tags:
    - docker

# simple builds

gcc-3_sdl1:
  stage: build
  script:
  - ./tools/ci/jobs/gcc3.sh
  - ./tools/ci/scripts/runtests.sh
  image: registry.gitlab.com/manaplus/images:gentoo_gcc3_sdl1
  <<: *job-push
  variables:
    PMUPDATE: "echo"
    PMINSTALL: "echo"
  tags:
    - docker

gcc-3_sdl2:
  stage: build
  script:
  - ./tools/ci/jobs/gcc3.sh --with-sdl2
  - ./tools/ci/scripts/runtests.sh
  image: registry.gitlab.com/manaplus/images:gentoo_gcc3_sdl2
  <<: *job-push
  variables:
    PMUPDATE: "echo"
    PMINSTALL: "echo"
  tags:
    - docker

gcc-4.1_sdl1:
  stage: build
  script:
  - ./tools/ci/jobs/gcc41.sh
  - ./tools/ci/scripts/runtests.sh
  image: registry.gitlab.com/manaplus/images:gentoo_gcc41_sdl1
  <<: *job-push
  variables:
    PMUPDATE: "echo"
    PMINSTALL: "echo"
    NEWCC: gcc-4.1.2
    NEWCXX: g++-4.1.2
  tags:
    - docker

gcc-4.1_sdl2:
  stage: build
  script:
  - ./tools/ci/jobs/gcc41.sh --with-sdl2
  - ./tools/ci/scripts/runtests.sh
  image: registry.gitlab.com/manaplus/images:gentoo_gcc41_sdl2
  <<: *job-push
  variables:
    PMUPDATE: "echo"
    PMINSTALL: "echo"
    NEWCC: gcc-4.1.2
    NEWCXX: g++-4.1.2
  tags:
    - docker

gcc-4.3_sdl1:
  stage: build
  script:
  - ./tools/ci/jobs/gcc43.sh
  - ./tools/ci/scripts/runtests.sh
  image: registry.gitlab.com/manaplus/images:gentoo_gcc43_sdl1
  <<: *job-push
  variables:
    PMUPDATE: "echo"
    PMINSTALL: "echo"
    NEWCC: gcc-4.3.6
    NEWCXX: g++-4.3.6
  tags:
    - docker

gcc-4.3_sdl2:
  stage: build
  script:
  - ./tools/ci/jobs/gcc43.sh --with-sdl2
  - ./tools/ci/scripts/runtests.sh
  image: registry.gitlab.com/manaplus/images:gentoo_gcc43_sdl2
  <<: *job-push
  variables:
    PMUPDATE: "echo"
    PMINSTALL: "echo"
    NEWCC: gcc-4.3.6
    NEWCXX: g++-4.3.6
  tags:
    - docker

gcc-4.4_i386:
  stage: build
  script:
  - ./tools/ci/jobs/gcc44.sh
  - ./tools/ci/scripts/runtests.sh
  image: vicamo/debian:wheezy-i386
  <<: *job-push
  variables:
    PACKAGES: gcc-4.4 g++-4.4 
              make autoconf automake autopoint gettext 
              libxml2-dev libcurl4-gnutls-dev libpng-dev 
              libsdl-gfx1.2-dev libsdl-image1.2-dev libsdl-mixer1.2-dev libsdl-net1.2-dev libsdl-ttf2.0-dev
              gdb valgrind netcat-openbsd procps
  tags:
    - docker

gcc-4.5:
  stage: build
  script:
  - ./tools/ci/jobs/gcc45.sh
  - ./tools/ci/scripts/runtests.sh
  image: ubuntu:12.04
  <<: *job-push
  variables:
    PACKAGES: gcc-4.5 g++-4.5 
              make autoconf automake autopoint gettext 
              libxml2-dev libcurl4-gnutls-dev libpng-dev 
              libsdl-gfx1.2-dev libsdl-image1.2-dev libsdl-mixer1.2-dev libsdl-net1.2-dev libsdl-ttf2.0-dev
              gdb valgrind netcat-openbsd procps
  tags:
    - docker

gcc-4.6:
  stage: build
  script:
  - ./tools/ci/jobs/gcc46.sh
  - ./tools/ci/scripts/runtests.sh
  image: debian:wheezy
  <<: *job-push
  variables:
    PACKAGES: gcc-4.6 g++-4.6 
              make autoconf automake autopoint gettext 
              libxml2-dev libcurl4-gnutls-dev libpng-dev 
              libsdl-gfx1.2-dev libsdl-image1.2-dev libsdl-mixer1.2-dev libsdl-net1.2-dev libsdl-ttf2.0-dev
              gdb valgrind netcat-openbsd procps
  tags:
    - docker

gcc-4.6_i386:
  stage: build
  script:
  - ./tools/ci/jobs/gcc46.sh
  - ./tools/ci/scripts/runtests.sh
  image: vicamo/debian:wheezy-i386
  <<: *job-push
  variables:
    PACKAGES: gcc-4.6 g++-4.6 
              make autoconf automake autopoint gettext 
              libxml2-dev libcurl4-gnutls-dev libpng-dev 
              libsdl-gfx1.2-dev libsdl-image1.2-dev libsdl-mixer1.2-dev libsdl-net1.2-dev libsdl-ttf2.0-dev
              gdb valgrind netcat-openbsd procps
  tags:
    - docker

gcc-4.7:
  stage: build
  script:
  - ./tools/ci/jobs/gcc47.sh
  - ./tools/ci/scripts/runtests.sh
  image: debian:wheezy
  <<: *job-push
  variables:
    PACKAGES: gcc-4.7 g++-4.7 
              make autoconf automake autopoint gettext 
              libxml2-dev libcurl4-gnutls-dev libpng-dev 
              libsdl-gfx1.2-dev libsdl-image1.2-dev libsdl-mixer1.2-dev libsdl-net1.2-dev libsdl-ttf2.0-dev
              gdb valgrind netcat-openbsd procps
  tags:
    - docker

gcc-4.7_i386:
  stage: build
  script:
  - ./tools/ci/jobs/gcc47.sh
  - ./tools/ci/scripts/runtests.sh
  image: vicamo/debian:wheezy-i386
  <<: *job-push
  variables:
    PACKAGES: gcc-4.7 g++-4.7 
              make autoconf automake autopoint gettext 
              libxml2-dev libcurl4-gnutls-dev libpng-dev 
              libsdl-gfx1.2-dev libsdl-image1.2-dev libsdl-mixer1.2-dev libsdl-net1.2-dev libsdl-ttf2.0-dev
              gdb valgrind netcat-openbsd procps
  tags:
    - docker

gcc-4.7_c++11:
  stage: build
  script:
  - ./tools/ci/jobs/gcc47_c++11.sh
  - ./tools/ci/scripts/runtests.sh
  image: debian:wheezy
  <<: *job-push
  variables:
    PACKAGES: gcc-4.7 g++-4.7 
              make autoconf automake autopoint gettext 
              libxml2-dev libcurl4-gnutls-dev libpng-dev 
              libsdl-gfx1.2-dev libsdl-image1.2-dev libsdl-mixer1.2-dev libsdl-net1.2-dev libsdl-ttf2.0-dev
              gdb valgrind netcat-openbsd procps
  tags:
    - docker

gcc-4.8:
  stage: build
  script:
  - ./tools/ci/jobs/gcc48.sh
  - ./tools/ci/scripts/runtests.sh
  image: debian:jessie
  <<: *job-push
  variables:
    PACKAGES: gcc-4.8 g++-4.8 
              make autoconf automake autopoint gettext 
              libxml2-dev libcurl4-gnutls-dev libpng-dev 
              libsdl-gfx1.2-dev libsdl-image1.2-dev libsdl-mixer1.2-dev libsdl-net1.2-dev libsdl-ttf2.0-dev
              gdb valgrind netcat-openbsd procps

gcc-4.8_i386:
  stage: build
  script:
  - ./tools/ci/jobs/gcc48.sh
  - ./tools/ci/scripts/runtests.sh
  image: vicamo/debian:jessie-i386
  <<: *job-push
  variables:
    PACKAGES: gcc-4.8 g++-4.8 
              make autoconf automake autopoint gettext 
              libxml2-dev libcurl4-gnutls-dev libpng-dev 
              libsdl-gfx1.2-dev libsdl-image1.2-dev libsdl-mixer1.2-dev libsdl-net1.2-dev libsdl-ttf2.0-dev
              gdb valgrind netcat-openbsd procps
  tags:
    - docker

clang-3.0:
  stage: build
  script:
  - ./tools/ci/jobs/clang.sh clang
  - ./tools/ci/scripts/runtests.sh
  image: debian:wheezy
  <<: *job-push
  variables:
    PACKAGES: clang libc++-dev 
              make autoconf automake autopoint gettext 
              libxml2-dev libcurl4-gnutls-dev libpng-dev 
              libsdl-gfx1.2-dev libsdl-image1.2-dev libsdl-mixer1.2-dev libsdl-net1.2-dev libsdl-ttf2.0-dev
              gdb valgrind netcat-openbsd procps
  tags:
    - docker

clang-3.0_i386:
  stage: build
  script:
  - ./tools/ci/jobs/clang.sh clang
  - ./tools/ci/scripts/runtests.sh
  image: vicamo/debian:wheezy-i386
  <<: *job-push
  variables:
    PACKAGES: clang libc++-dev 
              make autoconf automake autopoint gettext 
              libxml2-dev libcurl4-gnutls-dev libpng-dev 
              libsdl-gfx1.2-dev libsdl-image1.2-dev libsdl-mixer1.2-dev libsdl-net1.2-dev libsdl-ttf2.0-dev
              gdb valgrind netcat-openbsd procps
  tags:
    - docker

clang-3.3:
  stage: build
  script:
  - ./tools/ci/jobs/clang.sh clang-3.3
  - ./tools/ci/scripts/runtests.sh
  image: ubuntu:12.04
  <<: *job-push
  variables:
    PACKAGES: clang-3.3 libc++-dev 
              make autoconf automake autopoint gettext 
              libxml2-dev libcurl4-gnutls-dev libpng-dev 
              libsdl-gfx1.2-dev libsdl-image1.2-dev libsdl-mixer1.2-dev libsdl-net1.2-dev libsdl-ttf2.0-dev
              gdb valgrind netcat-openbsd procps
  tags:
    - docker

clang-3.3_i386:
  stage: build
  script:
  - ./tools/ci/jobs/clang.sh clang-3.3
  - ./tools/ci/scripts/runtests.sh
  image: vicamo/ubuntu:precise-i386
  <<: *job-push
  variables:
    PACKAGES: clang-3.3 libc++-dev 
              make autoconf automake autopoint gettext 
              libxml2-dev libcurl4-gnutls-dev libpng-dev 
              libsdl-gfx1.2-dev libsdl-image1.2-dev libsdl-mixer1.2-dev libsdl-net1.2-dev libsdl-ttf2.0-dev
              gdb valgrind netcat-openbsd procps
  tags:
    - docker

clang-3.4:
  stage: build
  script:
  - ./tools/ci/jobs/clang34.sh
  - ./tools/ci/scripts/runtests.sh
  image: debian:jessie
  <<: *job-push
  variables:
    PACKAGES: clang-3.4 libc++-dev 
              make autoconf automake autopoint gettext 
              libxml2-dev libcurl4-gnutls-dev libpng-dev 
              libsdl-gfx1.2-dev libsdl-image1.2-dev libsdl-mixer1.2-dev libsdl-net1.2-dev libsdl-ttf2.0-dev
              gdb valgrind netcat-openbsd procps

clang-3.4_i386:
  stage: build
  script:
  - ./tools/ci/jobs/clang34.sh
  - ./tools/ci/scripts/runtests.sh
  image: vicamo/debian:jessie-i386
  <<: *job-push
  variables:
    PACKAGES: clang-3.4 libc++-dev 
              make autoconf automake autopoint gettext 
              libxml2-dev libcurl4-gnutls-dev libpng-dev 
              libsdl-gfx1.2-dev libsdl-image1.2-dev libsdl-mixer1.2-dev libsdl-net1.2-dev libsdl-ttf2.0-dev
              gdb valgrind netcat-openbsd procps
  tags:
    - docker

clang-3.5:
  stage: build
  script:
  - ./tools/ci/jobs/clang35.sh
  - ./tools/ci/scripts/runtests.sh
  image: debian:jessie
  <<: *job-push
  variables:
    PACKAGES: clang-3.5 libc++-dev 
              make autoconf automake autopoint gettext 
              libxml2-dev libcurl4-gnutls-dev libpng-dev 
              libsdl-gfx1.2-dev libsdl-image1.2-dev libsdl-mixer1.2-dev libsdl-net1.2-dev libsdl-ttf2.0-dev
              gdb valgrind netcat-openbsd procps

clang-3.5_i386:
  stage: build
  script:
  - ./tools/ci/jobs/clang35.sh
  - ./tools/ci/scripts/runtests.sh
  image: vicamo/debian:jessie-i386
  <<: *job-push
  variables:
    PACKAGES: clang-3.5 libc++-dev 
              make autoconf automake autopoint gettext 
              libxml2-dev libcurl4-gnutls-dev libpng-dev 
              libsdl-gfx1.2-dev libsdl-image1.2-dev libsdl-mixer1.2-dev libsdl-net1.2-dev libsdl-ttf2.0-dev
              gdb valgrind netcat-openbsd procps
  tags:
    - docker

clang-3.6:
  stage: build
  script:
  - ./tools/ci/jobs/clang36.sh
  - ./tools/ci/scripts/runtests.sh
  image: ubuntu:14.04
  <<: *job-push
  variables:
    PACKAGES: clang-3.6 libc++-dev 
              make autoconf automake autopoint gettext 
              libxml2-dev libcurl4-gnutls-dev libpng-dev 
              libsdl-gfx1.2-dev libsdl-image1.2-dev libsdl-mixer1.2-dev libsdl-net1.2-dev libsdl-ttf2.0-dev
              gdb valgrind netcat-openbsd procps
  tags:
    - docker

clang-3.6_i386:
  stage: build
  script:
  - ./tools/ci/jobs/clang36.sh
  - ./tools/ci/scripts/runtests.sh
  image: vicamo/ubuntu:trusty-i386
  <<: *job-push
  variables:
    PACKAGES: clang-3.6 libc++-dev 
              make autoconf automake autopoint gettext 
              libxml2-dev libcurl4-gnutls-dev libpng-dev 
              libsdl-gfx1.2-dev libsdl-image1.2-dev libsdl-mixer1.2-dev libsdl-net1.2-dev libsdl-ttf2.0-dev
              gdb valgrind netcat-openbsd procps
  tags:
    - docker

clang-3.7:
  stage: build
  script:
  - ./tools/ci/jobs/clang37.sh
  - ./tools/ci/scripts/runtests.sh
  image: ubuntu:16.04
  <<: *job-push
  variables:
    PACKAGES: clang-3.7 libc++-dev 
              make autoconf automake autopoint gettext 
              libxml2-dev libcurl4-gnutls-dev libpng-dev 
              libsdl-gfx1.2-dev libsdl-image1.2-dev libsdl-mixer1.2-dev libsdl-net1.2-dev libsdl-ttf2.0-dev
              gdb valgrind netcat-openbsd procps
  tags:
    - docker

clang-3.7_i386:
  stage: build
  script:
  - ./tools/ci/jobs/clang37.sh
  - ./tools/ci/scripts/runtests.sh
  image: vicamo/ubuntu:xenial-i386
  <<: *job-push
  variables:
    PACKAGES: clang-3.7 libc++-dev 
              make autoconf automake autopoint gettext 
              libxml2-dev libcurl4-gnutls-dev libpng-dev 
              libsdl-gfx1.2-dev libsdl-image1.2-dev libsdl-mixer1.2-dev libsdl-net1.2-dev libsdl-ttf2.0-dev
              gdb valgrind netcat-openbsd procps
  tags:
    - docker

clang-3.8:
  stage: build
  script:
  - ./tools/ci/jobs/clang38.sh
  - ./tools/ci/scripts/runtests.sh
  image: ubuntu:16.04
  <<: *job-push
  variables:
    PACKAGES: clang-3.8 libc++-dev libc++abi-dev 
              make autoconf automake autopoint gettext 
              libxml2-dev libcurl4-gnutls-dev libpng-dev 
              libsdl-gfx1.2-dev libsdl-image1.2-dev libsdl-mixer1.2-dev libsdl-net1.2-dev libsdl-ttf2.0-dev
              gdb valgrind netcat-openbsd procps
  tags:
    - docker

clang-3.8_i386:
  stage: build
  script:
  - ./tools/ci/jobs/clang38.sh
  - ./tools/ci/scripts/runtests.sh
  image: vicamo/ubuntu:xenial-i386
  <<: *job-push
  variables:
    PACKAGES: clang-3.8 libc++-dev libc++abi-dev 
              make autoconf automake autopoint gettext 
              libxml2-dev libcurl4-gnutls-dev libpng-dev 
              libsdl-gfx1.2-dev libsdl-image1.2-dev libsdl-mixer1.2-dev libsdl-net1.2-dev libsdl-ttf2.0-dev
              gdb valgrind netcat-openbsd procps
  tags:
    - docker

.clang-3.9_c++11:
  stage: build
  script:
  - ./tools/ci/jobs/clang39.sh_c++11.sh
  - ./tools/ci/scripts/runtests.sh
  <<: *job-push
  variables:
    PACKAGES: clang-3.9 libc++-dev libc++abi-dev 
              make autoconf automake autopoint gettext 
              libxml2-dev libcurl4-gnutls-dev libpng-dev 
              libsdl-gfx1.2-dev libsdl-image1.2-dev libsdl-mixer1.2-dev libsdl-net1.2-dev libsdl-ttf2.0-dev
              gdb valgrind netcat-openbsd procps

.clang-3.9_c++11_i386:
  stage: build
  script:
  - ./tools/ci/jobs/clang39.sh_c++11.sh
  - ./tools/ci/scripts/runtests.sh
  image: vicamo/debian:sid-i386
  <<: *job-push
  variables:
    PACKAGES: clang-3.9 libc++-dev libc++abi-dev 
              make autoconf automake autopoint gettext 
              libxml2-dev libcurl4-gnutls-dev libpng-dev 
              libsdl-gfx1.2-dev libsdl-image1.2-dev libsdl-mixer1.2-dev libsdl-net1.2-dev libsdl-ttf2.0-dev
              gdb valgrind netcat-openbsd procps
  tags:
    - docker

gcc-7_all_and_unittestsbin:
  stage: build
  script:
  - ./tools/ci/jobs/gcc7_silent.sh --enable-unittestsbin
  - ./tools/ci/scripts/runtests.sh
  <<: *job-push
  variables:
    PACKAGES: gcc-7 g++-7 
              make autoconf automake autopoint gettext 
              libxml2-dev libcurl4-gnutls-dev libpng-dev 
              libsdl-gfx1.2-dev libsdl-image1.2-dev libsdl-mixer1.2-dev libsdl-net1.2-dev libsdl-ttf2.0-dev
              gdb valgrind netcat-openbsd procps

gcc-4.8_c++11:
  stage: build
  script:
  - ./tools/ci/jobs/gcc48_c++11.sh
  - ./tools/ci/scripts/runtests.sh
  image: debian:jessie
  <<: *job-push
  variables:
    PACKAGES: gcc-4.8 g++-4.8 
              make autoconf automake autopoint gettext 
              libxml2-dev libcurl4-gnutls-dev libpng-dev 
              libsdl-gfx1.2-dev libsdl-image1.2-dev libsdl-mixer1.2-dev libsdl-net1.2-dev libsdl-ttf2.0-dev
              gdb valgrind netcat-openbsd procps

gcc-4.9:
  stage: build
  script:
  - ./tools/ci/jobs/gcc49.sh
  - ./tools/ci/scripts/runtests.sh
  image: debian:jessie
  <<: *job-push
  variables:
    PACKAGES: gcc-4.9 g++-4.9 
              make autoconf automake autopoint gettext 
              libxml2-dev libcurl4-gnutls-dev libpng-dev 
              libsdl-gfx1.2-dev libsdl-image1.2-dev libsdl-mixer1.2-dev libsdl-net1.2-dev libsdl-ttf2.0-dev
              gdb valgrind netcat-openbsd procps

gcc-4.9_i386:
  stage: build
  script:
  - ./tools/ci/jobs/gcc49.sh
  - ./tools/ci/scripts/runtests.sh
  image: vicamo/debian:jessie-i386
  <<: *job-push
  variables:
    PACKAGES: gcc-4.9 g++-4.9 
              make autoconf automake autopoint gettext 
              libxml2-dev libcurl4-gnutls-dev libpng-dev 
              libsdl-gfx1.2-dev libsdl-image1.2-dev libsdl-mixer1.2-dev libsdl-net1.2-dev libsdl-ttf2.0-dev
              gdb valgrind netcat-openbsd procps
  tags:
    - docker

gcc-4.9_c++11:
  stage: build
  script:
  - ./tools/ci/jobs/gcc49_c++11.sh
  - ./tools/ci/scripts/runtests.sh
  image: debian:jessie
  <<: *job-push
  variables:
    PACKAGES: gcc-4.9 g++-4.9 
              make autoconf automake autopoint gettext 
              libxml2-dev libcurl4-gnutls-dev libpng-dev 
              libsdl-gfx1.2-dev libsdl-image1.2-dev libsdl-mixer1.2-dev libsdl-net1.2-dev libsdl-ttf2.0-dev
              gdb valgrind netcat-openbsd procps

cmake_gcc-4.9:
  stage: build
  script:
  - ./tools/ci/jobs/cmake_gcc49.sh
  - ./tools/ci/scripts/runtests.sh
  image: debian:jessie
  <<: *job-push
  variables:
    PACKAGES: gcc-4.9 g++-4.9 
              make cmake gettext 
              libxml2-dev libcurl4-gnutls-dev libpng-dev 
              libsdl-gfx1.2-dev libsdl-image1.2-dev libsdl-mixer1.2-dev libsdl-net1.2-dev libsdl-ttf2.0-dev
              gdb valgrind netcat-openbsd procps
  tags:
    - docker

clang-4.0:
  stage: build
  script:
  - ./tools/ci/jobs/clang40.sh
  - ./tools/ci/scripts/runtests.sh
  <<: *job-push
  variables:
    PACKAGES: clang-4.0 libc++-dev libc++abi-dev 
              make autoconf automake autopoint gettext 
              libxml2-dev libcurl4-gnutls-dev libpng-dev 
              libsdl-gfx1.2-dev libsdl-image1.2-dev libsdl-mixer1.2-dev libsdl-net1.2-dev libsdl-ttf2.0-dev
              gdb valgrind netcat-openbsd procps
  tags:
    - docker

gcc-5:
  stage: build
  script:
  - ./tools/ci/jobs/gcc5.sh --enable-werror
  - ./tools/ci/scripts/runtests.sh
  <<: *job-push
  variables:
    PACKAGES: gcc-5 g++-5 
              make autoconf automake autopoint gettext 
              libxml2-dev libcurl4-gnutls-dev libpng-dev 
              libsdl-gfx1.2-dev libsdl-image1.2-dev libsdl-mixer1.2-dev libsdl-net1.2-dev libsdl-ttf2.0-dev
              gdb valgrind netcat-openbsd procps

gcc-5_c++11:
  stage: build
  script:
  - ./tools/ci/jobs/gcc5_c++11.sh
  - ./tools/ci/scripts/runtests.sh
  <<: *job-push
  variables:
    PACKAGES: gcc-5 g++-5 
              make autoconf automake autopoint gettext 
              libxml2-dev libcurl4-gnutls-dev libpng-dev 
              libsdl-gfx1.2-dev libsdl-image1.2-dev libsdl-mixer1.2-dev libsdl-net1.2-dev libsdl-ttf2.0-dev
              gdb valgrind netcat-openbsd procps

gcc-5_sdl2_c++11:
  stage: build
  script:
  - ./tools/ci/jobs/gcc5_sdl2_c++11.sh
  - ./tools/ci/scripts/runtests.sh
  <<: *job-push
  variables:
    PACKAGES: gcc-5 g++-5 
              make autoconf automake autopoint gettext 
              libxml2-dev libcurl4-gnutls-dev libpng-dev 
              libsdl2-gfx-dev libsdl2-image-dev libsdl2-mixer-dev libsdl2-net-dev libsdl2-ttf-dev
              gdb valgrind netcat-openbsd procps

gcc-5_sdl2_c++11_i386:
  stage: build
  script:
  - ./tools/ci/jobs/gcc5_sdl2_c++11.sh
  - ./tools/ci/scripts/runtests.sh
  image: vicamo/debian:sid-i386
  <<: *job-push
  variables:
    PACKAGES: gcc-5 g++-5 
              make autoconf automake autopoint gettext 
              libxml2-dev libcurl4-gnutls-dev libpng-dev 
              libsdl2-gfx-dev libsdl2-image-dev libsdl2-mixer-dev libsdl2-net-dev libsdl2-ttf-dev
              gdb valgrind netcat-openbsd procps
  tags:
    - docker

gcc-snapshot:
  stage: build
  script:
  - ./tools/ci/jobs/gccsnapshot.sh
  - ./tools/ci/scripts/runtests.sh
  <<: *job-push
  variables:
    PACKAGES: gcc-snapshot 
              make autoconf automake autopoint gettext 
              libxml2-dev libcurl4-gnutls-dev libpng-dev 
              libsdl-gfx1.2-dev libsdl-image1.2-dev libsdl-mixer1.2-dev libsdl-net1.2-dev libsdl-ttf2.0-dev
              gdb valgrind netcat-openbsd procps

gcc-snapshot_i386:
  stage: build
  script:
  - ./tools/ci/jobs/gccsnapshot.sh
  - ./tools/ci/scripts/runtests.sh
  image: vicamo/debian:sid-i386
  <<: *job-push
  variables:
    PACKAGES: gcc-snapshot 
              make autoconf automake autopoint gettext 
              libxml2-dev libcurl4-gnutls-dev libpng-dev 
              libsdl-gfx1.2-dev libsdl-image1.2-dev libsdl-mixer1.2-dev libsdl-net1.2-dev libsdl-ttf2.0-dev
              gdb valgrind netcat-openbsd procps
  tags:
    - docker

gcc-snapshot_sdl2:
  stage: build
  script:
  - ./tools/ci/jobs/gccsnapshot_sdl2.sh
  - ./tools/ci/scripts/runtests.sh
  <<: *job-push
  variables:
    PACKAGES: gcc-snapshot 
              make autoconf automake autopoint gettext 
              libxml2-dev libcurl4-gnutls-dev libpng-dev 
              libsdl2-gfx-dev libsdl2-image-dev libsdl2-mixer-dev libsdl2-net-dev libsdl2-ttf-dev
              gdb valgrind netcat-openbsd procps

gcc-snapshot_sdl2_i386:
  stage: build
  script:
  - ./tools/ci/jobs/gccsnapshot_sdl2.sh
  - ./tools/ci/scripts/runtests.sh
  image: vicamo/debian:sid-i386
  <<: *job-push
  variables:
    PACKAGES: gcc-snapshot 
              make autoconf automake autopoint gettext 
              libxml2-dev libcurl4-gnutls-dev libpng-dev 
              libsdl2-gfx-dev libsdl2-image-dev libsdl2-mixer-dev libsdl2-net-dev libsdl2-ttf-dev
              gdb valgrind netcat-openbsd procps
  tags:
    - docker

gcc_without_mumble:
  stage: build
  script:
  - ./tools/ci/jobs/gcc5.sh --without-mumble --enable-werror
  - ./tools/ci/scripts/runtests.sh
  <<: *job-push
  variables:
    PACKAGES: gcc-5 g++-5 
              make autoconf automake autopoint gettext 
              libxml2-dev libcurl4-gnutls-dev libpng-dev 
              libsdl-gfx1.2-dev libsdl-image1.2-dev libsdl-mixer1.2-dev libsdl-net1.2-dev libsdl-ttf2.0-dev
              gdb valgrind netcat-openbsd procps

gcc_with_customnls:
  stage: build
  script:
  - ./tools/ci/jobs/gcc5.sh --enable-customnls --enable-werror
  - ./tools/ci/scripts/runtests.sh
  <<: *job-push
  variables:
    PACKAGES: gcc-5 g++-5 
              make autoconf automake autopoint gettext 
              libxml2-dev libcurl4-gnutls-dev libpng-dev 
              libsdl-gfx1.2-dev libsdl-image1.2-dev libsdl-mixer1.2-dev libsdl-net1.2-dev libsdl-ttf2.0-dev
              gdb valgrind netcat-openbsd procps

gcc_with_customnls_nonls:
  stage: build
  script:
  - ./tools/ci/jobs/gcc5.sh --enable-customnls --disable-nls --enable-werror
  - ./tools/ci/scripts/runtests.sh
  <<: *job-push
  variables:
    PACKAGES: gcc-5 g++-5 
              make autoconf automake autopoint gettext 
              libxml2-dev libcurl4-gnutls-dev libpng-dev 
              libsdl-gfx1.2-dev libsdl-image1.2-dev libsdl-mixer1.2-dev libsdl-net1.2-dev libsdl-ttf2.0-dev
              gdb valgrind netcat-openbsd procps

gcc49_cilkplus:
  stage: build
  script:
  - ./tools/ci/jobs/gcc49.sh --enable-cilkplus
  - ./tools/ci/scripts/runtests.sh
  image: debian:jessie
  <<: *job-push
  variables:
    PACKAGES: gcc-4.9 g++-4.9 
              make autoconf automake autopoint gettext 
              libxml2-dev libcurl4-gnutls-dev libpng-dev 
              libsdl-gfx1.2-dev libsdl-image1.2-dev libsdl-mixer1.2-dev libsdl-net1.2-dev libsdl-ttf2.0-dev
              gdb valgrind netcat-openbsd procps

gcc-5_cilkplus:
  stage: build
  script:
  - ./tools/ci/jobs/gcc5.sh --enable-cilkplus
  - ./tools/ci/scripts/runtests.sh
  <<: *job-push
  variables:
    PACKAGES: gcc-5 g++-5 
              make autoconf automake autopoint gettext 
              libxml2-dev libcurl4-gnutls-dev libpng-dev 
              libsdl-gfx1.2-dev libsdl-image1.2-dev libsdl-mixer1.2-dev libsdl-net1.2-dev libsdl-ttf2.0-dev
              gdb valgrind netcat-openbsd procps

gcc-6_cilkplus:
  stage: build
  script:
  - ./tools/ci/jobs/gcc6.sh --enable-cilkplus
  - ./tools/ci/scripts/runtests.sh
  <<: *job-push
  variables:
    PACKAGES: gcc-6 g++-6 
              make autoconf automake autopoint gettext 
              libxml2-dev libcurl4-gnutls-dev libpng-dev 
              libsdl-gfx1.2-dev libsdl-image1.2-dev libsdl-mixer1.2-dev libsdl-net1.2-dev libsdl-ttf2.0-dev
              gdb valgrind netcat-openbsd procps

gcc-7_cilkplus:
  stage: build
  script:
  - ./tools/ci/jobs/gcc7.sh --enable-cilkplus
  - ./tools/ci/scripts/runtests.sh
  <<: *job-push
  variables:
    PACKAGES: gcc-7 g++-7 
              make autoconf automake autopoint gettext 
              libxml2-dev libcurl4-gnutls-dev libpng-dev 
              libsdl-gfx1.2-dev libsdl-image1.2-dev libsdl-mixer1.2-dev libsdl-net1.2-dev libsdl-ttf2.0-dev
              gdb valgrind netcat-openbsd procps

gcc-7_pugixml:
  stage: build
  script:
  - ./tools/ci/jobs/gcc7.sh --enable-libxml=pugixml
  - ./tools/ci/scripts/runtests.sh
  <<: *job-push
  variables:
    PACKAGES: gcc-7 g++-7 
              make autoconf automake autopoint gettext 
              libpugixml-dev libcurl4-gnutls-dev libpng-dev 
              libsdl-gfx1.2-dev libsdl-image1.2-dev libsdl-mixer1.2-dev libsdl-net1.2-dev libsdl-ttf2.0-dev
              gdb valgrind netcat-openbsd procps

gcc-7_pugixml_i386:
  stage: build
  script:
  - ./tools/ci/jobs/gcc7.sh --enable-libxml=pugixml
  - ./tools/ci/scripts/runtests.sh
  image: vicamo/debian:sid-i386
  <<: *job-push
  variables:
    PACKAGES: gcc-7 g++-7 
              make autoconf automake autopoint gettext 
              libpugixml-dev libcurl4-gnutls-dev libpng-dev 
              libsdl-gfx1.2-dev libsdl-image1.2-dev libsdl-mixer1.2-dev libsdl-net1.2-dev libsdl-ttf2.0-dev
              gdb valgrind netcat-openbsd procps

gcc-7_pugixml_sdl2:
  stage: build
  script:
  - ./tools/ci/jobs/gcc7.sh --with-sdl2 --enable-libxml=pugixml
  - ./tools/ci/scripts/runtests.sh
  <<: *job-push
  variables:
    PACKAGES: gcc-7 g++-7 
              make autoconf automake autopoint gettext 
              libpugixml-dev libcurl4-gnutls-dev libpng-dev 
              libsdl2-gfx-dev libsdl2-image-dev libsdl2-mixer-dev libsdl2-net-dev libsdl2-ttf-dev
              gdb valgrind netcat-openbsd procps

gcc-7_pugixml_sdl2_i386:
  stage: build
  script:
  - ./tools/ci/jobs/gcc7.sh --with-sdl2 --enable-libxml=pugixml
  - ./tools/ci/scripts/runtests.sh
  <<: *job-push
  variables:
    PACKAGES: gcc-7 g++-7 
              make autoconf automake autopoint gettext 
              libpugixml-dev libcurl4-gnutls-dev libpng-dev 
              libsdl2-gfx-dev libsdl2-image-dev libsdl2-mixer-dev libsdl2-net-dev libsdl2-ttf-dev
              gdb valgrind netcat-openbsd procps

gcc_portable:
  stage: build
  script:
  - ./tools/ci/jobs/gcc7.sh --with-opengl --enable-tmwa --enable-portable=yes
  - ./tools/ci/scripts/runtests.sh
  <<: *job-push
  variables:
    PACKAGES: gcc-7 g++-7 
              make autoconf automake autopoint gettext 
              libxml2-dev libcurl4-gnutls-dev libpng-dev 
              libsdl-gfx1.2-dev libsdl-image1.2-dev libsdl-mixer1.2-dev libsdl-net1.2-dev libsdl-ttf2.0-dev
              gdb valgrind netcat-openbsd procps

clang-3.9_sdl2:
  stage: build
  script:
  - ./tools/ci/jobs/clang39_sdl2.sh
  - ./tools/ci/scripts/runtests.sh
  <<: *job-push
  variables:
    PACKAGES: clang-3.9 libc++-dev libc++abi-dev 
              make autoconf automake autopoint gettext 
              libxml2-dev libcurl4-gnutls-dev libpng-dev 
              libsdl2-gfx-dev libsdl2-image-dev libsdl2-mixer-dev libsdl2-net-dev libsdl2-ttf-dev
              gdb valgrind netcat-openbsd procps

gcc-7_no_asserts:
  stage: build
  script:
  - ./tools/ci/jobs/gcc7.sh --disable-asserts
  - ./tools/ci/scripts/runtests.sh
  <<: *job-push
  variables:
    PACKAGES: gcc-7 g++-7 
              make autoconf automake autopoint gettext 
              libxml2-dev libcurl4-gnutls-dev libpng-dev 
              libsdl-gfx1.2-dev libsdl-image1.2-dev libsdl-mixer1.2-dev libsdl-net1.2-dev libsdl-ttf2.0-dev
              gdb valgrind netcat-openbsd procps

gcc-4.8_sdl2:
  stage: build
  script:
  - ./tools/ci/jobs/gcc48.sh --with-sdl2
  - ./tools/ci/scripts/runtests.sh
  image: debian:jessie
  <<: *job-push
  variables:
    PACKAGES: gcc-4.8 g++-4.8 
              make autoconf automake autopoint gettext 
              libxml2-dev libcurl4-gnutls-dev libpng-dev 
              libsdl2-gfx-dev libsdl2-image-dev libsdl2-mixer-dev libsdl2-net-dev libsdl2-ttf-dev
              gdb valgrind netcat-openbsd procps

gcc-4.9_sdl2:
  stage: build
  script:
  - ./tools/ci/jobs/gcc49.sh --with-sdl2
  - ./tools/ci/scripts/runtests.sh
  image: debian:jessie
  <<: *job-push
  variables:
    PACKAGES: gcc-4.9 g++-4.9 
              make autoconf automake autopoint gettext 
              libxml2-dev libcurl4-gnutls-dev libpng-dev 
              libsdl2-gfx-dev libsdl2-image-dev libsdl2-mixer-dev libsdl2-net-dev libsdl2-ttf-dev
              gdb valgrind netcat-openbsd procps

gcc-6_default_i386:
  stage: build
  script:
  - ./tools/ci/jobs/any_compiler.sh --enable-werror
  - ./tools/ci/scripts/runtests.sh
  <<: *job-push
  image: vicamo/debian:sid-i386
  variables:
    LOGFILE: gcc6.log
    CC: gcc-6
    CXX: g++-6
    CXXFLAGS: "-Wall -Wextra"
    PACKAGES: gcc-6 g++-6 
              make autoconf automake autopoint gettext 
              libxml2-dev libcurl4-gnutls-dev libpng-dev 
              libsdl-gfx1.2-dev libsdl-image1.2-dev libsdl-mixer1.2-dev libsdl-net1.2-dev libsdl-ttf2.0-dev
              gdb valgrind netcat-openbsd procps
  tags:
    - docker

gcc-7_default_i386:
  stage: build
  script:
  - ./tools/ci/jobs/any_compiler.sh --enable-werror
  - ./tools/ci/scripts/runtests.sh
  <<: *job-push
  image: vicamo/debian:sid-i386
  variables:
    LOGFILE: gcc7.log
    CC: gcc-7
    CXX: g++-7
    CXXFLAGS: "-Wall -Wextra"
    PACKAGES: gcc-7 g++-7 
              make autoconf automake autopoint gettext 
              libxml2-dev libcurl4-gnutls-dev libpng-dev 
              libsdl-gfx1.2-dev libsdl-image1.2-dev libsdl-mixer1.2-dev libsdl-net1.2-dev libsdl-ttf2.0-dev
              gdb valgrind netcat-openbsd procps
  tags:
    - docker

gcc-5_default:
  stage: build
  script:
  - ./tools/ci/jobs/any_compiler.sh --enable-werror
  - ./tools/ci/scripts/runtests.sh
  <<: *job-push
  variables:
    LOGFILE: gcc5.log
    CC: gcc-5
    CXX: g++-5
    CXXFLAGS: "-Wall -Wextra"
    PACKAGES: gcc-5 g++-5 
              make autoconf automake autopoint gettext 
              libxml2-dev libcurl4-gnutls-dev libpng-dev 
              libsdl-gfx1.2-dev libsdl-image1.2-dev libsdl-mixer1.2-dev libsdl-net1.2-dev libsdl-ttf2.0-dev
              gdb valgrind netcat-openbsd procps

gcc-5_default_i386:
  stage: build
  script:
  - ./tools/ci/jobs/any_compiler.sh --enable-werror
  - ./tools/ci/scripts/runtests.sh
  <<: *job-push
  image: vicamo/debian:sid-i386
  variables:
    LOGFILE: gcc5.log
    CC: gcc-5
    CXX: g++-5
    CXXFLAGS: "-Wall -Wextra"
    PACKAGES: gcc-5 g++-5 
              make autoconf automake autopoint gettext 
              libxml2-dev libcurl4-gnutls-dev libpng-dev 
              libsdl-gfx1.2-dev libsdl-image1.2-dev libsdl-mixer1.2-dev libsdl-net1.2-dev libsdl-ttf2.0-dev
              gdb valgrind netcat-openbsd procps
  tags:
    - docker

gcc-5_h_eathena_tmwa:
  stage: build
  script:
  - ./tools/ci/jobs/gcc5_h.sh -std=c++0x -DDEBUGBUILD -DTMWA_SUPPORT -DENABLE_LIBXML -I/usr/include/SDL
  <<: *job-push
  variables:
    PACKAGES: gcc-5 g++-5 
              make autoconf automake autopoint gettext 
              libxml2-dev libcurl4-gnutls-dev libpng-dev 
              libsdl-gfx1.2-dev libsdl-image1.2-dev libsdl-mixer1.2-dev libsdl-net1.2-dev libsdl-ttf2.0-dev

gcc-5_h_pugi_all:
  stage: build
  script:
  - ./tools/ci/jobs/gcc5_h_pugi.sh -std=c++0x -DDEBUGBUILD -DTMWA_SUPPORT -DENABLE_NLS -DUSE_OPENGL -DENABLE_PUGIXML -I/usr/include/SDL
  <<: *job-push
  variables:
    PACKAGES: gcc-5 g++-5 
              make autoconf automake autopoint gettext 
              libpugixml-dev libcurl4-gnutls-dev libpng-dev 
              libsdl-gfx1.2-dev libsdl-image1.2-dev libsdl-mixer1.2-dev libsdl-net1.2-dev libsdl-ttf2.0-dev

gcc-5_h_tinyxml2_all:
  stage: build
  script:
  - ./tools/ci/jobs/gcc5_h_pugi.sh -std=c++0x -DDEBUGBUILD -DTMWA_SUPPORT -DENABLE_NLS -DUSE_OPENGL -DENABLE_TINYXML2 -I/usr/include/SDL
  <<: *job-push
  variables:
    PACKAGES: gcc-5 g++-5 
              make autoconf automake autopoint gettext 
              libtinyxml2-dev libcurl4-gnutls-dev libpng-dev 
              libsdl-gfx1.2-dev libsdl-image1.2-dev libsdl-mixer1.2-dev libsdl-net1.2-dev libsdl-ttf2.0-dev

gcc-5_h_sdl2:
  stage: build
  script:
  - ./tools/ci/jobs/gcc5_h.sh -std=c++0x -DDEBUGBUILD -DTMWA_SUPPORT -DENABLE_NLS -DUSE_OPENGL -DENABLE_LIBXML -DUSE_SDL2 -I/usr/include/SDL2
  <<: *job-push
  variables:
    PACKAGES: gcc-5 g++-5 
              make autoconf automake autopoint gettext 
              libxml2-dev libcurl4-gnutls-dev libpng-dev 
              libsdl2-gfx-dev libsdl2-image-dev libsdl2-mixer-dev libsdl2-net-dev libsdl2-ttf-dev

gcc-5_h_sdl2_without_opengl:
  stage: build
  script:
  - ./tools/ci/jobs/gcc5_h.sh -std=c++0x -DDEBUGBUILD -DTMWA_SUPPORT -DENABLE_NLS -DENABLE_LIBXML -DUSE_SDL2 -I/usr/include/SDL2
  <<: *job-push
  variables:
    PACKAGES: gcc-5 g++-5 
              make autoconf automake autopoint gettext 
              libxml2-dev libcurl4-gnutls-dev libpng-dev 
              libsdl2-gfx-dev libsdl2-image-dev libsdl2-mixer-dev libsdl2-net-dev libsdl2-ttf-dev

gcc-5_h_all_tests:
  stage: prebuild
  script:
  - ./tools/ci/jobs/gcc5_h.sh -std=c++0x -DDEBUGBUILD -DTMWA_SUPPORT -DENABLE_NLS -DUSE_OPENGL -DENABLE_LIBXML -DUNITTESTS -DUNITTESTS_CATCH -I/usr/include/SDL
  <<: *job-push
  variables:
    PACKAGES: gcc-5 g++-5 
              make autoconf automake autopoint gettext 
              libxml2-dev libcurl4-gnutls-dev libpng-dev 
              libsdl-gfx1.2-dev libsdl-image1.2-dev libsdl-mixer1.2-dev libsdl-net1.2-dev libsdl-ttf2.0-dev

gcc-5_h_all_tests_i386:
  stage: prebuild
  script:
  - ./tools/ci/jobs/gcc5_h.sh -std=c++0x -DDEBUGBUILD -DTMWA_SUPPORT -DENABLE_NLS -DUSE_OPENGL -DENABLE_LIBXML -DUNITTESTS -DUNITTESTS_CATCH -I/usr/include/SDL
  image: vicamo/debian:sid-i386
  <<: *job-push
  variables:
    PACKAGES: gcc-5 g++-5 
              make autoconf automake autopoint gettext 
              libxml2-dev libcurl4-gnutls-dev libpng-dev 
              libsdl-gfx1.2-dev libsdl-image1.2-dev libsdl-mixer1.2-dev libsdl-net1.2-dev libsdl-ttf2.0-dev
  tags:
    - docker

gcc-5_tarball:
  stage: build
  script:
  - ./tools/ci/jobs/gcc5_tarball.sh
  <<: *job-push
  variables:
    PACKAGES: gcc-5 g++-5 
              make autoconf automake autopoint gettext 
              libxml2-dev libcurl4-gnutls-dev libpng-dev 
              libsdl-gfx1.2-dev libsdl-image1.2-dev libsdl-mixer1.2-dev libsdl-net1.2-dev libsdl-ttf2.0-dev

fedora_gcc-snapshot_tests:
  stage: build
  script:
  - ./tools/ci/jobs/gccsnapshot_tests.sh --without-dyecmd --without-manaplusgame
  <<: *job-push
  image: fedora:rawhide
  variables:
    PMUPDATE: "dnf install --refresh -y @development-tools"
    PMINSTALL: "dnf install -y bash tar findutils gcc gcc-c++ make libpng-devel libcurl-devel openssl-devel libxml2-devel gcc SDL-devel SDL_net-devel SDL_image-devel SDL_ttf-devel SDL_mixer-devel SDL_gfx-devel zlib-devel gettext-devel automake autoconf valgrind"
    FLAGS: "gccfedora.sh"
  tags:
  - docker

fedora_gcc-snapshot_sdl2_tests:
  stage: build
  script:
  - ./tools/ci/jobs/gccsnapshot_tests.sh --with-sdl2 --without-dyecmd --without-manaplusgame
  <<: *job-push
  image: fedora:rawhide
  variables:
    PMUPDATE: "dnf install --refresh -y @development-tools"
    PMINSTALL: "dnf install -y bash tar findutils mesa-libGL-devel gcc gcc-c++ make libpng-devel libcurl-devel openssl-devel libxml2-devel gcc SDL2-devel SDL2_net-devel SDL2_image-devel SDL2_ttf-devel SDL2_mixer-devel SDL2_gfx-devel zlib-devel gettext-devel automake autoconf valgrind"
    FLAGS: "gccfedora.sh"
  tags:
  - docker

fedora_gcc-snapshot:
  stage: build
  script:
  - ./tools/ci/jobs/gccsnapshot.sh
  - ./tools/ci/scripts/runtests.sh
  <<: *job-push
  image: fedora:rawhide
  variables:
    PMUPDATE: "dnf install --refresh -y @development-tools"
    PMINSTALL: "dnf install -y nc bash tar findutils gcc gcc-c++ make libpng-devel libcurl-devel openssl-devel libxml2-devel gcc SDL-devel SDL_net-devel SDL_image-devel SDL_ttf-devel SDL_mixer-devel SDL_gfx-devel zlib-devel gettext-devel automake autoconf"
    FLAGS: "gccfedora.sh"
  tags:
  - docker

fedora_gcc-snapshot_sdl2:
  stage: build
  script:
  - ./tools/ci/jobs/gccsnapshot.sh --with-sdl2
  - ./tools/ci/scripts/runtests.sh
  <<: *job-push
  image: fedora:rawhide
  variables:
    PMUPDATE: "dnf install --refresh -y @development-tools"
    PMINSTALL: "dnf install -y nc bash tar findutils mesa-libGL-devel gcc gcc-c++ make libpng-devel libcurl-devel openssl-devel libxml2-devel gcc SDL2-devel SDL2_net-devel SDL2_image-devel SDL2_ttf-devel SDL2_mixer-devel SDL2_gfx-devel zlib-devel gettext-devel automake autoconf"
    FLAGS: "gccfedora.sh"
  tags:
  - docker

# build with other libs versions

gcc-6_zlib_v1.2.3.9:
  stage: build
  script:
  - ./tools/ci/scripts/downloadlib.sh ${LIBNAME} ${LIBVERSION}
  - /usr/local/spm/bin/${LIBNAME}_${LIBVERSION}/runenv.sh ./tools/ci/jobs/gcc6.sh
  - /usr/local/spm/bin/${LIBNAME}_${LIBVERSION}/runenv.sh ./tools/ci/scripts/checkldd.sh src/manaplus
  - /usr/local/spm/bin/${LIBNAME}_${LIBVERSION}/runenv.sh ./tools/ci/scripts/runtests.sh
  <<: *job-push
  variables:
    LIBNAME: zlib
    LIBVERSION: v1.2.3.9
    PACKAGES: gcc-6 g++-6 
              make autoconf automake autopoint gettext 
              libxml2-dev libcurl4-gnutls-dev libpng-dev 
              libsdl-gfx1.2-dev libsdl-image1.2-dev libsdl-mixer1.2-dev libsdl-net1.2-dev libsdl-ttf2.0-dev
              wget unzip gdb valgrind netcat-openbsd procps
    POST_CXXFLAGS: "-Wno-undef"
  tags:
    - docker

gcc-6_zlib_v1.2.6.1:
  stage: build
  script:
  - ./tools/ci/scripts/downloadlib.sh ${LIBNAME} ${LIBVERSION}
  - /usr/local/spm/bin/${LIBNAME}_${LIBVERSION}/runenv.sh ./tools/ci/jobs/gcc6.sh
  - /usr/local/spm/bin/${LIBNAME}_${LIBVERSION}/runenv.sh ./tools/ci/scripts/checkldd.sh src/manaplus
  - /usr/local/spm/bin/${LIBNAME}_${LIBVERSION}/runenv.sh ./tools/ci/scripts/runtests.sh
  <<: *job-push
  variables:
    LIBNAME: zlib
    LIBVERSION: v1.2.6.1
    PACKAGES: gcc-6 g++-6 
              make autoconf automake autopoint gettext 
              libxml2-dev libcurl4-gnutls-dev libpng-dev 
              libsdl-gfx1.2-dev libsdl-image1.2-dev libsdl-mixer1.2-dev libsdl-net1.2-dev libsdl-ttf2.0-dev
              wget unzip gdb valgrind netcat-openbsd procps
    POST_CXXFLAGS: "-Wno-undef"
  tags:
    - docker

gcc-6_zlib_v1.2.9:
  stage: build
  script:
  - ./tools/ci/scripts/downloadlib.sh ${LIBNAME} ${LIBVERSION}
  - /usr/local/spm/bin/${LIBNAME}_${LIBVERSION}/runenv.sh ./tools/ci/jobs/gcc6.sh
  - /usr/local/spm/bin/${LIBNAME}_${LIBVERSION}/runenv.sh ./tools/ci/scripts/checkldd.sh src/manaplus
  - /usr/local/spm/bin/${LIBNAME}_${LIBVERSION}/runenv.sh ./tools/ci/scripts/runtests.sh
  <<: *job-push
  variables:
    LIBNAME: zlib
    LIBVERSION: v1.2.9
    PACKAGES: gcc-6 g++-6 
              make autoconf automake autopoint gettext 
              libxml2-dev libcurl4-gnutls-dev libpng-dev 
              libsdl-gfx1.2-dev libsdl-image1.2-dev libsdl-mixer1.2-dev libsdl-net1.2-dev libsdl-ttf2.0-dev
              wget unzip gdb valgrind netcat-openbsd procps
  tags:
    - docker

gcc-6_zlib_v1.2.10:
  stage: build
  script:
  - ./tools/ci/scripts/downloadlib.sh ${LIBNAME} ${LIBVERSION}
  - /usr/local/spm/bin/${LIBNAME}_${LIBVERSION}/runenv.sh ./tools/ci/jobs/gcc6.sh
  - /usr/local/spm/bin/${LIBNAME}_${LIBVERSION}/runenv.sh ./tools/ci/scripts/checkldd.sh src/manaplus
  - /usr/local/spm/bin/${LIBNAME}_${LIBVERSION}/runenv.sh ./tools/ci/scripts/runtests.sh
  <<: *job-push
  variables:
    LIBNAME: zlib
    LIBVERSION: v1.2.10
    PACKAGES: gcc-6 g++-6 
              make autoconf automake autopoint gettext 
              libxml2-dev libcurl4-gnutls-dev libpng-dev 
              libsdl-gfx1.2-dev libsdl-image1.2-dev libsdl-mixer1.2-dev libsdl-net1.2-dev libsdl-ttf2.0-dev
              wget unzip gdb valgrind netcat-openbsd procps
  tags:
    - docker

gcc-6_zlib_v1.2.11:
  stage: build
  script:
  - ./tools/ci/scripts/downloadlib.sh ${LIBNAME} ${LIBVERSION}
  - /usr/local/spm/bin/${LIBNAME}_${LIBVERSION}/runenv.sh ./tools/ci/jobs/gcc6.sh
  - /usr/local/spm/bin/${LIBNAME}_${LIBVERSION}/runenv.sh ./tools/ci/scripts/checkldd.sh src/manaplus
  - /usr/local/spm/bin/${LIBNAME}_${LIBVERSION}/runenv.sh ./tools/ci/scripts/runtests.sh
  <<: *job-push
  variables:
    LIBNAME: zlib
    LIBVERSION: v1.2.11
    PACKAGES: gcc-6 g++-6 
              make autoconf automake autopoint gettext 
              libxml2-dev libcurl4-gnutls-dev libpng-dev 
              libsdl-gfx1.2-dev libsdl-image1.2-dev libsdl-mixer1.2-dev libsdl-net1.2-dev libsdl-ttf2.0-dev
              wget unzip gdb valgrind netcat-openbsd procps
  tags:
    - docker

gcc-6_zlib_master:
  stage: build
  script:
  - ./tools/ci/scripts/downloadlib.sh ${LIBNAME} ${LIBVERSION}
  - /usr/local/spm/bin/${LIBNAME}_${LIBVERSION}/runenv.sh ./tools/ci/jobs/gcc6.sh
  - /usr/local/spm/bin/${LIBNAME}_${LIBVERSION}/runenv.sh ./tools/ci/scripts/checkldd.sh src/manaplus
  - /usr/local/spm/bin/${LIBNAME}_${LIBVERSION}/runenv.sh ./tools/ci/scripts/runtests.sh
  <<: *job-push
  variables:
    LIBNAME: zlib
    LIBVERSION: master
    PACKAGES: gcc-6 g++-6 
              make autoconf automake autopoint gettext 
              libxml2-dev libcurl4-gnutls-dev libpng-dev 
              libsdl-gfx1.2-dev libsdl-image1.2-dev libsdl-mixer1.2-dev libsdl-net1.2-dev libsdl-ttf2.0-dev
              wget unzip gdb valgrind netcat-openbsd procps
  tags:
    - docker

gcc-6_zlib_develop:
  stage: build
  script:
  - ./tools/ci/scripts/downloadlib.sh ${LIBNAME} ${LIBVERSION}
  - /usr/local/spm/bin/${LIBNAME}_${LIBVERSION}/runenv.sh ./tools/ci/jobs/gcc6.sh
  - /usr/local/spm/bin/${LIBNAME}_${LIBVERSION}/runenv.sh ./tools/ci/scripts/checkldd.sh src/manaplus
  - /usr/local/spm/bin/${LIBNAME}_${LIBVERSION}/runenv.sh ./tools/ci/scripts/runtests.sh
  <<: *job-push
  variables:
    LIBNAME: zlib
    LIBVERSION: develop
    PACKAGES: gcc-6 g++-6 
              make autoconf automake autopoint gettext 
              libxml2-dev libcurl4-gnutls-dev libpng-dev 
              libsdl-gfx1.2-dev libsdl-image1.2-dev libsdl-mixer1.2-dev libsdl-net1.2-dev libsdl-ttf2.0-dev
              wget unzip gdb valgrind netcat-openbsd procps
  tags:
    - docker

# error compilation. cant find SDL.
.gcc-6_zlib_ng_develop:
  stage: build
  script:
  - ./tools/ci/scripts/downloadlib.sh ${LIBNAME} ${LIBVERSION}
  - /usr/local/spm/bin/${LIBNAME}_${LIBVERSION}/runenv.sh ./tools/ci/jobs/gcc6.sh
  - /usr/local/spm/bin/${LIBNAME}_${LIBVERSION}/runenv.sh ./tools/ci/scripts/checkldd.sh src/manaplus
  - /usr/local/spm/bin/${LIBNAME}_${LIBVERSION}/runenv.sh ./tools/ci/scripts/runtests.sh
  <<: *job-push
  variables:
    LIBNAME: zlib_ng
    LIBVERSION: develop
    PACKAGES: gcc-6 g++-6 
              make autoconf automake autopoint gettext 
              libxml2-dev libcurl4-gnutls-dev libpng-dev 
              libsdl-gfx1.2-dev libsdl-image1.2-dev libsdl-mixer1.2-dev libsdl-net1.2-dev libsdl-ttf2.0-dev
              wget unzip gdb valgrind netcat-openbsd procps
  tags:
    - docker

gcc-6_libpng_master:
  stage: build
  script:
  - ./tools/ci/scripts/downloadlib.sh ${LIBNAME} ${LIBVERSION}
  - /usr/local/spm/bin/${LIBNAME}_${LIBVERSION}/runenv.sh ./tools/ci/jobs/gcc6.sh
  - /usr/local/spm/bin/${LIBNAME}_${LIBVERSION}/runenv.sh ./tools/ci/scripts/checkldd.sh src/manaplus
  - /usr/local/spm/bin/${LIBNAME}_${LIBVERSION}/runenv.sh ./tools/ci/scripts/runtests.sh
  <<: *job-push
  variables:
    LIBNAME: libpng
    LIBVERSION: master
    PACKAGES: gcc-6 g++-6 
              make autoconf automake autopoint gettext 
              libxml2-dev libcurl4-gnutls-dev 
              libsdl-gfx1.2-dev libsdl-image1.2-dev libsdl-mixer1.2-dev libsdl-net1.2-dev libsdl-ttf2.0-dev
              wget unzip gdb valgrind netcat-openbsd procps
  tags:
    - docker

gcc-6_libpng_libpng17:
  stage: build
  script:
  - ./tools/ci/scripts/downloadlib.sh ${LIBNAME} ${LIBVERSION}
  - /usr/local/spm/bin/${LIBNAME}_${LIBVERSION}/runenv.sh ./tools/ci/jobs/gcc6.sh
  - /usr/local/spm/bin/${LIBNAME}_${LIBVERSION}/runenv.sh ./tools/ci/scripts/checkldd.sh src/manaplus
  - /usr/local/spm/bin/${LIBNAME}_${LIBVERSION}/runenv.sh ./tools/ci/scripts/runtests.sh
  <<: *job-push
  variables:
    LIBNAME: libpng
    LIBVERSION: libpng17
    PACKAGES: gcc-6 g++-6 
              make autoconf automake autopoint gettext 
              libxml2-dev libcurl4-gnutls-dev 
              libsdl-gfx1.2-dev libsdl-image1.2-dev libsdl-mixer1.2-dev libsdl-net1.2-dev libsdl-ttf2.0-dev
              wget unzip gdb valgrind netcat-openbsd procps
  tags:
    - docker

gcc-6_libpng_libpng16:
  stage: build
  script:
  - ./tools/ci/scripts/downloadlib.sh ${LIBNAME} ${LIBVERSION}
  - /usr/local/spm/bin/${LIBNAME}_${LIBVERSION}/runenv.sh ./tools/ci/jobs/gcc6.sh
  - /usr/local/spm/bin/${LIBNAME}_${LIBVERSION}/runenv.sh ./tools/ci/scripts/checkldd.sh src/manaplus
  - /usr/local/spm/bin/${LIBNAME}_${LIBVERSION}/runenv.sh ./tools/ci/scripts/runtests.sh
  <<: *job-push
  variables:
    LIBNAME: libpng
    LIBVERSION: libpng16
    PACKAGES: gcc-6 g++-6 
              make autoconf automake autopoint gettext 
              libxml2-dev libcurl4-gnutls-dev 
              libsdl-gfx1.2-dev libsdl-image1.2-dev libsdl-mixer1.2-dev libsdl-net1.2-dev libsdl-ttf2.0-dev
              wget unzip gdb valgrind netcat-openbsd procps
  tags:
    - docker

gcc-6_libpng_libpng15:
  stage: build
  script:
  - ./tools/ci/scripts/downloadlib.sh ${LIBNAME} ${LIBVERSION}
  - /usr/local/spm/bin/${LIBNAME}_${LIBVERSION}/runenv.sh ./tools/ci/jobs/gcc6.sh
  - /usr/local/spm/bin/${LIBNAME}_${LIBVERSION}/runenv.sh ./tools/ci/scripts/checkldd.sh src/manaplus
  - /usr/local/spm/bin/${LIBNAME}_${LIBVERSION}/runenv.sh ./tools/ci/scripts/runtests.sh
  <<: *job-push
  variables:
    LIBNAME: libpng
    LIBVERSION: libpng15
    PACKAGES: gcc-6 g++-6 
              make autoconf automake autopoint gettext 
              libxml2-dev libcurl4-gnutls-dev 
              libsdl-gfx1.2-dev libsdl-image1.2-dev libsdl-mixer1.2-dev libsdl-net1.2-dev libsdl-ttf2.0-dev
              wget unzip gdb valgrind netcat-openbsd procps
  tags:
    - docker

gcc-6_libpng_libpng14:
  stage: build
  script:
  - ./tools/ci/scripts/downloadlib.sh ${LIBNAME} ${LIBVERSION}
  - /usr/local/spm/bin/${LIBNAME}_${LIBVERSION}/runenv.sh ./tools/ci/jobs/gcc6.sh
  - /usr/local/spm/bin/${LIBNAME}_${LIBVERSION}/runenv.sh ./tools/ci/scripts/checkldd.sh src/manaplus
  - /usr/local/spm/bin/${LIBNAME}_${LIBVERSION}/runenv.sh ./tools/ci/scripts/runtests.sh
  <<: *job-push
  variables:
    LIBNAME: libpng
    LIBVERSION: libpng14
    PACKAGES: gcc-6 g++-6 
              make autoconf automake autopoint gettext 
              libxml2-dev libcurl4-gnutls-dev 
              libsdl-gfx1.2-dev libsdl-image1.2-dev libsdl-mixer1.2-dev libsdl-net1.2-dev libsdl-ttf2.0-dev
              wget unzip gdb valgrind netcat-openbsd procps
  tags:
    - docker

gcc-6_libpng_libpng12:
  stage: build
  script:
  - ./tools/ci/scripts/downloadlib.sh ${LIBNAME} ${LIBVERSION}
  - /usr/local/spm/bin/${LIBNAME}_${LIBVERSION}/runenv.sh ./tools/ci/jobs/gcc6.sh
  - /usr/local/spm/bin/${LIBNAME}_${LIBVERSION}/runenv.sh ./tools/ci/scripts/checkldd.sh src/manaplus
  - /usr/local/spm/bin/${LIBNAME}_${LIBVERSION}/runenv.sh ./tools/ci/scripts/runtests.sh
  <<: *job-push
  variables:
    LIBNAME: libpng
    LIBVERSION: libpng12
    PACKAGES: gcc-6 g++-6 
              make autoconf automake autopoint gettext 
              libxml2-dev libcurl4-gnutls-dev 
              libsdl-gfx1.2-dev libsdl-image1.2-dev libsdl-mixer1.2-dev libsdl-net1.2-dev libsdl-ttf2.0-dev
              wget unzip gdb valgrind netcat-openbsd procps
  tags:
    - docker

gcc-6_libpng_libpng10:
  stage: build
  script:
  - ./tools/ci/scripts/downloadlib.sh ${LIBNAME} ${LIBVERSION}
  - /usr/local/spm/bin/${LIBNAME}_${LIBVERSION}/runenv.sh ./tools/ci/jobs/gcc6.sh
  - /usr/local/spm/bin/${LIBNAME}_${LIBVERSION}/runenv.sh ./tools/ci/scripts/checkldd.sh src/manaplus
  - /usr/local/spm/bin/${LIBNAME}_${LIBVERSION}/runenv.sh ./tools/ci/scripts/runtests.sh
  <<: *job-push
  variables:
    LIBNAME: libpng
    LIBVERSION: libpng10
    PACKAGES: gcc-6 g++-6 
              make autoconf automake autopoint gettext 
              libxml2-dev libcurl4-gnutls-dev 
              libsdl-gfx1.2-dev libsdl-image1.2-dev libsdl-mixer1.2-dev libsdl-net1.2-dev libsdl-ttf2.0-dev
              wget unzip gdb valgrind netcat-openbsd procps
  tags:
    - docker

gcc-6_libxml2_v2.9.4:
  stage: build
  script:
  - ./tools/ci/scripts/downloadlib.sh ${LIBNAME} ${LIBVERSION}
  - /usr/local/spm/bin/${LIBNAME}_${LIBVERSION}/runenv.sh ./tools/ci/jobs/gcc6.sh
  - /usr/local/spm/bin/${LIBNAME}_${LIBVERSION}/runenv.sh ./tools/ci/scripts/checkldd.sh src/manaplus
  - /usr/local/spm/bin/${LIBNAME}_${LIBVERSION}/runenv.sh ./tools/ci/scripts/runtests.sh
  <<: *job-push
  variables:
    LIBNAME: libxml2
    LIBVERSION: v2.9.4
    PACKAGES: gcc-6 g++-6 
              make autoconf automake autopoint gettext 
              libcurl4-gnutls-dev libpng-dev zlib1g-dev libicu-dev 
              libsdl-gfx1.2-dev libsdl-image1.2-dev libsdl-mixer1.2-dev libsdl-net1.2-dev libsdl-ttf2.0-dev
              wget unzip gdb valgrind netcat-openbsd procps
  tags:
    - docker

# conflict with system libxml2 in gettext
.gcc-6_libxml2_v2.8.0:
  stage: build
  script:
  - ./tools/ci/scripts/downloadlib.sh ${LIBNAME} ${LIBVERSION}
  - /usr/local/spm/bin/${LIBNAME}_${LIBVERSION}/runenv.sh ./tools/ci/jobs/gcc6.sh
  - /usr/local/spm/bin/${LIBNAME}_${LIBVERSION}/runenv.sh ./tools/ci/scripts/checkldd.sh src/manaplus
  - /usr/local/spm/bin/${LIBNAME}_${LIBVERSION}/runenv.sh ./tools/ci/scripts/runtests.sh
  <<: *job-push
  variables:
    LIBNAME: libxml2
    LIBVERSION: v2.8.0
    PACKAGES: gcc-6 g++-6 
              make autoconf automake autopoint gettext 
              libcurl4-gnutls-dev libpng-dev zlib1g-dev libicu-dev 
              libsdl-gfx1.2-dev libsdl-image1.2-dev libsdl-mixer1.2-dev libsdl-net1.2-dev libsdl-ttf2.0-dev
              wget unzip gdb valgrind netcat-openbsd procps
  tags:
    - docker

gcc-6_curl_curl-7_9_8:
  stage: build
  script:
  - ./tools/ci/scripts/downloadlib.sh ${LIBNAME} ${LIBVERSION}
  - /usr/local/spm/bin/${LIBNAME}_${LIBVERSION}/runenv.sh ./tools/ci/jobs/gcc6.sh
  - /usr/local/spm/bin/${LIBNAME}_${LIBVERSION}/runenv.sh ./tools/ci/scripts/checkldd.sh src/manaplus
  - /usr/local/spm/bin/${LIBNAME}_${LIBVERSION}/runenv.sh ./tools/ci/scripts/runtests.sh
  <<: *job-push
  variables:
    LIBNAME: curl
    LIBVERSION: curl-7_9_8
    PACKAGES: gcc-6 g++-6 
              make autoconf automake autopoint gettext 
              libxml2-dev libpng-dev zlib1g-dev 
              libsdl-gfx1.2-dev libsdl-image1.2-dev libsdl-mixer1.2-dev libsdl-net1.2-dev libsdl-ttf2.0-dev
              wget unzip gdb valgrind netcat-openbsd procps
  tags:
    - docker

gcc-6_curl_curl-7_40_0:
  stage: build
  script:
  - ./tools/ci/scripts/downloadlib.sh ${LIBNAME} ${LIBVERSION}
  - /usr/local/spm/bin/${LIBNAME}_${LIBVERSION}/runenv.sh ./tools/ci/jobs/gcc6.sh
  - /usr/local/spm/bin/${LIBNAME}_${LIBVERSION}/runenv.sh ./tools/ci/scripts/checkldd.sh src/manaplus
  - /usr/local/spm/bin/${LIBNAME}_${LIBVERSION}/runenv.sh ./tools/ci/scripts/runtests.sh
  <<: *job-push
  variables:
    LIBNAME: curl
    LIBVERSION: curl-7_40_0
    PACKAGES: gcc-6 g++-6 
              make autoconf automake autopoint gettext 
              libxml2-dev libpng-dev zlib1g-dev 
              libsdl-gfx1.2-dev libsdl-image1.2-dev libsdl-mixer1.2-dev libsdl-net1.2-dev libsdl-ttf2.0-dev
              wget unzip gdb valgrind netcat-openbsd procps
  tags:
    - docker

gcc-6_curl_curl-7_52_1:
  stage: build
  script:
  - ./tools/ci/scripts/downloadlib.sh ${LIBNAME} ${LIBVERSION}
  - /usr/local/spm/bin/${LIBNAME}_${LIBVERSION}/runenv.sh ./tools/ci/jobs/gcc6.sh
  - /usr/local/spm/bin/${LIBNAME}_${LIBVERSION}/runenv.sh ./tools/ci/scripts/checkldd.sh src/manaplus
  - /usr/local/spm/bin/${LIBNAME}_${LIBVERSION}/runenv.sh ./tools/ci/scripts/runtests.sh
  <<: *job-push
  variables:
    LIBNAME: curl
    LIBVERSION: curl-7_52_1
    PACKAGES: gcc-6 g++-6 
              make autoconf automake autopoint gettext 
              libxml2-dev libpng-dev zlib1g-dev 
              libsdl-gfx1.2-dev libsdl-image1.2-dev libsdl-mixer1.2-dev libsdl-net1.2-dev libsdl-ttf2.0-dev
              wget unzip gdb valgrind netcat-openbsd procps
  tags:
    - docker

gcc-6_curl_curl-7_53_1:
  stage: build
  script:
  - ./tools/ci/scripts/downloadlib.sh ${LIBNAME} ${LIBVERSION}
  - /usr/local/spm/bin/${LIBNAME}_${LIBVERSION}/runenv.sh ./tools/ci/jobs/gcc6.sh
  - /usr/local/spm/bin/${LIBNAME}_${LIBVERSION}/runenv.sh ./tools/ci/scripts/checkldd.sh src/manaplus
  - /usr/local/spm/bin/${LIBNAME}_${LIBVERSION}/runenv.sh ./tools/ci/scripts/runtests.sh
  <<: *job-push
  variables:
    LIBNAME: curl
    LIBVERSION: curl-7_53_1
    PACKAGES: gcc-6 g++-6 
              make autoconf automake autopoint gettext 
              libxml2-dev libpng-dev zlib1g-dev 
              libsdl-gfx1.2-dev libsdl-image1.2-dev libsdl-mixer1.2-dev libsdl-net1.2-dev libsdl-ttf2.0-dev
              wget unzip gdb valgrind netcat-openbsd procps
  tags:
    - docker

gcc-6_curl_curl-7_54_1:
  stage: build
  script:
  - ./tools/ci/scripts/downloadlib.sh ${LIBNAME} ${LIBVERSION}
  - /usr/local/spm/bin/${LIBNAME}_${LIBVERSION}/runenv.sh ./tools/ci/jobs/gcc6.sh
  - /usr/local/spm/bin/${LIBNAME}_${LIBVERSION}/runenv.sh ./tools/ci/scripts/checkldd.sh src/manaplus
  - /usr/local/spm/bin/${LIBNAME}_${LIBVERSION}/runenv.sh ./tools/ci/scripts/runtests.sh
  <<: *job-push
  variables:
    LIBNAME: curl
    LIBVERSION: curl-7_54_1
    PACKAGES: gcc-6 g++-6 
              make autoconf automake autopoint gettext 
              libxml2-dev libpng-dev zlib1g-dev 
              libsdl-gfx1.2-dev libsdl-image1.2-dev libsdl-mixer1.2-dev libsdl-net1.2-dev libsdl-ttf2.0-dev
              wget unzip gdb valgrind netcat-openbsd procps
  tags:
    - docker

gcc-6_SDL_SDL-1.2:
  stage: build
  script:
  - ./tools/ci/scripts/downloadlib.sh ${LIBNAME} ${LIBVERSION}
  - echo /usr/local/spm/bin/${LIBNAME}_${LIBVERSION}/runenv.sh ${runenvz}
  - /usr/local/spm/bin/${LIBNAME}_${LIBVERSION}/runenv.sh ${runenvx} ${runenvz} env
  - /usr/local/spm/bin/${LIBNAME}_${LIBVERSION}/runenv.sh ${runenvx} ${runenvz} ./tools/ci/jobs/gcc6.sh
  - /usr/local/spm/bin/${LIBNAME}_${LIBVERSION}/runenv.sh ${runenvx} ${runenvz} ./tools/ci/scripts/checkldd.sh src/manaplus
  - /usr/local/spm/bin/${LIBNAME}_${LIBVERSION}/runenv.sh ${runenvx} ${runenvz} ./tools/ci/scripts/runtests.sh
  <<: *job-push
  variables:
    LIBNAME: SDL
    LIBVERSION: SDL-1.2
    PACKAGES: gcc-6 g++-6 
              make autoconf automake autopoint gettext pkg-config 
              libx11-dev libxext-dev libxt-dev libxv-dev x11proto-core-dev libgl1-mesa-dev libasound2-dev libglu1-mesa-dev libicu-dev
              wget unzip gdb valgrind netcat-openbsd procps
    runenvz: /usr/local/spm/bin/${LIBNAME}_${LIBVERSION}/runzlib_master.sh
    runenvx: /usr/local/spm/bin/${LIBNAME}_${LIBVERSION}/runlibxml2_master.sh
  tags:
    - docker

gcc-6_SDL_default:
  stage: build
  script:
  - ./tools/ci/scripts/downloadlib.sh ${LIBNAME} ${LIBVERSION}
  - /usr/local/spm/bin/${LIBNAME}_${LIBVERSION}/runenv.sh ${runenvx} ${runenvz} ./tools/ci/jobs/gcc6.sh --with-sdl2
  - /usr/local/spm/bin/${LIBNAME}_${LIBVERSION}/runenv.sh ${runenvx} ${runenvz} ./tools/ci/scripts/checkldd.sh src/manaplus
  - /usr/local/spm/bin/${LIBNAME}_${LIBVERSION}/runenv.sh ${runenvx} ${runenvz} ./tools/ci/scripts/runtests.sh
  <<: *job-push
  variables:
    LIBNAME: SDL
    LIBVERSION: default
    PACKAGES: gcc-6 g++-6 
              make autoconf automake autopoint gettext pkg-config 
              libx11-dev libxext-dev libxt-dev libxv-dev x11proto-core-dev libgl1-mesa-dev libasound2-dev libicu-dev
              wget unzip gdb valgrind netcat-openbsd procps
    runenvz: /usr/local/spm/bin/${LIBNAME}_${LIBVERSION}/runzlib_master.sh
    runenvx: /usr/local/spm/bin/${LIBNAME}_${LIBVERSION}/runlibxml2_master.sh
  tags:
    - docker

gcc-6_SDL_SDL-1.2_test:
  stage: build
  script:
  - ./tools/ci/scripts/downloadlib.sh ${LIBNAME} ${LIBVERSION}
  - echo /usr/local/spm/bin/${LIBNAME}_${LIBVERSION}/runenv.sh ${runenvz}
  - /usr/local/spm/bin/${LIBNAME}_${LIBVERSION}/runenv.sh ${runenvx} ${runenvz} env
  - /usr/local/spm/bin/${LIBNAME}_${LIBVERSION}/runenv.sh ${runenvx} ${runenvz} ./tools/ci/jobs/gcc6_tests.sh --without-manaplusgame --without-dyecmd
  - /usr/local/spm/bin/${LIBNAME}_${LIBVERSION}/runenv.sh ${runenvx} ${runenvz} ./tools/ci/scripts/checkldd.sh src/manaplustests
  <<: *job-push
  variables:
    LIBNAME: SDL
    LIBVERSION: SDL-1.2
    PACKAGES: gcc-6 g++-6 
              make autoconf automake autopoint gettext pkg-config 
              libx11-dev libxext-dev libxt-dev libxv-dev x11proto-core-dev libgl1-mesa-dev libasound2-dev libglu1-mesa-dev libicu-dev 
              valgrind 
              wget unzip
    runenvz: /usr/local/spm/bin/${LIBNAME}_${LIBVERSION}/runzlib_master.sh
    runenvx: /usr/local/spm/bin/${LIBNAME}_${LIBVERSION}/runlibxml2_master.sh
  tags:
    - docker

gcc-6_SDL_default_test:
  stage: build
  script:
  - ./tools/ci/scripts/downloadlib.sh ${LIBNAME} ${LIBVERSION}
  - /usr/local/spm/bin/${LIBNAME}_${LIBVERSION}/runenv.sh ${runenvx} ${runenvz} ./tools/ci/jobs/gcc6_tests.sh --with-sdl2 --without-manaplusgame --without-dyecmd
  - /usr/local/spm/bin/${LIBNAME}_${LIBVERSION}/runenv.sh ${runenvx} ${runenvz} ./tools/ci/scripts/checkldd.sh src/manaplustests
  <<: *job-push
  variables:
    LIBNAME: SDL
    LIBVERSION: default
    PACKAGES: gcc-6 g++-6 
              make autoconf automake autopoint gettext pkg-config 
              libx11-dev libxext-dev libxt-dev libxv-dev x11proto-core-dev libgl1-mesa-dev libasound2-dev libicu-dev 
              valgrind 
              wget unzip
    runenvz: /usr/local/spm/bin/${LIBNAME}_${LIBVERSION}/runzlib_master.sh
    runenvx: /usr/local/spm/bin/${LIBNAME}_${LIBVERSION}/runlibxml2_master.sh
  tags:
    - docker

gcc-6_SDL_SDL-1.2_old:
  stage: build
  script:
  - ./tools/ci/scripts/downloadlib.sh ${LIBNAME} ${LIBVERSION}
  - /usr/local/spm/bin/${LIBNAME}_${LIBVERSION}/runenv.sh ${runenvx} ${runenvz} env
  - /usr/local/spm/bin/${LIBNAME}_${LIBVERSION}/runenv.sh ${runenvx} ${runenvz} ./tools/ci/jobs/gcc6.sh
  - /usr/local/spm/bin/${LIBNAME}_${LIBVERSION}/runenv.sh ${runenvx} ${runenvz} ./tools/ci/scripts/checkldd.sh src/manaplus
  - /usr/local/spm/bin/${LIBNAME}_${LIBVERSION}/runenv.sh ${runenvx} ${runenvz} ./tools/ci/scripts/runtests.sh
  <<: *job-push
  variables:
    LIBNAME: SDL
    LIBVERSION: SDL-1.2_old
    PACKAGES: gcc-6 g++-6 
              make autoconf automake autopoint gettext pkg-config 
              libx11-dev libxext-dev libxt-dev libxv-dev x11proto-core-dev libgl1-mesa-dev libasound2-dev libglu1-mesa-dev libicu-dev 
              libjpeg-dev libtiff-dev 
              wget unzip gdb valgrind netcat-openbsd procps
    runenvz: /usr/local/spm/bin/${LIBNAME}_${LIBVERSION}/runzlib_v1.2.5.sh
    runenvx: /usr/local/spm/bin/${LIBNAME}_${LIBVERSION}/runlibxml2_v2.9.1.sh
    POST_CXXFLAGS: "-Wno-undef"
  tags:
    - docker

gcc-6_SDL_default_old:
  stage: build
  script:
  - ./tools/ci/scripts/downloadlib.sh ${LIBNAME} ${LIBVERSION}
  - /usr/local/spm/bin/${LIBNAME}_${LIBVERSION}/runenv.sh ${runenvx} ${runenvz} ./tools/ci/jobs/gcc6.sh --with-sdl2
  - /usr/local/spm/bin/${LIBNAME}_${LIBVERSION}/runenv.sh ${runenvx} ${runenvz} ./tools/ci/scripts/checkldd.sh src/manaplus
  - /usr/local/spm/bin/${LIBNAME}_${LIBVERSION}/runenv.sh ${runenvx} ${runenvz} ./tools/ci/scripts/runtests.sh
  <<: *job-push
  variables:
    LIBNAME: SDL
    LIBVERSION: default_old
    PACKAGES: gcc-6 g++-6 
              make autoconf automake autopoint gettext pkg-config 
              libx11-dev libxext-dev libxt-dev libxv-dev x11proto-core-dev libgl1-mesa-dev libasound2-dev libicu-dev
              libjpeg-dev libtiff-dev
              wget unzip gdb valgrind netcat-openbsd procps
    runenvz: /usr/local/spm/bin/${LIBNAME}_${LIBVERSION}/runzlib_v1.2.5.sh
    runenvx: /usr/local/spm/bin/${LIBNAME}_${LIBVERSION}/runlibxml2_v2.9.1.sh
    POST_CXXFLAGS: "-Wno-undef"
  tags:
    - docker

gcc-6_SDL_SDL-1.2_old_test:
  stage: build
  script:
  - ./tools/ci/scripts/downloadlib.sh ${LIBNAME} ${LIBVERSION}
  - echo /usr/local/spm/bin/${LIBNAME}_${LIBVERSION}/runenv.sh ${runenvz}
  - /usr/local/spm/bin/${LIBNAME}_${LIBVERSION}/runenv.sh ${runenvx} ${runenvz} env
  - /usr/local/spm/bin/${LIBNAME}_${LIBVERSION}/runenv.sh ${runenvx} ${runenvz} ./tools/ci/jobs/gcc6_tests.sh --without-manaplusgame --without-dyecmd
  - /usr/local/spm/bin/${LIBNAME}_${LIBVERSION}/runenv.sh ${runenvx} ${runenvz} ./tools/ci/scripts/checkldd.sh src/manaplustests
  <<: *job-push
  variables:
    LIBNAME: SDL
    LIBVERSION: SDL-1.2_old
    PACKAGES: gcc-6 g++-6 
              make autoconf automake autopoint gettext pkg-config 
              libx11-dev libxext-dev libxt-dev libxv-dev x11proto-core-dev libgl1-mesa-dev libasound2-dev libglu1-mesa-dev libicu-dev 
              valgrind 
              libjpeg-dev libtiff-dev
              wget unzip
    runenvz: /usr/local/spm/bin/${LIBNAME}_${LIBVERSION}/runzlib_v1.2.5.sh
    runenvx: /usr/local/spm/bin/${LIBNAME}_${LIBVERSION}/runlibxml2_v2.9.1.sh
    POST_CXXFLAGS: "-Wno-undef"
  tags:
    - docker

gcc-6_SDL_default_old_test:
  stage: build
  script:
  - ./tools/ci/scripts/downloadlib.sh ${LIBNAME} ${LIBVERSION}
  - /usr/local/spm/bin/${LIBNAME}_${LIBVERSION}/runenv.sh ${runenvx} ${runenvz} ./tools/ci/jobs/gcc6_tests.sh --with-sdl2 --without-manaplusgame --without-dyecmd
  - /usr/local/spm/bin/${LIBNAME}_${LIBVERSION}/runenv.sh ${runenvx} ${runenvz} ./tools/ci/scripts/checkldd.sh src/manaplustests
  <<: *job-push
  variables:
    LIBNAME: SDL
    LIBVERSION: default_old
    PACKAGES: gcc-6 g++-6 
              make autoconf automake autopoint gettext pkg-config 
              libx11-dev libxext-dev libxt-dev libxv-dev x11proto-core-dev libgl1-mesa-dev libasound2-dev libicu-dev 
              valgrind 
              libjpeg-dev libtiff-dev
              wget unzip
    runenvz: /usr/local/spm/bin/${LIBNAME}_${LIBVERSION}/runzlib_v1.2.5.sh
    runenvx: /usr/local/spm/bin/${LIBNAME}_${LIBVERSION}/runlibxml2_v2.9.1.sh
    POST_CXXFLAGS: "-Wno-undef"
  tags:
    - docker

gcc-6_SDL_SDL-1.2_sanitize:
  stage: build
  script:
  - ./tools/ci/scripts/downloadlib.sh ${LIBNAME} ${LIBVERSION}
  - echo /usr/local/spm/bin/${LIBNAME}_${LIBVERSION}/runenv.sh ${runenvz}
  - /usr/local/spm/bin/${LIBNAME}_${LIBVERSION}/runenv.sh ${runenvx} ${runenvz} env
  - /usr/local/spm/bin/${LIBNAME}_${LIBVERSION}/runenv.sh ${runenvx} ${runenvz} ./tools/ci/jobs/gcc6_sanitize.sh
  - /usr/local/spm/bin/${LIBNAME}_${LIBVERSION}/runenv.sh ${runenvx} ${runenvz} ./tools/ci/scripts/runtests.sh
  - ldd ./src/manaplus | grep "libasan"
  <<: *job-push
  variables:
    LIBNAME: SDL
    LIBVERSION: SDL-1.2
    PACKAGES: gcc-6 g++-6 
              make autoconf automake autopoint gettext pkg-config 
              libx11-dev libxext-dev libxt-dev libxv-dev x11proto-core-dev libgl1-mesa-dev libasound2-dev libglu1-mesa-dev libicu-dev 
              valgrind netcat-openbsd
              wget unzip
    runenvz: /usr/local/spm/bin/${LIBNAME}_${LIBVERSION}/runzlib_master.sh
    runenvx: /usr/local/spm/bin/${LIBNAME}_${LIBVERSION}/runlibxml2_master.sh
  tags:
    - docker

gcc-6_SDL_default_sanitize:
  stage: build
  script:
  - ./tools/ci/scripts/downloadlib.sh ${LIBNAME} ${LIBVERSION}
  - /usr/local/spm/bin/${LIBNAME}_${LIBVERSION}/runenv.sh ${runenvx} ${runenvz} ./tools/ci/jobs/gcc6_sanitize.sh --with-sdl2
  - /usr/local/spm/bin/${LIBNAME}_${LIBVERSION}/runenv.sh ${runenvx} ${runenvz} ./tools/ci/scripts/runtests.sh
  - ldd ./src/manaplus | grep "libasan"
  <<: *job-push
  variables:
    LIBNAME: SDL
    LIBVERSION: default
    PACKAGES: gcc-6 g++-6 
              make autoconf automake autopoint gettext pkg-config 
              libx11-dev libxext-dev libxt-dev libxv-dev x11proto-core-dev libgl1-mesa-dev libasound2-dev libicu-dev 
              valgrind netcat-openbsd
              wget unzip
    runenvz: /usr/local/spm/bin/${LIBNAME}_${LIBVERSION}/runzlib_master.sh
    runenvx: /usr/local/spm/bin/${LIBNAME}_${LIBVERSION}/runlibxml2_master.sh
  tags:
    - docker


gcc-6_SDL_SDL-1.2_old_sanitize:
  stage: build
  script:
  - ./tools/ci/scripts/downloadlib.sh ${LIBNAME} ${LIBVERSION}
  - echo /usr/local/spm/bin/${LIBNAME}_${LIBVERSION}/runenv.sh ${runenvz}
  - /usr/local/spm/bin/${LIBNAME}_${LIBVERSION}/runenv.sh ${runenvx} ${runenvz} env
  - /usr/local/spm/bin/${LIBNAME}_${LIBVERSION}/runenv.sh ${runenvx} ${runenvz} ./tools/ci/jobs/gcc6_sanitize.sh
  - /usr/local/spm/bin/${LIBNAME}_${LIBVERSION}/runenv.sh ${runenvx} ${runenvz} ./tools/ci/scripts/runtests.sh
  - ldd ./src/manaplus | grep "libasan"
  <<: *job-push
  variables:
    LIBNAME: SDL
    LIBVERSION: SDL-1.2_old
    PACKAGES: gcc-6 g++-6 
              make autoconf automake autopoint gettext pkg-config 
              libx11-dev libxext-dev libxt-dev libxv-dev x11proto-core-dev libgl1-mesa-dev libasound2-dev libglu1-mesa-dev libicu-dev 
              valgrind netcat-openbsd
              libjpeg-dev libtiff-dev
              wget unzip
    runenvz: /usr/local/spm/bin/${LIBNAME}_${LIBVERSION}/runzlib_v1.2.5.sh
    runenvx: /usr/local/spm/bin/${LIBNAME}_${LIBVERSION}/runlibxml2_v2.9.1.sh
    POST_CXXFLAGS: "-Wno-undef"
  tags:
    - docker

gcc-6_SDL_default_old_sanitize:
  stage: build
  script:
  - ./tools/ci/scripts/downloadlib.sh ${LIBNAME} ${LIBVERSION}
  - /usr/local/spm/bin/${LIBNAME}_${LIBVERSION}/runenv.sh ${runenvx} ${runenvz} ./tools/ci/jobs/gcc6_sanitize.sh --with-sdl2
  - /usr/local/spm/bin/${LIBNAME}_${LIBVERSION}/runenv.sh ${runenvx} ${runenvz} ./tools/ci/scripts/runtests.sh
  - ldd ./src/manaplus | grep "libasan"
  <<: *job-push
  variables:
    LIBNAME: SDL
    LIBVERSION: default_old
    PACKAGES: gcc-6 g++-6 
              make autoconf automake autopoint gettext pkg-config 
              libx11-dev libxext-dev libxt-dev libxv-dev x11proto-core-dev libgl1-mesa-dev libasound2-dev libicu-dev 
              valgrind netcat-openbsd
              libjpeg-dev libtiff-dev
              wget unzip
    runenvz: /usr/local/spm/bin/${LIBNAME}_${LIBVERSION}/runzlib_v1.2.5.sh
    runenvx: /usr/local/spm/bin/${LIBNAME}_${LIBVERSION}/runlibxml2_v2.9.1.sh
    POST_CXXFLAGS: "-Wno-undef"
  tags:
    - docker

clang-tidy:
  stage: build
  script:
  - ./tools/ci/jobs/clang_tidy.sh
  <<: *job-push
  variables:
    PACKAGES: clang clang-tidy 
              libxml2-dev libcurl4-gnutls-dev libpng-dev 
              libsdl-gfx1.2-dev libsdl-image1.2-dev libsdl-mixer1.2-dev libsdl-net1.2-dev libsdl-ttf2.0-dev
    FLAGS: "-readability-implicit-bool-cast,-clang-analyzer-optin.cplusplus.VirtualCall,-performance-unnecessary-value-param,-misc-unused-parameters,-modernize-use-default,-clang-analyzer-alpha.deadcode.UnreachableCode,-clang-analyzer-alpha.cplusplus.VirtualCall,-clang-analyzer-alpha.unix.Stream,-clang-analyzer-alpha.security.taint.TaintPropagation,-clang-analyzer-alpha.core.CastToStruct,-clang-analyzer-alpha.core.BoolAssignment"
    DFLAGS: "-DENABLE_LIBXML -DTMWA_SUPPORT -DDEBUGBUILD"
    INCLUDES: "-I/usr/include -I/usr/include/SDL -I/usr/include/libxml2"
  tags:
    - docker

clang-tidy_sdl2:
  stage: build
  script:
  - ./tools/ci/jobs/clang_tidy.sh
  <<: *job-push
  variables:
    PACKAGES: clang clang-tidy 
              libxml2-dev libcurl4-gnutls-dev libpng-dev 
              libsdl2-gfx-dev libsdl2-image-dev libsdl2-mixer-dev libsdl2-net-dev libsdl2-ttf-dev
    FLAGS: "-readability-implicit-bool-cast,-clang-analyzer-optin.cplusplus.VirtualCall,-performance-unnecessary-value-param,-misc-unused-parameters,-modernize-use-default,-clang-analyzer-alpha.deadcode.UnreachableCode,-clang-analyzer-alpha.cplusplus.VirtualCall,-clang-analyzer-alpha.unix.Stream,-clang-analyzer-alpha.security.taint.TaintPropagation,-clang-analyzer-alpha.core.CastToStruct,-clang-analyzer-alpha.core.BoolAssignment,-cppcoreguidelines-pro-type-cstyle-cast"
    DFLAGS: "-DENABLE_LIBXML -DTMWA_SUPPORT -DDEBUGBUILD -DUSE_SDL2"
    INCLUDES: "-I/usr/include -I/usr/include/SDL2 -I/usr/include/libxml2"
  tags:
    - docker

gcc-7_openglerrors_i386:
  stage: build
  script:
  - ./tools/ci/jobs/gcc7.sh --enable-openglerrors
  - ./tools/ci/scripts/runtests.sh
  <<: *job-push
  image: vicamo/debian:sid-i386
  variables:
    PACKAGES: gcc-7 g++-7 
              make autoconf automake autopoint gettext 
              libxml2-dev libcurl4-gnutls-dev libpng-dev 
              libsdl-gfx1.2-dev libsdl-image1.2-dev libsdl-mixer1.2-dev libsdl-net1.2-dev libsdl-ttf2.0-dev
              gdb valgrind netcat-openbsd procps

gcc-7_openglerrors:
  stage: build
  script:
  - ./tools/ci/jobs/gcc7.sh --enable-openglerrors
  - ./tools/ci/scripts/runtests.sh
  <<: *job-push
  variables:
    PACKAGES: gcc-7 g++-7 
              make autoconf automake autopoint gettext 
              libxml2-dev libcurl4-gnutls-dev libpng-dev 
              libsdl-gfx1.2-dev libsdl-image1.2-dev libsdl-mixer1.2-dev libsdl-net1.2-dev libsdl-ttf2.0-dev
              gdb valgrind netcat-openbsd procps

# deheader default

deheader_gui_windows_cpp:
  stage: build
  script:
  - export FLAGS="-DENABLE_LIBXML -DUSE_OPENGL -DUSE_X11 -DTMWA_SUPPORT"
  - ./tools/ci/jobs/deheader.sh
  - find ./src/gui/windows -type f -name "*.cpp" -exec tools/ci/scripts/deheader.sh {} \;
  - ./tools/ci/jobs/deheader2.sh
  <<: *job-push
  <<: *job-deheader_shared

deheader_sdl2_gui_windows_cpp:
  stage: build
  script:
  - export FLAGS="-DENABLE_LIBXML -DUSE_OPENGL -DUSE_X11 -DTMWA_SUPPORT -DUSE_SDL2"
  - ./tools/ci/jobs/deheader.sh
  - find ./src/gui/windows -type f -name "*.cpp" -exec tools/ci/scripts/deheader.sh {} \;
  - ./tools/ci/jobs/deheader2.sh
  <<: *job-push
  <<: *job-deheader_sdl2_shared

deheader_gui_windows_withoutopengl_cpp:
  stage: build
  script:
  - export FLAGS="-DENABLE_LIBXML -DUSE_X11 -DTMWA_SUPPORT"
  - ./tools/ci/jobs/deheader.sh
  - find ./src/gui/windows -type f -name "*.cpp" -exec tools/ci/scripts/deheader.sh {} \;
  - ./tools/ci/jobs/deheader2.sh
  <<: *job-push
  <<: *job-deheader_shared

deheader_sdl2_gui_windows_withoutopengl_cpp:
  stage: build
  script:
  - export FLAGS="-DENABLE_LIBXML -DUSE_X11 -DTMWA_SUPPORT -DUSE_SDL2"
  - ./tools/ci/jobs/deheader.sh
  - find ./src/gui/windows -type f -name "*.cpp" -exec tools/ci/scripts/deheader.sh {} \;
  - ./tools/ci/jobs/deheader2.sh
  <<: *job-push
  <<: *job-deheader_sdl2_shared

deheader_gui_widgets_cpp:
  stage: build
  script:
  - export FLAGS="-DENABLE_LIBXML -DUSE_OPENGL -DUSE_X11 -DTMWA_SUPPORT"
  - ./tools/ci/jobs/deheader.sh
  - find ./src/gui/widgets -type f -name "*.cpp" -exec tools/ci/scripts/deheader.sh {} \;
  - ./tools/ci/jobs/deheader2.sh
  <<: *job-push
  <<: *job-deheader_shared

deheader_sdl2_gui_widgets_cpp:
  stage: build
  script:
  - export FLAGS="-DENABLE_LIBXML -DUSE_OPENGL -DUSE_X11 -DTMWA_SUPPORT -DUSE_SDL2"
  - ./tools/ci/jobs/deheader.sh
  - find ./src/gui/widgets -type f -name "*.cpp" -exec tools/ci/scripts/deheader.sh {} \;
  - ./tools/ci/jobs/deheader2.sh
  <<: *job-push
  <<: *job-deheader_sdl2_shared

deheader_gui_widgets_withoutopengl_cpp:
  stage: build
  script:
  - export FLAGS="-DENABLE_LIBXML -DUSE_X11 -DTMWA_SUPPORT"
  - ./tools/ci/jobs/deheader.sh
  - find ./src/gui/widgets -type f -name "*.cpp" -exec tools/ci/scripts/deheader.sh {} \;
  - ./tools/ci/jobs/deheader2.sh
  <<: *job-push
  <<: *job-deheader_shared

deheader_sdl2_gui_widgets_withoutopengl_cpp:
  stage: build
  script:
  - export FLAGS="-DENABLE_LIBXML -DUSE_X11 -DTMWA_SUPPORT -DUSE_SDL2"
  - ./tools/ci/jobs/deheader.sh
  - find ./src/gui/widgets -type f -name "*.cpp" -exec tools/ci/scripts/deheader.sh {} \;
  - ./tools/ci/jobs/deheader2.sh
  <<: *job-push
  <<: *job-deheader_sdl2_shared

deheader_gui_models_cpp:
  stage: build
  script:
  - export FLAGS="-DENABLE_LIBXML -DUSE_OPENGL -DUSE_X11 -DTMWA_SUPPORT"
  - ./tools/ci/jobs/deheader.sh
  - find ./src/gui/models -type f -name "*.cpp" -exec tools/ci/scripts/deheader.sh {} \;
  - ./tools/ci/jobs/deheader2.sh
  <<: *job-push
  <<: *job-deheader_shared

deheader_sdl2_gui_models_cpp:
  stage: build
  script:
  - export FLAGS="-DENABLE_LIBXML -DUSE_OPENGL -DUSE_X11 -DTMWA_SUPPORT -DUSE_SDL2"
  - ./tools/ci/jobs/deheader.sh
  - find ./src/gui/models -type f -name "*.cpp" -exec tools/ci/scripts/deheader.sh {} \;
  - ./tools/ci/jobs/deheader2.sh
  <<: *job-push
  <<: *job-deheader_sdl2_shared

deheader_gui_models_withoutopengl_cpp:
  stage: build
  script:
  - export FLAGS="-DENABLE_LIBXML -DUSE_X11 -DTMWA_SUPPORT"
  - ./tools/ci/jobs/deheader.sh
  - find ./src/gui/models -type f -name "*.cpp" -exec tools/ci/scripts/deheader.sh {} \;
  - ./tools/ci/jobs/deheader2.sh
  <<: *job-push
  <<: *job-deheader_shared

deheader_sdl2_gui_models_withoutopengl_cpp:
  stage: build
  script:
  - export FLAGS="-DENABLE_LIBXML -DUSE_X11 -DTMWA_SUPPORT -DUSE_SDL2"
  - ./tools/ci/jobs/deheader.sh
  - find ./src/gui/models -type f -name "*.cpp" -exec tools/ci/scripts/deheader.sh {} \;
  - ./tools/ci/jobs/deheader2.sh
  <<: *job-push
  <<: *job-deheader_sdl2_shared

deheader_actions_cpp:
  stage: build
  script:
  - export FLAGS="-DENABLE_LIBXML -DUSE_OPENGL -DUSE_X11 -DTMWA_SUPPORT"
  - ./tools/ci/jobs/deheader.sh
  - find ./src/actions -type f -name "*.cpp" -exec tools/ci/scripts/deheader.sh {} \;
  - ./tools/ci/jobs/deheader2.sh
  <<: *job-push
  <<: *job-deheader_shared

deheader_actions_h:
  stage: build
  script:
  - export FLAGS="-DENABLE_LIBXML -DUSE_OPENGL -DUSE_X11 -DTMWA_SUPPORT"
  - ./tools/ci/jobs/deheader.sh
  - find ./src/actions -type f -name "*.h" -exec tools/ci/scripts/deheader.sh {} \;
  - ./tools/ci/jobs/deheader2.sh
  <<: *job-push
  <<: *job-deheader_shared

deheader_being_cpp:
  stage: build
  script:
  - export FLAGS="-DENABLE_LIBXML -DUSE_OPENGL -DUSE_X11 -DTMWA_SUPPORT"
  - ./tools/ci/jobs/deheader.sh
  - find ./src/being -type f -name "*.cpp" -exec tools/ci/scripts/deheader.sh {} \;
  - ./tools/ci/jobs/deheader2.sh
  <<: *job-push
  <<: *job-deheader_shared

deheader_being_h:
  stage: build
  script:
  - export FLAGS="-DENABLE_LIBXML -DUSE_OPENGL -DUSE_X11 -DTMWA_SUPPORT"
  - ./tools/ci/jobs/deheader.sh
  - find ./src/being -type f -name "*.h" -exec tools/ci/scripts/deheader.sh {} \;
  - ./tools/ci/jobs/deheader2.sh
  <<: *job-push
  <<: *job-deheader_shared

deheader_const_h:
  stage: build
  script:
  - export FLAGS="-DENABLE_LIBXML -DUSE_OPENGL -DUSE_X11 -DTMWA_SUPPORT"
  - ./tools/ci/jobs/deheader.sh
  - find ./src/const -type f -name "*.h" -exec tools/ci/scripts/deheader.sh {} \;
  - ./tools/ci/jobs/deheader2.sh
  <<: *job-push
  <<: *job-deheader_shared

deheader_fs_cpp:
  stage: build
  script:
  - export FLAGS="-DENABLE_LIBXML -DUSE_OPENGL -DUSE_X11 -DTMWA_SUPPORT"
  - ./tools/ci/jobs/deheader.sh
  - find ./src/fs -type f -name "*.cpp" -exec tools/ci/scripts/deheader.sh {} \;
  - ./tools/ci/jobs/deheader2.sh
  <<: *job-push
  <<: *job-deheader_shared

deheader_fs_h:
  stage: build
  script:
  - export FLAGS="-DENABLE_LIBXML -DUSE_OPENGL -DUSE_X11 -DTMWA_SUPPORT"
  - ./tools/ci/jobs/deheader.sh
  - find ./src/fs -type f -name "*.h" -exec tools/ci/scripts/deheader.sh {} \;
  - ./tools/ci/jobs/deheader2.sh
  <<: *job-push
  <<: *job-deheader_shared

deheader_dyecmd_cpp:
  stage: build
  script:
  - export FLAGS="-DDYECMD -DENABLE_LIBXML -DUSE_OPENGL -DUSE_X11 -DTMWA_SUPPORT"
  - ./tools/ci/jobs/deheader.sh
  - find ./src/dyetool -type f -name "*.cpp" -exec tools/ci/scripts/deheader.sh {} \;
  - ./tools/ci/jobs/deheader2.sh
  <<: *job-push
  <<: *job-deheader_shared

deheader_dyecmd_h:
  stage: build
  script:
  - export FLAGS="-DDYECMD -DENABLE_LIBXML -DUSE_OPENGL -DUSE_X11 -DTMWA_SUPPORT"
  - ./tools/ci/jobs/deheader.sh
  - find ./src/dyetool -type f -name "*.h" -exec tools/ci/scripts/deheader.sh {} \;
  - ./tools/ci/jobs/deheader2.sh
  <<: *job-push
  <<: *job-deheader_shared

deheader_enums_h:
  stage: build
  script:
  - export FLAGS="-DENABLE_LIBXML -DUSE_OPENGL -DUSE_X11 -DTMWA_SUPPORT"
  - ./tools/ci/jobs/deheader.sh
  - find ./src/enums -type f -name "*.h" -exec tools/ci/scripts/deheader.sh {} \;
  - ./tools/ci/jobs/deheader2.sh
  <<: *job-push
  <<: *job-deheader_shared

deheader_events_h:
  stage: build
  script:
  - export FLAGS="-DENABLE_LIBXML -DUSE_OPENGL -DUSE_X11 -DTMWA_SUPPORT"
  - ./tools/ci/jobs/deheader.sh
  - find ./src/events -type f -name "*.h" -exec tools/ci/scripts/deheader.sh {} \;
  - ./tools/ci/jobs/deheader2.sh
  <<: *job-push
  <<: *job-deheader_shared

deheader_gui_fonts_cpp:
  stage: build
  script:
  - export FLAGS="-DENABLE_LIBXML -DUSE_OPENGL -DUSE_X11 -DTMWA_SUPPORT"
  - ./tools/ci/jobs/deheader.sh
  - find ./src/gui/fonts -type f -name "*.cpp" -exec tools/ci/scripts/deheader.sh {} \;
  - ./tools/ci/jobs/deheader2.sh
  <<: *job-push
  <<: *job-deheader_shared

deheader_gui_fonts_h:
  stage: build
  script:
  - export FLAGS="-DENABLE_LIBXML -DUSE_OPENGL -DUSE_X11 -DTMWA_SUPPORT"
  - ./tools/ci/jobs/deheader.sh
  - find ./src/gui/fonts -type f -name "*.h" -exec tools/ci/scripts/deheader.sh {} \;
  - ./tools/ci/jobs/deheader2.sh
  <<: *job-push
  <<: *job-deheader_shared

deheader_gui_models_h:
  stage: build
  script:
  - export FLAGS="-DENABLE_LIBXML -DUSE_OPENGL -DUSE_X11 -DTMWA_SUPPORT"
  - ./tools/ci/jobs/deheader.sh
  - find ./src/gui/models -type f -name "*.h" -exec tools/ci/scripts/deheader.sh {} \;
  - ./tools/ci/jobs/deheader2.sh
  <<: *job-push
  <<: *job-deheader_shared

deheader_gui_popups_cpp:
  stage: build
  script:
  - export FLAGS="-DENABLE_LIBXML -DUSE_OPENGL -DUSE_X11 -DTMWA_SUPPORT"
  - ./tools/ci/jobs/deheader.sh
  - find ./src/gui/popups -type f -name "*.cpp" -exec tools/ci/scripts/deheader.sh {} \;
  - ./tools/ci/jobs/deheader2.sh
  <<: *job-push
  <<: *job-deheader_shared

deheader_gui_popups_h:
  stage: build
  script:
  - export FLAGS="-DENABLE_LIBXML -DUSE_OPENGL -DUSE_X11 -DTMWA_SUPPORT"
  - ./tools/ci/jobs/deheader.sh
  - find ./src/gui/popups -type f -name "*.h" -exec tools/ci/scripts/deheader.sh {} \;
  - ./tools/ci/jobs/deheader2.sh
  <<: *job-push
  <<: *job-deheader_shared

deheader_gui_shortcut_cpp:
  stage: build
  script:
  - export FLAGS="-DENABLE_LIBXML -DUSE_OPENGL -DUSE_X11 -DTMWA_SUPPORT"
  - ./tools/ci/jobs/deheader.sh
  - find ./src/gui/shortcut -type f -name "*.cpp" -exec tools/ci/scripts/deheader.sh {} \;
  - ./tools/ci/jobs/deheader2.sh
  <<: *job-push
  <<: *job-deheader_shared

deheader_gui_shortcut_h:
  stage: build
  script:
  - export FLAGS="-DENABLE_LIBXML -DUSE_OPENGL -DUSE_X11 -DTMWA_SUPPORT"
  - ./tools/ci/jobs/deheader.sh
  - find ./src/gui/shortcut -type f -name "*.h" -exec tools/ci/scripts/deheader.sh {} \;
  - ./tools/ci/jobs/deheader2.sh
  <<: *job-push
  <<: *job-deheader_shared

deheader_gui_widgets_h:
  stage: build
  script:
  - export FLAGS="-DENABLE_LIBXML -DUSE_OPENGL -DUSE_X11 -DTMWA_SUPPORT"
  - ./tools/ci/jobs/deheader.sh
  - find ./src/gui/widgets -type f -name "*.h" -exec tools/ci/scripts/deheader.sh {} \;
  - ./tools/ci/jobs/deheader2.sh
  <<: *job-push
  <<: *job-deheader_shared

deheader_gui_windows_h:
  stage: build
  script:
  - export FLAGS="-DENABLE_LIBXML -DUSE_OPENGL -DUSE_X11 -DTMWA_SUPPORT"
  - ./tools/ci/jobs/deheader.sh
  - find ./src/gui/windows -type f -name "*.h" -exec tools/ci/scripts/deheader.sh {} \;
  - ./tools/ci/jobs/deheader2.sh
  <<: *job-push
  <<: *job-deheader_shared

deheader_gui_cpp:
  stage: build
  script:
  - export FLAGS="-DENABLE_LIBXML -DUSE_OPENGL -DUSE_X11 -DTMWA_SUPPORT"
  - ./tools/ci/jobs/deheader.sh
  - find ./src/gui -type f -name "*.cpp" ! -path "./src/gui/*/*" -exec tools/ci/scripts/deheader.sh {} \;
  - ./tools/ci/jobs/deheader2.sh
  <<: *job-push
  <<: *job-deheader_shared

deheader_gui_h:
  stage: build
  script:
  - export FLAGS="-DENABLE_LIBXML -DUSE_OPENGL -DUSE_X11 -DTMWA_SUPPORT"
  - ./tools/ci/jobs/deheader.sh
  - find ./src/gui -type f -name "*.h" ! -path "./src/gui/*/*" -exec tools/ci/scripts/deheader.sh {} \;
  - ./tools/ci/jobs/deheader2.sh
  <<: *job-push
  <<: *job-deheader_shared

deheader_input_cpp:
  stage: build
  script:
  - export FLAGS="-DENABLE_LIBXML -DUSE_OPENGL -DUSE_X11 -DTMWA_SUPPORT"
  - ./tools/ci/jobs/deheader.sh
  - find ./src/input -type f -name "*.cpp" -exec tools/ci/scripts/deheader.sh {} \;
  - ./tools/ci/jobs/deheader2.sh
  <<: *job-push
  <<: *job-deheader_shared

deheader_input_h:
  stage: build
  script:
  - export FLAGS="-DENABLE_LIBXML -DUSE_OPENGL -DUSE_X11 -DTMWA_SUPPORT"
  - ./tools/ci/jobs/deheader.sh
  - find ./src/input -type f -name "*.h" -exec tools/ci/scripts/deheader.sh {} \;
  - ./tools/ci/jobs/deheader2.sh
  <<: *job-push
  <<: *job-deheader_shared

deheader_listeners_cpp:
  stage: build
  script:
  - export FLAGS="-DENABLE_LIBXML -DUSE_OPENGL -DUSE_X11 -DTMWA_SUPPORT"
  - ./tools/ci/jobs/deheader.sh
  - find ./src/listeners -type f -name "*.cpp" -exec tools/ci/scripts/deheader.sh {} \;
  - ./tools/ci/jobs/deheader2.sh
  <<: *job-push
  <<: *job-deheader_shared

deheader_listeners_h:
  stage: build
  script:
  - export FLAGS="-DENABLE_LIBXML -DUSE_OPENGL -DUSE_X11 -DTMWA_SUPPORT"
  - ./tools/ci/jobs/deheader.sh
  - find ./src/listeners -type f -name "*.h" -exec tools/ci/scripts/deheader.sh {} \;
  - ./tools/ci/jobs/deheader2.sh
  <<: *job-push
  <<: *job-deheader_shared

deheader_net_ea_cpp:
  stage: build
  script:
  - export FLAGS="-DENABLE_LIBXML -DUSE_OPENGL -DUSE_X11 -DTMWA_SUPPORT"
  - ./tools/ci/jobs/deheader.sh
  - find ./src/net/ea -type f -name "*.cpp" -exec tools/ci/scripts/deheader.sh {} \;
  - ./tools/ci/jobs/deheader2.sh
  <<: *job-push
  <<: *job-deheader_shared

deheader_net_ea_h:
  stage: build
  script:
  - export FLAGS="-DENABLE_LIBXML -DUSE_OPENGL -DUSE_X11 -DTMWA_SUPPORT"
  - ./tools/ci/jobs/deheader.sh
  - find ./src/net/ea -type f -name "*.h" -exec tools/ci/scripts/deheader.sh {} \;
  - ./tools/ci/jobs/deheader2.sh
  <<: *job-push
  <<: *job-deheader_shared

deheader_net_eathena_cpp:
  stage: build
  script:
  - export FLAGS="-DENABLE_LIBXML -DUSE_OPENGL -DUSE_X11 -DTMWA_SUPPORT"
  - ./tools/ci/jobs/deheader.sh
  - find ./src/net/eathena -type f -name "*.cpp" -exec tools/ci/scripts/deheader.sh {} \;
  - ./tools/ci/jobs/deheader2.sh
  <<: *job-push
  <<: *job-deheader_shared

deheader_net_eathena_h:
  stage: build
  script:
  - export FLAGS="-DENABLE_LIBXML -DUSE_OPENGL -DUSE_X11 -DTMWA_SUPPORT"
  - ./tools/ci/jobs/deheader.sh
  - find ./src/net/eathena -type f -name "*.h" -exec tools/ci/scripts/deheader.sh {} \;
  - ./tools/ci/jobs/deheader2.sh
  <<: *job-push
  <<: *job-deheader_shared

deheader_net_tmwa_cpp:
  stage: build
  script:
  - export FLAGS="-DENABLE_LIBXML -DUSE_OPENGL -DUSE_X11 -DTMWA_SUPPORT"
  - ./tools/ci/jobs/deheader.sh
  - find ./src/net/tmwa -type f -name "*.cpp" -exec tools/ci/scripts/deheader.sh {} \;
  - ./tools/ci/jobs/deheader2.sh
  <<: *job-push
  <<: *job-deheader_shared

deheader_net_tmwa_h:
  stage: build
  script:
  - export FLAGS="-DENABLE_LIBXML -DUSE_OPENGL -DUSE_X11 -DTMWA_SUPPORT"
  - ./tools/ci/jobs/deheader.sh
  - find ./src/net/tmwa -type f -name "*.h" -exec tools/ci/scripts/deheader.sh {} \;
  - ./tools/ci/jobs/deheader2.sh
  <<: *job-push
  <<: *job-deheader_shared

deheader_net_cpp:
  stage: build
  script:
  - export FLAGS="-DENABLE_LIBXML -DUSE_OPENGL -DUSE_X11 -DTMWA_SUPPORT"
  - ./tools/ci/jobs/deheader.sh
  - find ./src/net -type f -name "*.cpp" ! -path "./src/net/*/*" -exec tools/ci/scripts/deheader.sh {} \;
  - ./tools/ci/jobs/deheader2.sh
  <<: *job-push
  <<: *job-deheader_shared

deheader_net_h:
  stage: build
  script:
  - export FLAGS="-DENABLE_LIBXML -DUSE_OPENGL -DUSE_X11 -DTMWA_SUPPORT"
  - ./tools/ci/jobs/deheader.sh
  - find ./src/net -type f -name "*.h" ! -path "./src/net/*/*" -exec tools/ci/scripts/deheader.sh {} \;
  - ./tools/ci/jobs/deheader2.sh
  <<: *job-push
  <<: *job-deheader_shared

deheader_particle_cpp:
  stage: build
  script:
  - export FLAGS="-DENABLE_LIBXML -DUSE_OPENGL -DUSE_X11 -DTMWA_SUPPORT"
  - ./tools/ci/jobs/deheader.sh
  - find ./src/particle -type f -name "*.cpp" -exec tools/ci/scripts/deheader.sh {} \;
  - ./tools/ci/jobs/deheader2.sh
  <<: *job-push
  <<: *job-deheader_shared

deheader_particle_h:
  stage: build
  script:
  - export FLAGS="-DENABLE_LIBXML -DUSE_OPENGL -DUSE_X11 -DTMWA_SUPPORT"
  - ./tools/ci/jobs/deheader.sh
  - find ./src/particle -type f -name "*.h" -exec tools/ci/scripts/deheader.sh {} \;
  - ./tools/ci/jobs/deheader2.sh
  <<: *job-push
  <<: *job-deheader_shared

deheader_render_cpp:
  stage: build
  script:
  - export FLAGS="-DENABLE_LIBXML -DUSE_OPENGL -DUSE_X11 -DTMWA_SUPPORT"
  - ./tools/ci/jobs/deheader.sh
  - find ./src/render -type f -name "*.cpp" -exec tools/ci/scripts/deheader.sh {} \;
  - ./tools/ci/jobs/deheader2.sh
  <<: *job-push
  <<: *job-deheader_shared

deheader_render_h:
  stage: build
  script:
  - export FLAGS="-DENABLE_LIBXML -DUSE_OPENGL -DUSE_X11 -DTMWA_SUPPORT"
  - ./tools/ci/jobs/deheader.sh
  - find ./src/render -type f -name "*.h" -exec tools/ci/scripts/deheader.sh {} \;
  - ./tools/ci/jobs/deheader2.sh
  <<: *job-push
  <<: *job-deheader_shared

deheader_resources_db_cpp:
  stage: build
  script:
  - export FLAGS="-DENABLE_LIBXML -DUSE_OPENGL -DUSE_X11 -DTMWA_SUPPORT"
  - ./tools/ci/jobs/deheader.sh
  - find ./src/resources/db -type f -name "*.cpp" -exec tools/ci/scripts/deheader.sh {} \;
  - ./tools/ci/jobs/deheader2.sh
  <<: *job-push
  <<: *job-deheader_shared

deheader_resources_db_h:
  stage: build
  script:
  - export FLAGS="-DENABLE_LIBXML -DUSE_OPENGL -DUSE_X11 -DTMWA_SUPPORT"
  - ./tools/ci/jobs/deheader.sh
  - find ./src/resources/db -type f -name "*.h" -exec tools/ci/scripts/deheader.sh {} \;
  - ./tools/ci/jobs/deheader2.sh
  <<: *job-push
  <<: *job-deheader_shared

deheader_resources_map_cpp:
  stage: build
  script:
  - export FLAGS="-DENABLE_LIBXML -DUSE_OPENGL -DUSE_X11 -DTMWA_SUPPORT"
  - ./tools/ci/jobs/deheader.sh
  - find ./src/resources/map -type f -name "*.cpp" -exec tools/ci/scripts/deheader.sh {} \;
  - ./tools/ci/jobs/deheader2.sh
  <<: *job-push
  <<: *job-deheader_shared

deheader_resources_map_h:
  stage: build
  script:
  - export FLAGS="-DENABLE_LIBXML -DUSE_OPENGL -DUSE_X11 -DTMWA_SUPPORT"
  - ./tools/ci/jobs/deheader.sh
  - find ./src/resources/map -type f -name "*.h" -exec tools/ci/scripts/deheader.sh {} \;
  - ./tools/ci/jobs/deheader2.sh
  <<: *job-push
  <<: *job-deheader_shared

deheader_resources_cpp:
  stage: build
  script:
  - export FLAGS="-DENABLE_LIBXML -DUSE_OPENGL -DUSE_X11 -DTMWA_SUPPORT"
  - ./tools/ci/jobs/deheader.sh
  - find ./src/resources -type f -name "*.cpp" ! -path "./src/resources/db/*" ! -path "./src/resources/map/*" -exec tools/ci/scripts/deheader.sh {} \;
  - ./tools/ci/jobs/deheader2.sh
  <<: *job-push
  <<: *job-deheader_shared

deheader_resources_h:
  stage: build
  script:
  - export FLAGS="-DENABLE_LIBXML -DUSE_OPENGL -DUSE_X11 -DTMWA_SUPPORT"
  - ./tools/ci/jobs/deheader.sh
  - find ./src/resources -type f -name "*.h" ! -path "./src/resources/db/*" ! -path "./src/resources/map/*" -exec tools/ci/scripts/deheader.sh {} \;
  - ./tools/ci/jobs/deheader2.sh
  <<: *job-push
  <<: *job-deheader_shared

deheader_test_cpp:
  stage: build
  script:
  - export FLAGS="-DENABLE_LIBXML -DUSE_OPENGL -DUSE_X11 -DTMWA_SUPPORT"
  - ./tools/ci/jobs/deheader.sh
  - find ./src/test -type f -name "*.cpp" -exec tools/ci/scripts/deheader.sh {} \;
  - ./tools/ci/jobs/deheader2.sh
  <<: *job-push
  <<: *job-deheader_shared

deheader_test_h:
  stage: build
  script:
  - export FLAGS="-DENABLE_LIBXML -DUSE_OPENGL -DUSE_X11 -DTMWA_SUPPORT"
  - ./tools/ci/jobs/deheader.sh
  - find ./src/test -type f -name "*.h" -exec tools/ci/scripts/deheader.sh {} \;
  - ./tools/ci/jobs/deheader2.sh
  <<: *job-push
  <<: *job-deheader_shared

deheader_utils_cpp:
  stage: build
  script:
  - export FLAGS="-DENABLE_LIBXML -DUSE_OPENGL -DUSE_X11 -DTMWA_SUPPORT"
  - ./tools/ci/jobs/deheader.sh
  - find ./src/utils -type f -name "*.cpp" -exec tools/ci/scripts/deheader.sh {} \;
  - ./tools/ci/jobs/deheader2.sh
  <<: *job-push
  <<: *job-deheader_shared

deheader_utils_h:
  stage: build
  script:
  - export FLAGS="-DENABLE_LIBXML -DUSE_OPENGL -DUSE_X11 -DTMWA_SUPPORT"
  - ./tools/ci/jobs/deheader.sh
  - find ./src/utils -type f -name "*.h" -exec tools/ci/scripts/deheader.sh {} \;
  - ./tools/ci/jobs/deheader2.sh
  <<: *job-push
  <<: *job-deheader_shared

deheader_cpp:
  stage: build
  script:
  - export FLAGS="-DENABLE_LIBXML -DUSE_OPENGL -DUSE_X11 -DTMWA_SUPPORT"
  - ./tools/ci/jobs/deheader.sh
  - find ./src -type f -name "*.cpp" ! -path "./src/*/*" -exec tools/ci/scripts/deheader.sh {} \;
  - ./tools/ci/jobs/deheader2.sh
  <<: *job-push
  <<: *job-deheader_shared

deheader_h:
  stage: build
  script:
  - export FLAGS="-DENABLE_LIBXML -DUSE_OPENGL -DUSE_X11 -DTMWA_SUPPORT"
  - ./tools/ci/jobs/deheader.sh
  - find ./src -type f -name "*.h" ! -path "./src/*/*" -exec tools/ci/scripts/deheader.sh {} \;
  - ./tools/ci/jobs/deheader2.sh
  <<: *job-push
  <<: *job-deheader_shared

deheader_catch_cc:
  stage: build
  script:
  - export FLAGS="-DUNITTESTS -DUNITTESTS_CATCH -DENABLE_LIBXML -DUSE_OPENGL -DUSE_X11 -DTMWA_SUPPORT"
  - ./tools/ci/jobs/deheader.sh
  - find ./src -type f -name "*.cc" -exec tools/ci/scripts/deheader.sh {} \;
  - ./tools/ci/jobs/deheader2.sh
  <<: *job-push
  <<: *job-deheader_shared

# deheader sdl2

deheader_sdl2_actions_cpp:
  stage: build
  script:
  - export FLAGS="-DENABLE_LIBXML -DUSE_OPENGL -DUSE_X11 -DTMWA_SUPPORT -DUSE_SDL2"
  - ./tools/ci/jobs/deheader.sh
  - find ./src/actions -type f -name "*.cpp" -exec tools/ci/scripts/deheader.sh {} \;
  - ./tools/ci/jobs/deheader2.sh
  <<: *job-push
  <<: *job-deheader_sdl2_shared

deheader_sdl2_actions_h:
  stage: build
  script:
  - export FLAGS="-DENABLE_LIBXML -DUSE_OPENGL -DUSE_X11 -DTMWA_SUPPORT -DUSE_SDL2"
  - ./tools/ci/jobs/deheader.sh
  - find ./src/actions -type f -name "*.h" -exec tools/ci/scripts/deheader.sh {} \;
  - ./tools/ci/jobs/deheader2.sh
  <<: *job-push
  <<: *job-deheader_sdl2_shared

deheader_sdl2_being_cpp:
  stage: build
  script:
  - export FLAGS="-DENABLE_LIBXML -DUSE_OPENGL -DUSE_X11 -DTMWA_SUPPORT -DUSE_SDL2"
  - ./tools/ci/jobs/deheader.sh
  - find ./src/being -type f -name "*.cpp" -exec tools/ci/scripts/deheader.sh {} \;
  - ./tools/ci/jobs/deheader2.sh
  <<: *job-push
  <<: *job-deheader_sdl2_shared

deheader_sdl2_being_h:
  stage: build
  script:
  - export FLAGS="-DENABLE_LIBXML -DUSE_OPENGL -DUSE_X11 -DTMWA_SUPPORT -DUSE_SDL2"
  - ./tools/ci/jobs/deheader.sh
  - find ./src/being -type f -name "*.h" -exec tools/ci/scripts/deheader.sh {} \;
  - ./tools/ci/jobs/deheader2.sh
  <<: *job-push
  <<: *job-deheader_sdl2_shared

deheader_sdl2_const_h:
  stage: build
  script:
  - export FLAGS="-DENABLE_LIBXML -DUSE_OPENGL -DUSE_X11 -DTMWA_SUPPORT -DUSE_SDL2"
  - ./tools/ci/jobs/deheader.sh
  - find ./src/const -type f -name "*.h" -exec tools/ci/scripts/deheader.sh {} \;
  - ./tools/ci/jobs/deheader2.sh
  <<: *job-push
  <<: *job-deheader_sdl2_shared

deheader_sdl2_dyecmd_cpp:
  stage: build
  script:
  - export FLAGS="-DDYECMD -DENABLE_LIBXML -DUSE_OPENGL -DUSE_X11 -DTMWA_SUPPORT -DUSE_SDL2"
  - ./tools/ci/jobs/deheader.sh
  - find ./src/dyetool -type f -name "*.cpp" -exec tools/ci/scripts/deheader.sh {} \;
  - ./tools/ci/jobs/deheader2.sh
  <<: *job-push
  <<: *job-deheader_sdl2_shared

deheader_sdl2_dyecmd_h:
  stage: build
  script:
  - export FLAGS="-DDYECMD -DENABLE_LIBXML -DUSE_OPENGL -DUSE_X11 -DTMWA_SUPPORT -DUSE_SDL2"
  - ./tools/ci/jobs/deheader.sh
  - find ./src/dyetool -type f -name "*.h" -exec tools/ci/scripts/deheader.sh {} \;
  - ./tools/ci/jobs/deheader2.sh
  <<: *job-push
  <<: *job-deheader_sdl2_shared

deheader_sdl2_enums_h:
  stage: build
  script:
  - export FLAGS="-DENABLE_LIBXML -DUSE_OPENGL -DUSE_X11 -DTMWA_SUPPORT -DUSE_SDL2"
  - ./tools/ci/jobs/deheader.sh
  - find ./src/enums -type f -name "*.h" -exec tools/ci/scripts/deheader.sh {} \;
  - ./tools/ci/jobs/deheader2.sh
  <<: *job-push
  <<: *job-deheader_sdl2_shared

deheader_sdl2_events_h:
  stage: build
  script:
  - export FLAGS="-DENABLE_LIBXML -DUSE_OPENGL -DUSE_X11 -DTMWA_SUPPORT -DUSE_SDL2"
  - ./tools/ci/jobs/deheader.sh
  - find ./src/events -type f -name "*.h" -exec tools/ci/scripts/deheader.sh {} \;
  - ./tools/ci/jobs/deheader2.sh
  <<: *job-push
  <<: *job-deheader_sdl2_shared

deheader_sdl2_gui_fonts_cpp:
  stage: build
  script:
  - export FLAGS="-DENABLE_LIBXML -DUSE_OPENGL -DUSE_X11 -DTMWA_SUPPORT -DUSE_SDL2"
  - ./tools/ci/jobs/deheader.sh
  - find ./src/gui/fonts -type f -name "*.cpp" -exec tools/ci/scripts/deheader.sh {} \;
  - ./tools/ci/jobs/deheader2.sh
  <<: *job-push
  <<: *job-deheader_sdl2_shared

deheader_sdl2_gui_fonts_h:
  stage: build
  script:
  - export FLAGS="-DENABLE_LIBXML -DUSE_OPENGL -DUSE_X11 -DTMWA_SUPPORT -DUSE_SDL2"
  - ./tools/ci/jobs/deheader.sh
  - find ./src/gui/fonts -type f -name "*.h" -exec tools/ci/scripts/deheader.sh {} \;
  - ./tools/ci/jobs/deheader2.sh
  <<: *job-push
  <<: *job-deheader_sdl2_shared

deheader_sdl2_gui_models_h:
  stage: build
  script:
  - export FLAGS="-DENABLE_LIBXML -DUSE_OPENGL -DUSE_X11 -DTMWA_SUPPORT -DUSE_SDL2"
  - ./tools/ci/jobs/deheader.sh
  - find ./src/gui/models -type f -name "*.h" -exec tools/ci/scripts/deheader.sh {} \;
  - ./tools/ci/jobs/deheader2.sh
  <<: *job-push
  <<: *job-deheader_sdl2_shared

deheader_sdl2_gui_popups_cpp:
  stage: build
  script:
  - export FLAGS="-DENABLE_LIBXML -DUSE_OPENGL -DUSE_X11 -DTMWA_SUPPORT -DUSE_SDL2"
  - ./tools/ci/jobs/deheader.sh
  - find ./src/gui/popups -type f -name "*.cpp" -exec tools/ci/scripts/deheader.sh {} \;
  - ./tools/ci/jobs/deheader2.sh
  <<: *job-push
  <<: *job-deheader_sdl2_shared

deheader_sdl2_gui_popups_h:
  stage: build
  script:
  - export FLAGS="-DENABLE_LIBXML -DUSE_OPENGL -DUSE_X11 -DTMWA_SUPPORT -DUSE_SDL2"
  - ./tools/ci/jobs/deheader.sh
  - find ./src/gui/popups -type f -name "*.h" -exec tools/ci/scripts/deheader.sh {} \;
  - ./tools/ci/jobs/deheader2.sh
  <<: *job-push
  <<: *job-deheader_sdl2_shared

deheader_sdl2_gui_shortcut_cpp:
  stage: build
  script:
  - export FLAGS="-DENABLE_LIBXML -DUSE_OPENGL -DUSE_X11 -DTMWA_SUPPORT -DUSE_SDL2"
  - ./tools/ci/jobs/deheader.sh
  - find ./src/gui/shortcut -type f -name "*.cpp" -exec tools/ci/scripts/deheader.sh {} \;
  - ./tools/ci/jobs/deheader2.sh
  <<: *job-push
  <<: *job-deheader_sdl2_shared

deheader_sdl2_gui_shortcut_h:
  stage: build
  script:
  - export FLAGS="-DENABLE_LIBXML -DUSE_OPENGL -DUSE_X11 -DTMWA_SUPPORT -DUSE_SDL2"
  - ./tools/ci/jobs/deheader.sh
  - find ./src/gui/shortcut -type f -name "*.h" -exec tools/ci/scripts/deheader.sh {} \;
  - ./tools/ci/jobs/deheader2.sh
  <<: *job-push
  <<: *job-deheader_sdl2_shared

deheader_sdl2_gui_widgets_h:
  stage: build
  script:
  - export FLAGS="-DENABLE_LIBXML -DUSE_OPENGL -DUSE_X11 -DTMWA_SUPPORT -DUSE_SDL2"
  - ./tools/ci/jobs/deheader.sh
  - find ./src/gui/widgets -type f -name "*.h" -exec tools/ci/scripts/deheader.sh {} \;
  - ./tools/ci/jobs/deheader2.sh
  <<: *job-push
  <<: *job-deheader_sdl2_shared

deheader_sdl2_gui_windows_h:
  stage: build
  script:
  - export FLAGS="-DENABLE_LIBXML -DUSE_OPENGL -DUSE_X11 -DTMWA_SUPPORT -DUSE_SDL2"
  - ./tools/ci/jobs/deheader.sh
  - find ./src/gui/windows -type f -name "*.h" -exec tools/ci/scripts/deheader.sh {} \;
  - ./tools/ci/jobs/deheader2.sh
  <<: *job-push
  <<: *job-deheader_sdl2_shared

deheader_sdl2_gui_cpp:
  stage: build
  script:
  - export FLAGS="-DENABLE_LIBXML -DUSE_OPENGL -DUSE_X11 -DTMWA_SUPPORT -DUSE_SDL2"
  - ./tools/ci/jobs/deheader.sh
  - find ./src/gui -type f -name "*.cpp" ! -path "./src/gui/*/*" -exec tools/ci/scripts/deheader.sh {} \;
  - ./tools/ci/jobs/deheader2.sh
  <<: *job-push
  <<: *job-deheader_sdl2_shared

deheader_sdl2_gui_h:
  stage: build
  script:
  - export FLAGS="-DENABLE_LIBXML -DUSE_OPENGL -DUSE_X11 -DTMWA_SUPPORT -DUSE_SDL2"
  - ./tools/ci/jobs/deheader.sh
  - find ./src/gui -type f -name "*.h" ! -path "./src/gui/*/*" -exec tools/ci/scripts/deheader.sh {} \;
  - ./tools/ci/jobs/deheader2.sh
  <<: *job-push
  <<: *job-deheader_sdl2_shared

deheader_sdl2_input_cpp:
  stage: build
  script:
  - export FLAGS="-DENABLE_LIBXML -DUSE_OPENGL -DUSE_X11 -DTMWA_SUPPORT -DUSE_SDL2"
  - ./tools/ci/jobs/deheader.sh
  - find ./src/input -type f -name "*.cpp" -exec tools/ci/scripts/deheader.sh {} \;
  - ./tools/ci/jobs/deheader2.sh
  <<: *job-push
  <<: *job-deheader_sdl2_shared

deheader_sdl2_input_h:
  stage: build
  script:
  - export FLAGS="-DENABLE_LIBXML -DUSE_OPENGL -DUSE_X11 -DTMWA_SUPPORT -DUSE_SDL2"
  - ./tools/ci/jobs/deheader.sh
  - find ./src/input -type f -name "*.h" -exec tools/ci/scripts/deheader.sh {} \;
  - ./tools/ci/jobs/deheader2.sh
  <<: *job-push
  <<: *job-deheader_sdl2_shared

deheader_sdl2_listeners_cpp:
  stage: build
  script:
  - export FLAGS="-DENABLE_LIBXML -DUSE_OPENGL -DUSE_X11 -DTMWA_SUPPORT -DUSE_SDL2"
  - ./tools/ci/jobs/deheader.sh
  - find ./src/listeners -type f -name "*.cpp" -exec tools/ci/scripts/deheader.sh {} \;
  - ./tools/ci/jobs/deheader2.sh
  <<: *job-push
  <<: *job-deheader_sdl2_shared

deheader_sdl2_listeners_h:
  stage: build
  script:
  - export FLAGS="-DENABLE_LIBXML -DUSE_OPENGL -DUSE_X11 -DTMWA_SUPPORT -DUSE_SDL2"
  - ./tools/ci/jobs/deheader.sh
  - find ./src/listeners -type f -name "*.h" -exec tools/ci/scripts/deheader.sh {} \;
  - ./tools/ci/jobs/deheader2.sh
  <<: *job-push
  <<: *job-deheader_sdl2_shared

deheader_sdl2_net_ea_cpp:
  stage: build
  script:
  - export FLAGS="-DENABLE_LIBXML -DUSE_OPENGL -DUSE_X11 -DTMWA_SUPPORT -DUSE_SDL2"
  - ./tools/ci/jobs/deheader.sh
  - find ./src/net/ea -type f -name "*.cpp" -exec tools/ci/scripts/deheader.sh {} \;
  - ./tools/ci/jobs/deheader2.sh
  <<: *job-push
  <<: *job-deheader_sdl2_shared

deheader_sdl2_net_ea_h:
  stage: build
  script:
  - export FLAGS="-DENABLE_LIBXML -DUSE_OPENGL -DUSE_X11 -DTMWA_SUPPORT -DUSE_SDL2"
  - ./tools/ci/jobs/deheader.sh
  - find ./src/net/ea -type f -name "*.h" -exec tools/ci/scripts/deheader.sh {} \;
  - ./tools/ci/jobs/deheader2.sh
  <<: *job-push
  <<: *job-deheader_sdl2_shared

deheader_sdl2_net_eathena_cpp:
  stage: build
  script:
  - export FLAGS="-DENABLE_LIBXML -DUSE_OPENGL -DUSE_X11 -DTMWA_SUPPORT -DUSE_SDL2"
  - ./tools/ci/jobs/deheader.sh
  - find ./src/net/eathena -type f -name "*.cpp" -exec tools/ci/scripts/deheader.sh {} \;
  - ./tools/ci/jobs/deheader2.sh
  <<: *job-push
  <<: *job-deheader_sdl2_shared

deheader_sdl2_net_eathena_h:
  stage: build
  script:
  - export FLAGS="-DENABLE_LIBXML -DUSE_OPENGL -DUSE_X11 -DTMWA_SUPPORT -DUSE_SDL2"
  - ./tools/ci/jobs/deheader.sh
  - find ./src/net/eathena -type f -name "*.h" -exec tools/ci/scripts/deheader.sh {} \;
  - ./tools/ci/jobs/deheader2.sh
  <<: *job-push
  <<: *job-deheader_sdl2_shared

deheader_sdl2_net_tmwa_cpp:
  stage: build
  script:
  - export FLAGS="-DENABLE_LIBXML -DUSE_OPENGL -DUSE_X11 -DTMWA_SUPPORT -DUSE_SDL2"
  - ./tools/ci/jobs/deheader.sh
  - find ./src/net/tmwa -type f -name "*.cpp" -exec tools/ci/scripts/deheader.sh {} \;
  - ./tools/ci/jobs/deheader2.sh
  <<: *job-push
  <<: *job-deheader_sdl2_shared

deheader_sdl2_net_tmwa_h:
  stage: build
  script:
  - export FLAGS="-DENABLE_LIBXML -DUSE_OPENGL -DUSE_X11 -DTMWA_SUPPORT -DUSE_SDL2"
  - ./tools/ci/jobs/deheader.sh
  - find ./src/net/tmwa -type f -name "*.h" -exec tools/ci/scripts/deheader.sh {} \;
  - ./tools/ci/jobs/deheader2.sh
  <<: *job-push
  <<: *job-deheader_sdl2_shared

deheader_sdl2_net_cpp:
  stage: build
  script:
  - export FLAGS="-DENABLE_LIBXML -DUSE_OPENGL -DUSE_X11 -DTMWA_SUPPORT -DUSE_SDL2"
  - ./tools/ci/jobs/deheader.sh
  - find ./src/net -type f -name "*.cpp" ! -path "./src/net/*/*" -exec tools/ci/scripts/deheader.sh {} \;
  - ./tools/ci/jobs/deheader2.sh
  <<: *job-push
  <<: *job-deheader_sdl2_shared

deheader_sdl2_net_h:
  stage: build
  script:
  - export FLAGS="-DENABLE_LIBXML -DUSE_OPENGL -DUSE_X11 -DTMWA_SUPPORT -DUSE_SDL2"
  - ./tools/ci/jobs/deheader.sh
  - find ./src/net -type f -name "*.h" ! -path "./src/net/*/*" -exec tools/ci/scripts/deheader.sh {} \;
  - ./tools/ci/jobs/deheader2.sh
  <<: *job-push
  <<: *job-deheader_sdl2_shared

deheader_sdl2_particle_cpp:
  stage: build
  script:
  - export FLAGS="-DENABLE_LIBXML -DUSE_OPENGL -DUSE_X11 -DTMWA_SUPPORT -DUSE_SDL2"
  - ./tools/ci/jobs/deheader.sh
  - find ./src/particle -type f -name "*.cpp" -exec tools/ci/scripts/deheader.sh {} \;
  - ./tools/ci/jobs/deheader2.sh
  <<: *job-push
  <<: *job-deheader_sdl2_shared

deheader_sdl2_particle_h:
  stage: build
  script:
  - export FLAGS="-DENABLE_LIBXML -DUSE_OPENGL -DUSE_X11 -DTMWA_SUPPORT -DUSE_SDL2"
  - ./tools/ci/jobs/deheader.sh
  - find ./src/particle -type f -name "*.h" -exec tools/ci/scripts/deheader.sh {} \;
  - ./tools/ci/jobs/deheader2.sh
  <<: *job-push
  <<: *job-deheader_sdl2_shared

deheader_sdl2_render_cpp:
  stage: build
  script:
  - export FLAGS="-DENABLE_LIBXML -DUSE_OPENGL -DUSE_X11 -DTMWA_SUPPORT -DUSE_SDL2"
  - ./tools/ci/jobs/deheader.sh
  - find ./src/render -type f -name "*.cpp" -exec tools/ci/scripts/deheader.sh {} \;
  - ./tools/ci/jobs/deheader2.sh
  <<: *job-push
  <<: *job-deheader_sdl2_shared

deheader_sdl2_render_h:
  stage: build
  script:
  - export FLAGS="-DENABLE_LIBXML -DUSE_OPENGL -DUSE_X11 -DTMWA_SUPPORT -DUSE_SDL2"
  - ./tools/ci/jobs/deheader.sh
  - find ./src/render -type f -name "*.h" -exec tools/ci/scripts/deheader.sh {} \;
  - ./tools/ci/jobs/deheader2.sh
  <<: *job-push
  <<: *job-deheader_sdl2_shared

deheader_sdl2_resources_db_cpp:
  stage: build
  script:
  - export FLAGS="-DENABLE_LIBXML -DUSE_OPENGL -DUSE_X11 -DTMWA_SUPPORT -DUSE_SDL2"
  - ./tools/ci/jobs/deheader.sh
  - find ./src/resources/db -type f -name "*.cpp" -exec tools/ci/scripts/deheader.sh {} \;
  - ./tools/ci/jobs/deheader2.sh
  <<: *job-push
  <<: *job-deheader_sdl2_shared

deheader_sdl2_resources_db_h:
  stage: build
  script:
  - export FLAGS="-DENABLE_LIBXML -DUSE_OPENGL -DUSE_X11 -DTMWA_SUPPORT -DUSE_SDL2"
  - ./tools/ci/jobs/deheader.sh
  - find ./src/resources/db -type f -name "*.h" -exec tools/ci/scripts/deheader.sh {} \;
  - ./tools/ci/jobs/deheader2.sh
  <<: *job-push
  <<: *job-deheader_sdl2_shared

deheader_sdl2_resources_map_cpp:
  stage: build
  script:
  - export FLAGS="-DENABLE_LIBXML -DUSE_OPENGL -DUSE_X11 -DTMWA_SUPPORT -DUSE_SDL2"
  - ./tools/ci/jobs/deheader.sh
  - find ./src/resources/map -type f -name "*.cpp" -exec tools/ci/scripts/deheader.sh {} \;
  - ./tools/ci/jobs/deheader2.sh
  <<: *job-push
  <<: *job-deheader_sdl2_shared

deheader_sdl2_resources_map_h:
  stage: build
  script:
  - export FLAGS="-DENABLE_LIBXML -DUSE_OPENGL -DUSE_X11 -DTMWA_SUPPORT -DUSE_SDL2"
  - ./tools/ci/jobs/deheader.sh
  - find ./src/resources/map -type f -name "*.h" -exec tools/ci/scripts/deheader.sh {} \;
  - ./tools/ci/jobs/deheader2.sh
  <<: *job-push
  <<: *job-deheader_sdl2_shared

deheader_sdl2_resources_cpp:
  stage: build
  script:
  - export FLAGS="-DENABLE_LIBXML -DUSE_OPENGL -DUSE_X11 -DTMWA_SUPPORT -DUSE_SDL2"
  - ./tools/ci/jobs/deheader.sh
  - find ./src/resources -type f -name "*.cpp" ! -path "./src/resources/db/*" ! -path "./src/resources/map/*" -exec tools/ci/scripts/deheader.sh {} \;
  - ./tools/ci/jobs/deheader2.sh
  <<: *job-push
  <<: *job-deheader_sdl2_shared

deheader_sdl2_resources_h:
  stage: build
  script:
  - export FLAGS="-DENABLE_LIBXML -DUSE_OPENGL -DUSE_X11 -DTMWA_SUPPORT -DUSE_SDL2"
  - ./tools/ci/jobs/deheader.sh
  - find ./src/resources -type f -name "*.h" ! -path "./src/resources/db/*" ! -path "./src/resources/map/*" -exec tools/ci/scripts/deheader.sh {} \;
  - ./tools/ci/jobs/deheader2.sh
  <<: *job-push
  <<: *job-deheader_sdl2_shared

deheader_sdl2_test_cpp:
  stage: build
  script:
  - export FLAGS="-DENABLE_LIBXML -DUSE_OPENGL -DUSE_X11 -DTMWA_SUPPORT -DUSE_SDL2"
  - ./tools/ci/jobs/deheader.sh
  - find ./src/test -type f -name "*.cpp" -exec tools/ci/scripts/deheader.sh {} \;
  - ./tools/ci/jobs/deheader2.sh
  <<: *job-push
  <<: *job-deheader_sdl2_shared

deheader_sdl2_test_h:
  stage: build
  script:
  - export FLAGS="-DENABLE_LIBXML -DUSE_OPENGL -DUSE_X11 -DTMWA_SUPPORT -DUSE_SDL2"
  - ./tools/ci/jobs/deheader.sh
  - find ./src/test -type f -name "*.h" -exec tools/ci/scripts/deheader.sh {} \;
  - ./tools/ci/jobs/deheader2.sh
  <<: *job-push
  <<: *job-deheader_sdl2_shared

deheader_sdl2_utils_cpp:
  stage: build
  script:
  - export FLAGS="-DENABLE_LIBXML -DUSE_OPENGL -DUSE_X11 -DTMWA_SUPPORT -DUSE_SDL2"
  - ./tools/ci/jobs/deheader.sh
  - find ./src/utils -type f -name "*.cpp" -exec tools/ci/scripts/deheader.sh {} \;
  - ./tools/ci/jobs/deheader2.sh
  <<: *job-push
  <<: *job-deheader_sdl2_shared

deheader_sdl2_utils_h:
  stage: build
  script:
  - export FLAGS="-DENABLE_LIBXML -DUSE_OPENGL -DUSE_X11 -DTMWA_SUPPORT -DUSE_SDL2"
  - ./tools/ci/jobs/deheader.sh
  - find ./src/utils -type f -name "*.h" -exec tools/ci/scripts/deheader.sh {} \;
  - ./tools/ci/jobs/deheader2.sh
  <<: *job-push
  <<: *job-deheader_sdl2_shared

deheader_sdl2_cpp:
  stage: build
  script:
  - export FLAGS="-DENABLE_LIBXML -DUSE_OPENGL -DUSE_X11 -DTMWA_SUPPORT -DUSE_SDL2"
  - ./tools/ci/jobs/deheader.sh
  - find ./src -type f -name "*.cpp" ! -path "./src/*/*" -exec tools/ci/scripts/deheader.sh {} \;
  - ./tools/ci/jobs/deheader2.sh
  <<: *job-push
  <<: *job-deheader_sdl2_shared

deheader_sdl2_h:
  stage: build
  script:
  - export FLAGS="-DENABLE_LIBXML -DUSE_OPENGL -DUSE_X11 -DTMWA_SUPPORT -DUSE_SDL2"
  - ./tools/ci/jobs/deheader.sh
  - find ./src -type f -name "*.h" ! -path "./src/*/*" -exec tools/ci/scripts/deheader.sh {} \;
  - ./tools/ci/jobs/deheader2.sh
  <<: *job-push
  <<: *job-deheader_sdl2_shared

deheader_sdl2_catch_cc:
  stage: build
  script:
  - export FLAGS="-DUNITTESTS -DUNITTESTS_CATCH -DENABLE_LIBXML -DUSE_OPENGL -DUSE_X11 -DTMWA_SUPPORT -DUSE_SDL2"
  - ./tools/ci/jobs/deheader.sh
  - find ./src -type f -name "*.cc" -exec tools/ci/scripts/deheader.sh {} \;
  - ./tools/ci/jobs/deheader2.sh
  <<: *job-push
  <<: *job-deheader_sdl2_shared

# dehedeart without opengl

deheader_actions_withoutopengl_cpp:
  stage: build
  script:
  - export FLAGS="-DENABLE_LIBXML -DUSE_X11 -DTMWA_SUPPORT"
  - ./tools/ci/jobs/deheader.sh
  - find ./src/actions -type f -name "*.cpp" -exec tools/ci/scripts/deheader.sh {} \;
  - ./tools/ci/jobs/deheader2.sh
  <<: *job-push
  <<: *job-deheader_shared

deheader_actions_withoutopengl_h:
  stage: build
  script:
  - export FLAGS="-DENABLE_LIBXML -DUSE_X11 -DTMWA_SUPPORT"
  - ./tools/ci/jobs/deheader.sh
  - find ./src/actions -type f -name "*.h" -exec tools/ci/scripts/deheader.sh {} \;
  - ./tools/ci/jobs/deheader2.sh
  <<: *job-push
  <<: *job-deheader_shared

deheader_being_withoutopengl_cpp:
  stage: build
  script:
  - export FLAGS="-DENABLE_LIBXML -DUSE_X11 -DTMWA_SUPPORT"
  - ./tools/ci/jobs/deheader.sh
  - find ./src/being -type f -name "*.cpp" -exec tools/ci/scripts/deheader.sh {} \;
  - ./tools/ci/jobs/deheader2.sh
  <<: *job-push
  <<: *job-deheader_shared

deheader_being_withoutopengl_h:
  stage: build
  script:
  - export FLAGS="-DENABLE_LIBXML -DUSE_X11 -DTMWA_SUPPORT"
  - ./tools/ci/jobs/deheader.sh
  - find ./src/being -type f -name "*.h" -exec tools/ci/scripts/deheader.sh {} \;
  - ./tools/ci/jobs/deheader2.sh
  <<: *job-push
  <<: *job-deheader_shared

deheader_const_withoutopengl_h:
  stage: build
  script:
  - export FLAGS="-DENABLE_LIBXML -DUSE_X11 -DTMWA_SUPPORT"
  - ./tools/ci/jobs/deheader.sh
  - find ./src/const -type f -name "*.h" -exec tools/ci/scripts/deheader.sh {} \;
  - ./tools/ci/jobs/deheader2.sh
  <<: *job-push
  <<: *job-deheader_shared

deheader_dyecmd_withoutopengl_cpp:
  stage: build
  script:
  - export FLAGS="-DDYECMD -DENABLE_LIBXML -DUSE_X11 -DTMWA_SUPPORT"
  - ./tools/ci/jobs/deheader.sh
  - find ./src/dyetool -type f -name "*.cpp" -exec tools/ci/scripts/deheader.sh {} \;
  - ./tools/ci/jobs/deheader2.sh
  <<: *job-push
  <<: *job-deheader_shared

deheader_dyecmd_withoutopengl_h:
  stage: build
  script:
  - export FLAGS="-DDYECMD -DENABLE_LIBXML -DUSE_X11 -DTMWA_SUPPORT"
  - ./tools/ci/jobs/deheader.sh
  - find ./src/dyetool -type f -name "*.h" -exec tools/ci/scripts/deheader.sh {} \;
  - ./tools/ci/jobs/deheader2.sh
  <<: *job-push
  <<: *job-deheader_shared

deheader_enums_withoutopengl_h:
  stage: build
  script:
  - export FLAGS="-DENABLE_LIBXML -DUSE_X11 -DTMWA_SUPPORT"
  - ./tools/ci/jobs/deheader.sh
  - find ./src/enums -type f -name "*.h" -exec tools/ci/scripts/deheader.sh {} \;
  - ./tools/ci/jobs/deheader2.sh
  <<: *job-push
  <<: *job-deheader_shared

deheader_events_withoutopengl_h:
  stage: build
  script:
  - export FLAGS="-DENABLE_LIBXML -DUSE_X11 -DTMWA_SUPPORT"
  - ./tools/ci/jobs/deheader.sh
  - find ./src/events -type f -name "*.h" -exec tools/ci/scripts/deheader.sh {} \;
  - ./tools/ci/jobs/deheader2.sh
  <<: *job-push
  <<: *job-deheader_shared

deheader_gui_fonts_withoutopengl_cpp:
  stage: build
  script:
  - export FLAGS="-DENABLE_LIBXML -DUSE_X11 -DTMWA_SUPPORT"
  - ./tools/ci/jobs/deheader.sh
  - find ./src/gui/fonts -type f -name "*.cpp" -exec tools/ci/scripts/deheader.sh {} \;
  - ./tools/ci/jobs/deheader2.sh
  <<: *job-push
  <<: *job-deheader_shared

deheader_gui_fonts_withoutopengl_h:
  stage: build
  script:
  - export FLAGS="-DENABLE_LIBXML -DUSE_X11 -DTMWA_SUPPORT"
  - ./tools/ci/jobs/deheader.sh
  - find ./src/gui/fonts -type f -name "*.h" -exec tools/ci/scripts/deheader.sh {} \;
  - ./tools/ci/jobs/deheader2.sh
  <<: *job-push
  <<: *job-deheader_shared

deheader_gui_models_withoutopengl_h:
  stage: build
  script:
  - export FLAGS="-DENABLE_LIBXML -DUSE_X11 -DTMWA_SUPPORT"
  - ./tools/ci/jobs/deheader.sh
  - find ./src/gui/models -type f -name "*.h" -exec tools/ci/scripts/deheader.sh {} \;
  - ./tools/ci/jobs/deheader2.sh
  <<: *job-push
  <<: *job-deheader_shared

deheader_gui_popups_withoutopengl_cpp:
  stage: build
  script:
  - export FLAGS="-DENABLE_LIBXML -DUSE_X11 -DTMWA_SUPPORT"
  - ./tools/ci/jobs/deheader.sh
  - find ./src/gui/popups -type f -name "*.cpp" -exec tools/ci/scripts/deheader.sh {} \;
  - ./tools/ci/jobs/deheader2.sh
  <<: *job-push
  <<: *job-deheader_shared

deheader_gui_popups_withoutopengl_h:
  stage: build
  script:
  - export FLAGS="-DENABLE_LIBXML -DUSE_X11 -DTMWA_SUPPORT"
  - ./tools/ci/jobs/deheader.sh
  - find ./src/gui/popups -type f -name "*.h" -exec tools/ci/scripts/deheader.sh {} \;
  - ./tools/ci/jobs/deheader2.sh
  <<: *job-push
  <<: *job-deheader_shared

deheader_gui_shortcut_withoutopengl_cpp:
  stage: build
  script:
  - export FLAGS="-DENABLE_LIBXML -DUSE_X11 -DTMWA_SUPPORT"
  - ./tools/ci/jobs/deheader.sh
  - find ./src/gui/shortcut -type f -name "*.cpp" -exec tools/ci/scripts/deheader.sh {} \;
  - ./tools/ci/jobs/deheader2.sh
  <<: *job-push
  <<: *job-deheader_shared

deheader_gui_shortcut_withoutopengl_h:
  stage: build
  script:
  - export FLAGS="-DENABLE_LIBXML -DUSE_X11 -DTMWA_SUPPORT"
  - ./tools/ci/jobs/deheader.sh
  - find ./src/gui/shortcut -type f -name "*.h" -exec tools/ci/scripts/deheader.sh {} \;
  - ./tools/ci/jobs/deheader2.sh
  <<: *job-push
  <<: *job-deheader_shared

deheader_gui_widgets_withoutopengl_h:
  stage: build
  script:
  - export FLAGS="-DENABLE_LIBXML -DUSE_X11 -DTMWA_SUPPORT"
  - ./tools/ci/jobs/deheader.sh
  - find ./src/gui/widgets -type f -name "*.h" -exec tools/ci/scripts/deheader.sh {} \;
  - ./tools/ci/jobs/deheader2.sh
  <<: *job-push
  <<: *job-deheader_shared

deheader_gui_windows_withoutopengl_h:
  stage: build
  script:
  - export FLAGS="-DENABLE_LIBXML -DUSE_X11 -DTMWA_SUPPORT"
  - ./tools/ci/jobs/deheader.sh
  - find ./src/gui/windows -type f -name "*.h" -exec tools/ci/scripts/deheader.sh {} \;
  - ./tools/ci/jobs/deheader2.sh
  <<: *job-push
  <<: *job-deheader_shared

deheader_gui_withoutopengl_cpp:
  stage: build
  script:
  - export FLAGS="-DENABLE_LIBXML -DUSE_X11 -DTMWA_SUPPORT"
  - ./tools/ci/jobs/deheader.sh
  - find ./src/gui -type f -name "*.cpp" ! -path "./src/gui/*/*" -exec tools/ci/scripts/deheader.sh {} \;
  - ./tools/ci/jobs/deheader2.sh
  <<: *job-push
  <<: *job-deheader_shared

deheader_gui_withoutopengl_h:
  stage: build
  script:
  - export FLAGS="-DENABLE_LIBXML -DUSE_X11 -DTMWA_SUPPORT"
  - ./tools/ci/jobs/deheader.sh
  - find ./src/gui -type f -name "*.h" ! -path "./src/gui/*/*" -exec tools/ci/scripts/deheader.sh {} \;
  - ./tools/ci/jobs/deheader2.sh
  <<: *job-push
  <<: *job-deheader_shared

deheader_input_withoutopengl_cpp:
  stage: build
  script:
  - export FLAGS="-DENABLE_LIBXML -DUSE_X11 -DTMWA_SUPPORT"
  - ./tools/ci/jobs/deheader.sh
  - find ./src/input -type f -name "*.cpp" -exec tools/ci/scripts/deheader.sh {} \;
  - ./tools/ci/jobs/deheader2.sh
  <<: *job-push
  <<: *job-deheader_shared

deheader_input_withoutopengl_h:
  stage: build
  script:
  - export FLAGS="-DENABLE_LIBXML -DUSE_X11 -DTMWA_SUPPORT"
  - ./tools/ci/jobs/deheader.sh
  - find ./src/input -type f -name "*.h" -exec tools/ci/scripts/deheader.sh {} \;
  - ./tools/ci/jobs/deheader2.sh
  <<: *job-push
  <<: *job-deheader_shared

deheader_listeners_withoutopengl_cpp:
  stage: build
  script:
  - export FLAGS="-DENABLE_LIBXML -DUSE_X11 -DTMWA_SUPPORT"
  - ./tools/ci/jobs/deheader.sh
  - find ./src/listeners -type f -name "*.cpp" -exec tools/ci/scripts/deheader.sh {} \;
  - ./tools/ci/jobs/deheader2.sh
  <<: *job-push
  <<: *job-deheader_shared

deheader_listeners_withoutopengl_h:
  stage: build
  script:
  - export FLAGS="-DENABLE_LIBXML -DUSE_X11 -DTMWA_SUPPORT"
  - ./tools/ci/jobs/deheader.sh
  - find ./src/listeners -type f -name "*.h" -exec tools/ci/scripts/deheader.sh {} \;
  - ./tools/ci/jobs/deheader2.sh
  <<: *job-push
  <<: *job-deheader_shared

deheader_net_ea_withoutopengl_cpp:
  stage: build
  script:
  - export FLAGS="-DENABLE_LIBXML -DUSE_X11 -DTMWA_SUPPORT"
  - ./tools/ci/jobs/deheader.sh
  - find ./src/net/ea -type f -name "*.cpp" -exec tools/ci/scripts/deheader.sh {} \;
  - ./tools/ci/jobs/deheader2.sh
  <<: *job-push
  <<: *job-deheader_shared

deheader_net_ea_withoutopengl_h:
  stage: build
  script:
  - export FLAGS="-DENABLE_LIBXML -DUSE_X11 -DTMWA_SUPPORT"
  - ./tools/ci/jobs/deheader.sh
  - find ./src/net/ea -type f -name "*.h" -exec tools/ci/scripts/deheader.sh {} \;
  - ./tools/ci/jobs/deheader2.sh
  <<: *job-push
  <<: *job-deheader_shared

deheader_net_eathena_withoutopengl_cpp:
  stage: build
  script:
  - export FLAGS="-DENABLE_LIBXML -DUSE_X11 -DTMWA_SUPPORT"
  - ./tools/ci/jobs/deheader.sh
  - find ./src/net/eathena -type f -name "*.cpp" -exec tools/ci/scripts/deheader.sh {} \;
  - ./tools/ci/jobs/deheader2.sh
  <<: *job-push
  <<: *job-deheader_shared

deheader_net_eathena_withoutopengl_h:
  stage: build
  script:
  - export FLAGS="-DENABLE_LIBXML -DUSE_X11 -DTMWA_SUPPORT"
  - ./tools/ci/jobs/deheader.sh
  - find ./src/net/eathena -type f -name "*.h" -exec tools/ci/scripts/deheader.sh {} \;
  - ./tools/ci/jobs/deheader2.sh
  <<: *job-push
  <<: *job-deheader_shared

deheader_net_tmwa_withoutopengl_cpp:
  stage: build
  script:
  - export FLAGS="-DENABLE_LIBXML -DUSE_X11 -DTMWA_SUPPORT"
  - ./tools/ci/jobs/deheader.sh
  - find ./src/net/tmwa -type f -name "*.cpp" -exec tools/ci/scripts/deheader.sh {} \;
  - ./tools/ci/jobs/deheader2.sh
  <<: *job-push
  <<: *job-deheader_shared

deheader_net_tmwa_withoutopengl_h:
  stage: build
  script:
  - export FLAGS="-DENABLE_LIBXML -DUSE_X11 -DTMWA_SUPPORT"
  - ./tools/ci/jobs/deheader.sh
  - find ./src/net/tmwa -type f -name "*.h" -exec tools/ci/scripts/deheader.sh {} \;
  - ./tools/ci/jobs/deheader2.sh
  <<: *job-push
  <<: *job-deheader_shared

deheader_net_withoutopengl_cpp:
  stage: build
  script:
  - export FLAGS="-DENABLE_LIBXML -DUSE_X11 -DTMWA_SUPPORT"
  - ./tools/ci/jobs/deheader.sh
  - find ./src/net -type f -name "*.cpp" ! -path "./src/net/*/*" -exec tools/ci/scripts/deheader.sh {} \;
  - ./tools/ci/jobs/deheader2.sh
  <<: *job-push
  <<: *job-deheader_shared

deheader_net_withoutopengl_h:
  stage: build
  script:
  - export FLAGS="-DENABLE_LIBXML -DUSE_X11 -DTMWA_SUPPORT"
  - ./tools/ci/jobs/deheader.sh
  - find ./src/net -type f -name "*.h" ! -path "./src/net/*/*" -exec tools/ci/scripts/deheader.sh {} \;
  - ./tools/ci/jobs/deheader2.sh
  <<: *job-push
  <<: *job-deheader_shared

deheader_particle_withoutopengl_cpp:
  stage: build
  script:
  - export FLAGS="-DENABLE_LIBXML -DUSE_X11 -DTMWA_SUPPORT"
  - ./tools/ci/jobs/deheader.sh
  - find ./src/particle -type f -name "*.cpp" -exec tools/ci/scripts/deheader.sh {} \;
  - ./tools/ci/jobs/deheader2.sh
  <<: *job-push
  <<: *job-deheader_shared

deheader_particle_withoutopengl_h:
  stage: build
  script:
  - export FLAGS="-DENABLE_LIBXML -DUSE_X11 -DTMWA_SUPPORT"
  - ./tools/ci/jobs/deheader.sh
  - find ./src/particle -type f -name "*.h" -exec tools/ci/scripts/deheader.sh {} \;
  - ./tools/ci/jobs/deheader2.sh
  <<: *job-push
  <<: *job-deheader_shared

deheader_render_withoutopengl_cpp:
  stage: build
  script:
  - export FLAGS="-DENABLE_LIBXML -DUSE_X11 -DTMWA_SUPPORT"
  - ./tools/ci/jobs/deheader.sh
  - find ./src/render -type f -name "*.cpp" -exec tools/ci/scripts/deheader.sh {} \;
  - ./tools/ci/jobs/deheader2.sh
  <<: *job-push
  <<: *job-deheader_shared

deheader_render_withoutopengl_h:
  stage: build
  script:
  - export FLAGS="-DENABLE_LIBXML -DUSE_X11 -DTMWA_SUPPORT"
  - ./tools/ci/jobs/deheader.sh
  - find ./src/render -type f -name "*.h" -exec tools/ci/scripts/deheader.sh {} \;
  - ./tools/ci/jobs/deheader2.sh
  <<: *job-push
  <<: *job-deheader_shared

deheader_resources_db_withoutopengl_cpp:
  stage: build
  script:
  - export FLAGS="-DENABLE_LIBXML -DUSE_X11 -DTMWA_SUPPORT"
  - ./tools/ci/jobs/deheader.sh
  - find ./src/resources/db -type f -name "*.cpp" -exec tools/ci/scripts/deheader.sh {} \;
  - ./tools/ci/jobs/deheader2.sh
  <<: *job-push
  <<: *job-deheader_shared

deheader_resources_db_withoutopengl_h:
  stage: build
  script:
  - export FLAGS="-DENABLE_LIBXML -DUSE_X11 -DTMWA_SUPPORT"
  - ./tools/ci/jobs/deheader.sh
  - find ./src/resources/db -type f -name "*.h" -exec tools/ci/scripts/deheader.sh {} \;
  - ./tools/ci/jobs/deheader2.sh
  <<: *job-push
  <<: *job-deheader_shared

deheader_resources_map_withoutopengl_cpp:
  stage: build
  script:
  - export FLAGS="-DENABLE_LIBXML -DUSE_X11 -DTMWA_SUPPORT"
  - ./tools/ci/jobs/deheader.sh
  - find ./src/resources/map -type f -name "*.cpp" -exec tools/ci/scripts/deheader.sh {} \;
  - ./tools/ci/jobs/deheader2.sh
  <<: *job-push
  <<: *job-deheader_shared

deheader_resources_map_withoutopengl_h:
  stage: build
  script:
  - export FLAGS="-DENABLE_LIBXML -DUSE_X11 -DTMWA_SUPPORT"
  - ./tools/ci/jobs/deheader.sh
  - find ./src/resources/map -type f -name "*.h" -exec tools/ci/scripts/deheader.sh {} \;
  - ./tools/ci/jobs/deheader2.sh
  <<: *job-push
  <<: *job-deheader_shared

deheader_resources_withoutopengl_cpp:
  stage: build
  script:
  - export FLAGS="-DENABLE_LIBXML -DUSE_X11 -DTMWA_SUPPORT"
  - ./tools/ci/jobs/deheader.sh
  - find ./src/resources -type f -name "*.cpp" ! -path "./src/resources/db/*" ! -path "./src/resources/map/*" -exec tools/ci/scripts/deheader.sh {} \;
  - ./tools/ci/jobs/deheader2.sh
  <<: *job-push
  <<: *job-deheader_shared

deheader_resources_withoutopengl_h:
  stage: build
  script:
  - export FLAGS="-DENABLE_LIBXML -DUSE_X11 -DTMWA_SUPPORT"
  - ./tools/ci/jobs/deheader.sh
  - find ./src/resources -type f -name "*.h" ! -path "./src/resources/db/*" ! -path "./src/resources/map/*" -exec tools/ci/scripts/deheader.sh {} \;
  - ./tools/ci/jobs/deheader2.sh
  <<: *job-push
  <<: *job-deheader_shared

deheader_test_withoutopengl_cpp:
  stage: build
  script:
  - export FLAGS="-DENABLE_LIBXML -DUSE_X11 -DTMWA_SUPPORT"
  - ./tools/ci/jobs/deheader.sh
  - find ./src/test -type f -name "*.cpp" -exec tools/ci/scripts/deheader.sh {} \;
  - ./tools/ci/jobs/deheader2.sh
  <<: *job-push
  <<: *job-deheader_shared

deheader_test_withoutopengl_h:
  stage: build
  script:
  - export FLAGS="-DENABLE_LIBXML -DUSE_X11 -DTMWA_SUPPORT"
  - ./tools/ci/jobs/deheader.sh
  - find ./src/test -type f -name "*.h" -exec tools/ci/scripts/deheader.sh {} \;
  - ./tools/ci/jobs/deheader2.sh
  <<: *job-push
  <<: *job-deheader_shared

deheader_utils_withoutopengl_cpp:
  stage: build
  script:
  - export FLAGS="-DENABLE_LIBXML -DUSE_X11 -DTMWA_SUPPORT"
  - ./tools/ci/jobs/deheader.sh
  - find ./src/utils -type f -name "*.cpp" -exec tools/ci/scripts/deheader.sh {} \;
  - ./tools/ci/jobs/deheader2.sh
  <<: *job-push
  <<: *job-deheader_shared

deheader_utils_withoutopengl_h:
  stage: build
  script:
  - export FLAGS="-DENABLE_LIBXML -DUSE_X11 -DTMWA_SUPPORT"
  - ./tools/ci/jobs/deheader.sh
  - find ./src/utils -type f -name "*.h" -exec tools/ci/scripts/deheader.sh {} \;
  - ./tools/ci/jobs/deheader2.sh
  <<: *job-push
  <<: *job-deheader_shared

deheader_withoutopengl_cpp:
  stage: build
  script:
  - export FLAGS="-DENABLE_LIBXML -DUSE_X11 -DTMWA_SUPPORT"
  - ./tools/ci/jobs/deheader.sh
  - find ./src -type f -name "*.cpp" ! -path "./src/*/*" -exec tools/ci/scripts/deheader.sh {} \;
  - ./tools/ci/jobs/deheader2.sh
  <<: *job-push
  <<: *job-deheader_shared

deheader_withoutopengl_h:
  stage: build
  script:
  - export FLAGS="-DENABLE_LIBXML -DUSE_X11 -DTMWA_SUPPORT"
  - ./tools/ci/jobs/deheader.sh
  - find ./src -type f -name "*.h" ! -path "./src/*/*" -exec tools/ci/scripts/deheader.sh {} \;
  - ./tools/ci/jobs/deheader2.sh
  <<: *job-push
  <<: *job-deheader_shared

deheader_withoutopengl_catch_cc:
  stage: build
  script:
  - export FLAGS="-DUNITTESTS -DUNITTESTS_CATCH -DENABLE_LIBXML -DUSE_X11 -DTMWA_SUPPORT"
  - ./tools/ci/jobs/deheader.sh
  - find ./src -type f -name "*.cc" -exec tools/ci/scripts/deheader.sh {} \;
  - ./tools/ci/jobs/deheader2.sh
  <<: *job-push
  <<: *job-deheader_shared

# deheader sdl2

deheader_sdl2_actions_withoutopengl_cpp:
  stage: build
  script:
  - export FLAGS="-DENABLE_LIBXML -DUSE_X11 -DTMWA_SUPPORT -DUSE_SDL2"
  - ./tools/ci/jobs/deheader.sh
  - find ./src/actions -type f -name "*.cpp" -exec tools/ci/scripts/deheader.sh {} \;
  - ./tools/ci/jobs/deheader2.sh
  <<: *job-push
  <<: *job-deheader_sdl2_shared

deheader_sdl2_actions_withoutopengl_h:
  stage: build
  script:
  - export FLAGS="-DENABLE_LIBXML -DUSE_X11 -DTMWA_SUPPORT -DUSE_SDL2"
  - ./tools/ci/jobs/deheader.sh
  - find ./src/actions -type f -name "*.h" -exec tools/ci/scripts/deheader.sh {} \;
  - ./tools/ci/jobs/deheader2.sh
  <<: *job-push
  <<: *job-deheader_sdl2_shared

deheader_sdl2_being_withoutopengl_cpp:
  stage: build
  script:
  - export FLAGS="-DENABLE_LIBXML -DUSE_X11 -DTMWA_SUPPORT -DUSE_SDL2"
  - ./tools/ci/jobs/deheader.sh
  - find ./src/being -type f -name "*.cpp" -exec tools/ci/scripts/deheader.sh {} \;
  - ./tools/ci/jobs/deheader2.sh
  <<: *job-push
  <<: *job-deheader_sdl2_shared

deheader_sdl2_being_withoutopengl_h:
  stage: build
  script:
  - export FLAGS="-DENABLE_LIBXML -DUSE_X11 -DTMWA_SUPPORT -DUSE_SDL2"
  - ./tools/ci/jobs/deheader.sh
  - find ./src/being -type f -name "*.h" -exec tools/ci/scripts/deheader.sh {} \;
  - ./tools/ci/jobs/deheader2.sh
  <<: *job-push
  <<: *job-deheader_sdl2_shared

deheader_sdl2_const_withoutopengl_h:
  stage: build
  script:
  - export FLAGS="-DENABLE_LIBXML -DUSE_X11 -DTMWA_SUPPORT -DUSE_SDL2"
  - ./tools/ci/jobs/deheader.sh
  - find ./src/const -type f -name "*.h" -exec tools/ci/scripts/deheader.sh {} \;
  - ./tools/ci/jobs/deheader2.sh
  <<: *job-push
  <<: *job-deheader_sdl2_shared

deheader_sdl2_dyecmd_withoutopengl_cpp:
  stage: build
  script:
  - export FLAGS="-DDYECMD -DENABLE_LIBXML -DUSE_X11 -DTMWA_SUPPORT -DUSE_SDL2"
  - ./tools/ci/jobs/deheader.sh
  - find ./src/dyetool -type f -name "*.cpp" -exec tools/ci/scripts/deheader.sh {} \;
  - ./tools/ci/jobs/deheader2.sh
  <<: *job-push
  <<: *job-deheader_sdl2_shared

deheader_sdl2_dyecmd_withoutopengl_h:
  stage: build
  script:
  - export FLAGS="-DDYECMD -DENABLE_LIBXML -DUSE_X11 -DTMWA_SUPPORT -DUSE_SDL2"
  - ./tools/ci/jobs/deheader.sh
  - find ./src/dyetool -type f -name "*.h" -exec tools/ci/scripts/deheader.sh {} \;
  - ./tools/ci/jobs/deheader2.sh
  <<: *job-push
  <<: *job-deheader_sdl2_shared

deheader_sdl2_enums_withoutopengl_h:
  stage: build
  script:
  - export FLAGS="-DENABLE_LIBXML -DUSE_X11 -DTMWA_SUPPORT -DUSE_SDL2"
  - ./tools/ci/jobs/deheader.sh
  - find ./src/enums -type f -name "*.h" -exec tools/ci/scripts/deheader.sh {} \;
  - ./tools/ci/jobs/deheader2.sh
  <<: *job-push
  <<: *job-deheader_sdl2_shared

deheader_sdl2_events_withoutopengl_h:
  stage: build
  script:
  - export FLAGS="-DENABLE_LIBXML -DUSE_X11 -DTMWA_SUPPORT -DUSE_SDL2"
  - ./tools/ci/jobs/deheader.sh
  - find ./src/events -type f -name "*.h" -exec tools/ci/scripts/deheader.sh {} \;
  - ./tools/ci/jobs/deheader2.sh
  <<: *job-push
  <<: *job-deheader_sdl2_shared

deheader_sdl2_gui_fonts_withoutopengl_cpp:
  stage: build
  script:
  - export FLAGS="-DENABLE_LIBXML -DUSE_X11 -DTMWA_SUPPORT -DUSE_SDL2"
  - ./tools/ci/jobs/deheader.sh
  - find ./src/gui/fonts -type f -name "*.cpp" -exec tools/ci/scripts/deheader.sh {} \;
  - ./tools/ci/jobs/deheader2.sh
  <<: *job-push
  <<: *job-deheader_sdl2_shared

deheader_sdl2_gui_fonts_withoutopengl_h:
  stage: build
  script:
  - export FLAGS="-DENABLE_LIBXML -DUSE_X11 -DTMWA_SUPPORT -DUSE_SDL2"
  - ./tools/ci/jobs/deheader.sh
  - find ./src/gui/fonts -type f -name "*.h" -exec tools/ci/scripts/deheader.sh {} \;
  - ./tools/ci/jobs/deheader2.sh
  <<: *job-push
  <<: *job-deheader_sdl2_shared

deheader_sdl2_gui_models_withoutopengl_h:
  stage: build
  script:
  - export FLAGS="-DENABLE_LIBXML -DUSE_X11 -DTMWA_SUPPORT -DUSE_SDL2"
  - ./tools/ci/jobs/deheader.sh
  - find ./src/gui/models -type f -name "*.h" -exec tools/ci/scripts/deheader.sh {} \;
  - ./tools/ci/jobs/deheader2.sh
  <<: *job-push
  <<: *job-deheader_sdl2_shared

deheader_sdl2_gui_popups_withoutopengl_cpp:
  stage: build
  script:
  - export FLAGS="-DENABLE_LIBXML -DUSE_X11 -DTMWA_SUPPORT -DUSE_SDL2"
  - ./tools/ci/jobs/deheader.sh
  - find ./src/gui/popups -type f -name "*.cpp" -exec tools/ci/scripts/deheader.sh {} \;
  - ./tools/ci/jobs/deheader2.sh
  <<: *job-push
  <<: *job-deheader_sdl2_shared

deheader_sdl2_gui_popups_withoutopengl_h:
  stage: build
  script:
  - export FLAGS="-DENABLE_LIBXML -DUSE_X11 -DTMWA_SUPPORT -DUSE_SDL2"
  - ./tools/ci/jobs/deheader.sh
  - find ./src/gui/popups -type f -name "*.h" -exec tools/ci/scripts/deheader.sh {} \;
  - ./tools/ci/jobs/deheader2.sh
  <<: *job-push
  <<: *job-deheader_sdl2_shared

deheader_sdl2_gui_shortcut_withoutopengl_cpp:
  stage: build
  script:
  - export FLAGS="-DENABLE_LIBXML -DUSE_X11 -DTMWA_SUPPORT -DUSE_SDL2"
  - ./tools/ci/jobs/deheader.sh
  - find ./src/gui/shortcut -type f -name "*.cpp" -exec tools/ci/scripts/deheader.sh {} \;
  - ./tools/ci/jobs/deheader2.sh
  <<: *job-push
  <<: *job-deheader_sdl2_shared

deheader_sdl2_gui_shortcut_withoutopengl_h:
  stage: build
  script:
  - export FLAGS="-DENABLE_LIBXML -DUSE_X11 -DTMWA_SUPPORT -DUSE_SDL2"
  - ./tools/ci/jobs/deheader.sh
  - find ./src/gui/shortcut -type f -name "*.h" -exec tools/ci/scripts/deheader.sh {} \;
  - ./tools/ci/jobs/deheader2.sh
  <<: *job-push
  <<: *job-deheader_sdl2_shared

deheader_sdl2_gui_widgets_withoutopengl_h:
  stage: build
  script:
  - export FLAGS="-DENABLE_LIBXML -DUSE_X11 -DTMWA_SUPPORT -DUSE_SDL2"
  - ./tools/ci/jobs/deheader.sh
  - find ./src/gui/widgets -type f -name "*.h" -exec tools/ci/scripts/deheader.sh {} \;
  - ./tools/ci/jobs/deheader2.sh
  <<: *job-push
  <<: *job-deheader_sdl2_shared

deheader_sdl2_gui_windows_withoutopengl_h:
  stage: build
  script:
  - export FLAGS="-DENABLE_LIBXML -DUSE_X11 -DTMWA_SUPPORT -DUSE_SDL2"
  - ./tools/ci/jobs/deheader.sh
  - find ./src/gui/windows -type f -name "*.h" -exec tools/ci/scripts/deheader.sh {} \;
  - ./tools/ci/jobs/deheader2.sh
  <<: *job-push
  <<: *job-deheader_sdl2_shared

deheader_sdl2_gui_withoutopengl_cpp:
  stage: build
  script:
  - export FLAGS="-DENABLE_LIBXML -DUSE_X11 -DTMWA_SUPPORT -DUSE_SDL2"
  - ./tools/ci/jobs/deheader.sh
  - find ./src/gui -type f -name "*.cpp" ! -path "./src/gui/*/*" -exec tools/ci/scripts/deheader.sh {} \;
  - ./tools/ci/jobs/deheader2.sh
  <<: *job-push
  <<: *job-deheader_sdl2_shared

deheader_sdl2_gui_withoutopengl_h:
  stage: build
  script:
  - export FLAGS="-DENABLE_LIBXML -DUSE_X11 -DTMWA_SUPPORT -DUSE_SDL2"
  - ./tools/ci/jobs/deheader.sh
  - find ./src/gui -type f -name "*.h" ! -path "./src/gui/*/*" -exec tools/ci/scripts/deheader.sh {} \;
  - ./tools/ci/jobs/deheader2.sh
  <<: *job-push
  <<: *job-deheader_sdl2_shared

deheader_sdl2_input_withoutopengl_cpp:
  stage: build
  script:
  - export FLAGS="-DENABLE_LIBXML -DUSE_X11 -DTMWA_SUPPORT -DUSE_SDL2"
  - ./tools/ci/jobs/deheader.sh
  - find ./src/input -type f -name "*.cpp" -exec tools/ci/scripts/deheader.sh {} \;
  - ./tools/ci/jobs/deheader2.sh
  <<: *job-push
  <<: *job-deheader_sdl2_shared

deheader_sdl2_input_withoutopengl_h:
  stage: build
  script:
  - export FLAGS="-DENABLE_LIBXML -DUSE_X11 -DTMWA_SUPPORT -DUSE_SDL2"
  - ./tools/ci/jobs/deheader.sh
  - find ./src/input -type f -name "*.h" -exec tools/ci/scripts/deheader.sh {} \;
  - ./tools/ci/jobs/deheader2.sh
  <<: *job-push
  <<: *job-deheader_sdl2_shared

deheader_sdl2_listeners_withoutopengl_cpp:
  stage: build
  script:
  - export FLAGS="-DENABLE_LIBXML -DUSE_X11 -DTMWA_SUPPORT -DUSE_SDL2"
  - ./tools/ci/jobs/deheader.sh
  - find ./src/listeners -type f -name "*.cpp" -exec tools/ci/scripts/deheader.sh {} \;
  - ./tools/ci/jobs/deheader2.sh
  <<: *job-push
  <<: *job-deheader_sdl2_shared

deheader_sdl2_listeners_withoutopengl_h:
  stage: build
  script:
  - export FLAGS="-DENABLE_LIBXML -DUSE_X11 -DTMWA_SUPPORT -DUSE_SDL2"
  - ./tools/ci/jobs/deheader.sh
  - find ./src/listeners -type f -name "*.h" -exec tools/ci/scripts/deheader.sh {} \;
  - ./tools/ci/jobs/deheader2.sh
  <<: *job-push
  <<: *job-deheader_sdl2_shared

deheader_sdl2_net_ea_withoutopengl_cpp:
  stage: build
  script:
  - export FLAGS="-DENABLE_LIBXML -DUSE_X11 -DTMWA_SUPPORT -DUSE_SDL2"
  - ./tools/ci/jobs/deheader.sh
  - find ./src/net/ea -type f -name "*.cpp" -exec tools/ci/scripts/deheader.sh {} \;
  - ./tools/ci/jobs/deheader2.sh
  <<: *job-push
  <<: *job-deheader_sdl2_shared

deheader_sdl2_net_ea_withoutopengl_h:
  stage: build
  script:
  - export FLAGS="-DENABLE_LIBXML -DUSE_X11 -DTMWA_SUPPORT -DUSE_SDL2"
  - ./tools/ci/jobs/deheader.sh
  - find ./src/net/ea -type f -name "*.h" -exec tools/ci/scripts/deheader.sh {} \;
  - ./tools/ci/jobs/deheader2.sh
  <<: *job-push
  <<: *job-deheader_sdl2_shared

deheader_sdl2_net_eathena_withoutopengl_cpp:
  stage: build
  script:
  - export FLAGS="-DENABLE_LIBXML -DUSE_X11 -DTMWA_SUPPORT -DUSE_SDL2"
  - ./tools/ci/jobs/deheader.sh
  - find ./src/net/eathena -type f -name "*.cpp" -exec tools/ci/scripts/deheader.sh {} \;
  - ./tools/ci/jobs/deheader2.sh
  <<: *job-push
  <<: *job-deheader_sdl2_shared

deheader_sdl2_net_eathena_withoutopengl_h:
  stage: build
  script:
  - export FLAGS="-DENABLE_LIBXML -DUSE_X11 -DTMWA_SUPPORT -DUSE_SDL2"
  - ./tools/ci/jobs/deheader.sh
  - find ./src/net/eathena -type f -name "*.h" -exec tools/ci/scripts/deheader.sh {} \;
  - ./tools/ci/jobs/deheader2.sh
  <<: *job-push
  <<: *job-deheader_sdl2_shared

deheader_sdl2_net_tmwa_withoutopengl_cpp:
  stage: build
  script:
  - export FLAGS="-DENABLE_LIBXML -DUSE_X11 -DTMWA_SUPPORT -DUSE_SDL2"
  - ./tools/ci/jobs/deheader.sh
  - find ./src/net/tmwa -type f -name "*.cpp" -exec tools/ci/scripts/deheader.sh {} \;
  - ./tools/ci/jobs/deheader2.sh
  <<: *job-push
  <<: *job-deheader_sdl2_shared

deheader_sdl2_net_tmwa_withoutopengl_h:
  stage: build
  script:
  - export FLAGS="-DENABLE_LIBXML -DUSE_X11 -DTMWA_SUPPORT -DUSE_SDL2"
  - ./tools/ci/jobs/deheader.sh
  - find ./src/net/tmwa -type f -name "*.h" -exec tools/ci/scripts/deheader.sh {} \;
  - ./tools/ci/jobs/deheader2.sh
  <<: *job-push
  <<: *job-deheader_sdl2_shared

deheader_sdl2_net_withoutopengl_cpp:
  stage: build
  script:
  - export FLAGS="-DENABLE_LIBXML -DUSE_X11 -DTMWA_SUPPORT -DUSE_SDL2"
  - ./tools/ci/jobs/deheader.sh
  - find ./src/net -type f -name "*.cpp" ! -path "./src/net/*/*" -exec tools/ci/scripts/deheader.sh {} \;
  - ./tools/ci/jobs/deheader2.sh
  <<: *job-push
  <<: *job-deheader_sdl2_shared

deheader_sdl2_net_withoutopengl_h:
  stage: build
  script:
  - export FLAGS="-DENABLE_LIBXML -DUSE_X11 -DTMWA_SUPPORT -DUSE_SDL2"
  - ./tools/ci/jobs/deheader.sh
  - find ./src/net -type f -name "*.h" ! -path "./src/net/*/*" -exec tools/ci/scripts/deheader.sh {} \;
  - ./tools/ci/jobs/deheader2.sh
  <<: *job-push
  <<: *job-deheader_sdl2_shared

deheader_sdl2_particle_withoutopengl_cpp:
  stage: build
  script:
  - export FLAGS="-DENABLE_LIBXML -DUSE_X11 -DTMWA_SUPPORT -DUSE_SDL2"
  - ./tools/ci/jobs/deheader.sh
  - find ./src/particle -type f -name "*.cpp" -exec tools/ci/scripts/deheader.sh {} \;
  - ./tools/ci/jobs/deheader2.sh
  <<: *job-push
  <<: *job-deheader_sdl2_shared

deheader_sdl2_particle_withoutopengl_h:
  stage: build
  script:
  - export FLAGS="-DENABLE_LIBXML -DUSE_X11 -DTMWA_SUPPORT -DUSE_SDL2"
  - ./tools/ci/jobs/deheader.sh
  - find ./src/particle -type f -name "*.h" -exec tools/ci/scripts/deheader.sh {} \;
  - ./tools/ci/jobs/deheader2.sh
  <<: *job-push
  <<: *job-deheader_sdl2_shared

deheader_sdl2_render_withoutopengl_cpp:
  stage: build
  script:
  - export FLAGS="-DENABLE_LIBXML -DUSE_X11 -DTMWA_SUPPORT -DUSE_SDL2"
  - ./tools/ci/jobs/deheader.sh
  - find ./src/render -type f -name "*.cpp" -exec tools/ci/scripts/deheader.sh {} \;
  - ./tools/ci/jobs/deheader2.sh
  <<: *job-push
  <<: *job-deheader_sdl2_shared

deheader_sdl2_render_withoutopengl_h:
  stage: build
  script:
  - export FLAGS="-DENABLE_LIBXML -DUSE_X11 -DTMWA_SUPPORT -DUSE_SDL2"
  - ./tools/ci/jobs/deheader.sh
  - find ./src/render -type f -name "*.h" -exec tools/ci/scripts/deheader.sh {} \;
  - ./tools/ci/jobs/deheader2.sh
  <<: *job-push
  <<: *job-deheader_sdl2_shared

deheader_sdl2_resources_db_withoutopengl_cpp:
  stage: build
  script:
  - export FLAGS="-DENABLE_LIBXML -DUSE_X11 -DTMWA_SUPPORT -DUSE_SDL2"
  - ./tools/ci/jobs/deheader.sh
  - find ./src/resources/db -type f -name "*.cpp" -exec tools/ci/scripts/deheader.sh {} \;
  - ./tools/ci/jobs/deheader2.sh
  <<: *job-push
  <<: *job-deheader_sdl2_shared

deheader_sdl2_resources_db_withoutopengl_h:
  stage: build
  script:
  - export FLAGS="-DENABLE_LIBXML -DUSE_X11 -DTMWA_SUPPORT -DUSE_SDL2"
  - ./tools/ci/jobs/deheader.sh
  - find ./src/resources/db -type f -name "*.h" -exec tools/ci/scripts/deheader.sh {} \;
  - ./tools/ci/jobs/deheader2.sh
  <<: *job-push
  <<: *job-deheader_sdl2_shared

deheader_sdl2_resources_map_withoutopengl_cpp:
  stage: build
  script:
  - export FLAGS="-DENABLE_LIBXML -DUSE_X11 -DTMWA_SUPPORT -DUSE_SDL2"
  - ./tools/ci/jobs/deheader.sh
  - find ./src/resources/map -type f -name "*.cpp" -exec tools/ci/scripts/deheader.sh {} \;
  - ./tools/ci/jobs/deheader2.sh
  <<: *job-push
  <<: *job-deheader_sdl2_shared

deheader_sdl2_resources_map_withoutopengl_h:
  stage: build
  script:
  - export FLAGS="-DENABLE_LIBXML -DUSE_X11 -DTMWA_SUPPORT -DUSE_SDL2"
  - ./tools/ci/jobs/deheader.sh
  - find ./src/resources/map -type f -name "*.h" -exec tools/ci/scripts/deheader.sh {} \;
  - ./tools/ci/jobs/deheader2.sh
  <<: *job-push
  <<: *job-deheader_sdl2_shared

deheader_sdl2_resources_withoutopengl_cpp:
  stage: build
  script:
  - export FLAGS="-DENABLE_LIBXML -DUSE_X11 -DTMWA_SUPPORT -DUSE_SDL2"
  - ./tools/ci/jobs/deheader.sh
  - find ./src/resources -type f -name "*.cpp" ! -path "./src/resources/db/*" ! -path "./src/resources/map/*" -exec tools/ci/scripts/deheader.sh {} \;
  - ./tools/ci/jobs/deheader2.sh
  <<: *job-push
  <<: *job-deheader_sdl2_shared

deheader_sdl2_resources_withoutopengl_h:
  stage: build
  script:
  - export FLAGS="-DENABLE_LIBXML -DUSE_X11 -DTMWA_SUPPORT -DUSE_SDL2"
  - ./tools/ci/jobs/deheader.sh
  - find ./src/resources -type f -name "*.h" ! -path "./src/resources/db/*" ! -path "./src/resources/map/*" -exec tools/ci/scripts/deheader.sh {} \;
  - ./tools/ci/jobs/deheader2.sh
  <<: *job-push
  <<: *job-deheader_sdl2_shared

deheader_sdl2_test_withoutopengl_cpp:
  stage: build
  script:
  - export FLAGS="-DENABLE_LIBXML -DUSE_X11 -DTMWA_SUPPORT -DUSE_SDL2"
  - ./tools/ci/jobs/deheader.sh
  - find ./src/test -type f -name "*.cpp" -exec tools/ci/scripts/deheader.sh {} \;
  - ./tools/ci/jobs/deheader2.sh
  <<: *job-push
  <<: *job-deheader_sdl2_shared

deheader_sdl2_test_withoutopengl_h:
  stage: build
  script:
  - export FLAGS="-DENABLE_LIBXML -DUSE_X11 -DTMWA_SUPPORT -DUSE_SDL2"
  - ./tools/ci/jobs/deheader.sh
  - find ./src/test -type f -name "*.h" -exec tools/ci/scripts/deheader.sh {} \;
  - ./tools/ci/jobs/deheader2.sh
  <<: *job-push
  <<: *job-deheader_sdl2_shared

deheader_sdl2_utils_withoutopengl_cpp:
  stage: build
  script:
  - export FLAGS="-DENABLE_LIBXML -DUSE_X11 -DTMWA_SUPPORT -DUSE_SDL2"
  - ./tools/ci/jobs/deheader.sh
  - find ./src/utils -type f -name "*.cpp" -exec tools/ci/scripts/deheader.sh {} \;
  - ./tools/ci/jobs/deheader2.sh
  <<: *job-push
  <<: *job-deheader_sdl2_shared

deheader_sdl2_utils_withoutopengl_h:
  stage: build
  script:
  - export FLAGS="-DENABLE_LIBXML -DUSE_X11 -DTMWA_SUPPORT -DUSE_SDL2"
  - ./tools/ci/jobs/deheader.sh
  - find ./src/utils -type f -name "*.h" -exec tools/ci/scripts/deheader.sh {} \;
  - ./tools/ci/jobs/deheader2.sh
  <<: *job-push
  <<: *job-deheader_sdl2_shared

deheader_sdl2_withoutopengl_cpp:
  stage: build
  script:
  - export FLAGS="-DENABLE_LIBXML -DUSE_X11 -DTMWA_SUPPORT -DUSE_SDL2"
  - ./tools/ci/jobs/deheader.sh
  - find ./src -type f -name "*.cpp" ! -path "./src/*/*" -exec tools/ci/scripts/deheader.sh {} \;
  - ./tools/ci/jobs/deheader2.sh
  <<: *job-push
  <<: *job-deheader_sdl2_shared

deheader_sdl2_withoutopengl_h:
  stage: build
  script:
  - export FLAGS="-DENABLE_LIBXML -DUSE_X11 -DTMWA_SUPPORT -DUSE_SDL2"
  - ./tools/ci/jobs/deheader.sh
  - find ./src -type f -name "*.h" ! -path "./src/*/*" -exec tools/ci/scripts/deheader.sh {} \;
  - ./tools/ci/jobs/deheader2.sh
  <<: *job-push
  <<: *job-deheader_sdl2_shared

deheader_sdl2_withoutopengl_catch_cc:
  stage: build
  script:
  - export FLAGS="-DUNITTESTS -DUNITTESTS_CATCH -DENABLE_LIBXML -DUSE_X11 -DTMWA_SUPPORT -DUSE_SDL2"
  - ./tools/ci/jobs/deheader.sh
  - find ./src -type f -name "*.cc" -exec tools/ci/scripts/deheader.sh {} \;
  - ./tools/ci/jobs/deheader2.sh
  <<: *job-push
  <<: *job-deheader_sdl2_shared

doxygen:
  stage: build
  script:
  - ./tools/ci/jobs/doxygen.sh
  artifacts:
    paths:
    - doxygen
    expire_in: 3 week
    when: always
  dependencies: []
  variables:
    PACKAGES: doxygen graphviz 
              libxml2-dev libcurl4-gnutls-dev libpng-dev 
              libsdl-gfx1.2-dev libsdl-image1.2-dev libsdl-mixer1.2-dev libsdl-net1.2-dev libsdl-ttf2.0-dev
  tags:
    - docker
  only:
    - master

gitstats:
  stage: build
  script:
  - ./tools/ci/jobs/gitstats.sh
  artifacts:
    paths:
    - stats
    expire_in: 3 week
    when: always
  dependencies: []
  variables:
    PACKAGES: python zlib1g git-core gnuplot
  tags:
    - docker
  only:
    - master

mxe_gcc5_shared_32_tests:
  stage: build
  script:
  - tools\ci\jobs\windowstest.cmd files32
  - dir
  artifacts:
    paths:
    - logs
    when: always
    expire_in: 3 week
  dependencies:
    - mxe_gcc5_shared_32_testsbin
  when: manual
  except:
    - triggers
  tags:
    - windows

mxe_gcc5_shared_64_tests:
  stage: build
  script:
  - tools\ci\jobs\windowstest.cmd files64
  artifacts:
    paths:
    - logs
    when: always
    expire_in: 3 week
  dependencies:
    - mxe_gcc5_shared_64_testsbin
  when: manual
  except:
    - triggers
  tags:
    - windows

# stats

pages:
  stage: stats
  script:
  - ./tools/ci/jobs/pages.sh
  dependencies:
    - doxygen
    - gitstats
    - gcc-7_tests_gcov
    - gcc-7_sdl2_tests_gcov
  variables:
    PACKAGES: git-core python
  artifacts:
    paths:
    - public
    expire_in: 3 week
  only:
    - master

ok_job:
  stage: ok
  script:
  - pwd
  - echo $CI_BUILD_REF_NAME
  dependencies: []
  when: on_success
  variables:
    UPDATEREPOS: ""
    PMUPDATE: "echo"
    PMINSTALL: "echo"

fail_job:
  stage: fail
  script:
  - pwd
  - echo $CI_BUILD_REF_NAME
  dependencies: []
  when: on_failure
  variables:
    UPDATEREPOS: ""
    PMUPDATE: "echo"
    PMINSTALL: "echo"