mirror of
				https://github.com/KartKrewDev/RingRacers.git
				synced 2025-10-30 08:01:28 +00:00 
			
		
		
		
	Like with ccache, we want to make sure the git checkout is considered clean during build.
		
			
				
	
	
		
			138 lines
		
	
	
	
		
			4.3 KiB
		
	
	
	
		
			YAML
		
	
	
	
	
	
			
		
		
	
	
			138 lines
		
	
	
	
		
			4.3 KiB
		
	
	
	
		
			YAML
		
	
	
	
	
	
Windows x86:
 | 
						|
  extends: .srb2ci
 | 
						|
 | 
						|
  stage: build
 | 
						|
 | 
						|
  when: on_success
 | 
						|
 | 
						|
  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"
 | 
						|
      - |
 | 
						|
          CCACHE=$(which ccache)
 | 
						|
 | 
						|
          cmake \
 | 
						|
            --preset ninja-x86_mingw_static_vcpkg-debug \
 | 
						|
            -G "Unix Makefiles" \
 | 
						|
            -DCMAKE_C_COMPILER_LAUNCHER=$CCACHE \
 | 
						|
            -DCMAKE_CXX_COMPILER_LAUNCHER=$CCACHE \
 | 
						|
            -DCMAKE_C_COMPILER=/usr/bin/i686-w64-mingw32-gcc-posix \
 | 
						|
            -DCMAKE_CXX_COMPILER=/usr/bin/i686-w64-mingw32-g++-posix \
 | 
						|
            -DVCPKG_CHAINLOAD_TOOLCHAIN_FILE=$VCPKG_ROOT/scripts/toolchains/mingw.cmake \
 | 
						|
            -DSRB2_CONFIG_ALWAYS_MAKE_DEBUGLINK=ON
 | 
						|
 | 
						|
      - |
 | 
						|
          # 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"
 |