Windows x86:
  extends: .srb2ci

  stage: build

  when: manual

  allow_failure: true

  cache:
    - key: ccache-$CI_JOB_NAME_SLUG-$CI_COMMIT_REF_SLUG
      fallback_keys:
        - ccache-$CI_JOB_NAME_SLUG-$CI_DEFAULT_BRANCH
        - ccache-$CI_JOB_NAME_SLUG-master
      paths:
        - build/ccache
        - build/ccache_statslog

    - key: apt-$CI_JOB_IMAGE
      paths:
        - build/apt-cache
      unprotect: true

    - key: vcpkg-root
      paths:
        - build/vcpkg-root
      unprotect: true

    - key: vcpkg-binary-cache-x86-mingw-static
      paths:
        - build/vcpkg-binary-cache
      unprotect: true

  artifacts:
    paths:
      - "build/ninja-x86_mingw_static_vcpkg-debug/bin/"
      - "build/ninja-x86_mingw_static_vcpkg-debug/src/config.h"
    expose_as: "Win32"
    name: "$CI_PROJECT_PATH_SLUG-$CI_COMMIT_REF_SLUG-$CI_COMMIT_SHORT_SHA-Win32"

  variables:
    PREFIX: i686-w64-mingw32
    CC: /usr/bin/i686-w64-mingw32-gcc-posix
    CXX: /usr/bin/i686-w64-mingw32-g++-posix

  script:
    - |
        # vcpkg
        echo -e "\e[0Ksection_start:`date +%s`:vcpkg-root[collapsed=true]\r\e[0KUpdating vcpkg"

        if [ -d "build/vcpkg-root" ]; then
          pushd build/vcpkg-root
          git fetch https://github.com/Microsoft/vcpkg master
          git reset --hard FETCH_HEAD
          popd
        else
          mkdir -p build
          git clone https://github.com/Microsoft/vcpkg build/vcpkg-root
        fi

        export VCPKG_ROOT=$(pwd)/build/vcpkg-root
        export VCPKG_BINARY_SOURCES="clear;files,$(pwd)/build/vcpkg-binary-cache,readwrite"

        mkdir -p "build/vcpkg-binary-cache"

        echo -e "\e[0Ksection_end:`date +%s`:vcpkg-root\r\e[0K"

    - - |
          # apt_toolchain
          echo -e "\e[0Ksection_start:`date +%s`:apt_toolchain[collapsed=true]\r\e[0KInstalling toolchain packages"
      - apt-get install gcc-mingw-w64-i686-win32
      - |
          # apt_toolchain
          echo -e "\e[0Ksection_end:`date +%s`:apt_toolchain\r\e[0K"

    - - |
          # apt_development
          echo -e "\e[0Ksection_start:`date +%s`:apt_development[collapsed=true]\r\e[0KInstalling development packages"
      - apt-get install ninja-build
      - |
          # apt_development
          echo -e "\e[0Ksection_end:`date +%s`:apt_development\r\e[0K"

    - - |
          # cmake
          echo -e "\e[0Ksection_start:`date +%s`:cmake[collapsed=false]\r\e[0KBuilding Makefiles"
          # cmake
          echo -e "\e[0Ksection_start:`date +%s`:cmake[collapsed=false]\r\e[0KBuilding Makefiles"
      - cmake --preset ninja-x86_mingw_static_vcpkg-debug -G "Unix Makefiles" -DSRB2_USE_CCACHE=YES -DSRB2_CONFIG_ERRORMODE=ON -DCMAKE_TOOLCHAIN_FILE=$VCPKG_ROOT/scripts/buildsystems/vcpkg.cmake
      - |
          # cmake
          echo -e "\e[0Ksection_end:`date +%s`:cmake\r\e[0K"

    - - |
          # make
          echo -e "\e[0Ksection_start:`date +%s`:make[collapsed=false]\r\e[0KCompiling SRB2"
      - cmake --build --preset ninja-x86_mingw_static_vcpkg-debug --parallel 1 -- --keep-going || cmake --build --preset ninja-x86_mingw_static_vcpkg-debug --parallel 1 -- --keep-going
      - |
          # make
          echo -e "\e[0Ksection_end:`date +%s`:make\r\e[0K"

  after_script:
    - - |
           # apt_clean
           echo -e "\e[0Ksection_start:`date +%s`:apt_clean[collapsed=true]\r\e[0KCleaning of unneeded APT packages"
      - apt-get autoclean
      - |
          # apt_clean
          echo -e "\e[0Ksection_end:`date +%s`:apt_clean\r\e[0K"

    - - |
          # vcpkg_clean
          echo -e "\e[0Ksection_start:`date +%s`:vcpkg_clean[collapsed=true]\r\e[0KCleaning vcpkg-root"

          if [ -d "build/vcpkg-root" ]; then
            pushd "build/vcpkg-root"
            git clean -f
            popd
          fi

          echo -e "\e[0Ksection_end:`date +%s`:vcpkg_clean\r\e[0K"

    - - |
          # ccache_stats
          echo -e "\e[0Ksection_start:`date +%s`:ccache_stats[collapsed=true]\r\e[0Kccache statistics:"
      - ccache --show-stats
      - ccache --show-log-stats || true
      - |
          # ccahe_stats
          echo -e "\e[0Ksection_end:`date +%s`:ccache_stats\r\e[0K"
