mirror of
				https://github.com/thunderbrewhq/thunderbrew
				synced 2025-11-04 10:16:02 +03:00 
			
		
		
		
	* chore(build): add vendored SDL 3.0.0 library * chore(build): add vendored glew-cmake-2.2.0 library * feat(console): in the presence of -opengl launch flag, change GxApi to OpenGl * feat(gx): add uncompleted CGxDeviceGLSDL targeting Windows and Linux * chore(build): change SDL3 linkage from shared (bad) to to static (good)
		
			
				
	
	
		
			218 lines
		
	
	
		
			6.7 KiB
		
	
	
	
		
			YAML
		
	
	
	
	
	
			
		
		
	
	
			218 lines
		
	
	
		
			6.7 KiB
		
	
	
	
		
			YAML
		
	
	
	
	
	
name: CMake
 | 
						|
 | 
						|
on: 
 | 
						|
  pull_request: 
 | 
						|
    branches: 
 | 
						|
      - master
 | 
						|
    types: 
 | 
						|
      - opened
 | 
						|
      - synchronize
 | 
						|
      - reopened
 | 
						|
  push: 
 | 
						|
    branches: 
 | 
						|
      - master
 | 
						|
 | 
						|
env:
 | 
						|
  # Customize the CMake build type here (Release, Debug, RelWithDebInfo, etc.)
 | 
						|
  BUILD_TYPE: Release
 | 
						|
 | 
						|
jobs:
 | 
						|
  build:
 | 
						|
    # The CMake configure and build commands are platform agnostic and should work equally
 | 
						|
    # well on Windows or Mac.  You can convert this to a matrix build if you need
 | 
						|
    # cross-platform coverage.
 | 
						|
    # See: https://docs.github.com/en/free-pro-team@latest/actions/learn-github-actions/managing-complex-workflows#using-a-build-matrix
 | 
						|
    runs-on: ubuntu-latest
 | 
						|
    container: ubuntu:latest
 | 
						|
 | 
						|
    steps:
 | 
						|
    - uses: actions/checkout@v2
 | 
						|
      
 | 
						|
    - name: Install dependencies
 | 
						|
      run: apt update && DEBIAN_FRONTEND=noninteractive apt install -y cmake gcc g++ libglu1-mesa-dev pkg-config libx11-dev libxext-dev
 | 
						|
 | 
						|
    - name: Create Build Environment
 | 
						|
      # Some projects don't allow in-source building, so create a separate build directory
 | 
						|
      # We'll use this as our working directory for all subsequent commands
 | 
						|
      run: |
 | 
						|
        mkdir build_test
 | 
						|
        mkdir from_installed
 | 
						|
        mkdir pkg-config
 | 
						|
        mkdir as_subdirectory        
 | 
						|
 | 
						|
    - name: Configure CMake
 | 
						|
      # Use a bash shell so we can use the same syntax for environment variable
 | 
						|
      # access regardless of the host operating system
 | 
						|
      shell: bash
 | 
						|
      working-directory: build_test
 | 
						|
      # Note the current convention is to use the -S and -B options here to specify source 
 | 
						|
      # and build directories, but this is only available with CMake 3.13 and higher.  
 | 
						|
      # The CMake binaries on the Github Actions machines are (as of this writing) 3.12
 | 
						|
      run: cmake $GITHUB_WORKSPACE -DCMAKE_BUILD_TYPE=$BUILD_TYPE
 | 
						|
 | 
						|
    - name: Build test
 | 
						|
      working-directory: build_test
 | 
						|
      shell: bash
 | 
						|
      # Execute the build.  You can specify a specific target with "--target <NAME>"
 | 
						|
      run: cmake --build . --config $BUILD_TYPE
 | 
						|
 | 
						|
    - name: Install test
 | 
						|
      shell: bash
 | 
						|
      working-directory: from_installed
 | 
						|
      run: |
 | 
						|
        mkdir -p ext_project/build
 | 
						|
        cp $GITHUB_WORKSPACE/src/glewinfo.c ext_project/
 | 
						|
        cmake $GITHUB_WORKSPACE -DCMAKE_INSTALL_PREFIX=$GITHUB_WORKSPACE/glew-root-cmake
 | 
						|
        cmake --build . --target install
 | 
						|
        
 | 
						|
        cd ext_project
 | 
						|
        cp $GITHUB_WORKSPACE/glew-cmake/cmake-install-test.cmake CMakeLists.txt
 | 
						|
        cmake -DCMAKE_PREFIX_PATH=$GITHUB_WORKSPACE/glew-root-cmake/ .
 | 
						|
        cmake --build .        
 | 
						|
 | 
						|
    - name: Package config test
 | 
						|
      shell: bash
 | 
						|
      working-directory: pkg-config
 | 
						|
      run: |
 | 
						|
        mkdir -p ext_project
 | 
						|
        cp $GITHUB_WORKSPACE/src/glewinfo.c ext_project/
 | 
						|
        cmake $GITHUB_WORKSPACE -DPKG_CONFIG_REPRESENTATIVE_TARGET=libglew_static -DCMAKE_INSTALL_PREFIX=$GITHUB_WORKSPACE/glew-root-pkg-config
 | 
						|
        cmake --build . --target install
 | 
						|
        
 | 
						|
        cd ext_project
 | 
						|
        gcc $GITHUB_WORKSPACE/src/glewinfo.c $(PKG_CONFIG_PATH=$GITHUB_WORKSPACE/glew-root-pkg-config/lib/pkgconfig pkg-config --libs --cflags glew) -o glewinfo        
 | 
						|
 | 
						|
    - name: Subdirectory test
 | 
						|
      shell: bash
 | 
						|
      working-directory: as_subdirectory
 | 
						|
      run: |
 | 
						|
        cp $GITHUB_WORKSPACE/src/glewinfo.c ./
 | 
						|
        cp $GITHUB_WORKSPACE/glew-cmake/sub-directory-test.cmake CMakeLists.txt
 | 
						|
        cmake .
 | 
						|
        cmake --build .        
 | 
						|
 | 
						|
  build_2_8:
 | 
						|
    # The CMake configure and build commands are platform agnostic and should work equally
 | 
						|
    # well on Windows or Mac.  You can convert this to a matrix build if you need
 | 
						|
    # cross-platform coverage.
 | 
						|
    # See: https://docs.github.com/en/free-pro-team@latest/actions/learn-github-actions/managing-complex-workflows#using-a-build-matrix
 | 
						|
    runs-on: ubuntu-latest
 | 
						|
    container: ubuntu:14.04
 | 
						|
 | 
						|
    steps:
 | 
						|
    - uses: actions/checkout@v2
 | 
						|
      
 | 
						|
    - name: Install dependencies
 | 
						|
      run: apt update && apt install -y cmake gcc libgl1-mesa-dev libx11-dev libxext-dev
 | 
						|
 | 
						|
    - name: Configure CMake
 | 
						|
      shell: bash
 | 
						|
      run: cmake . -DCMAKE_BUILD_TYPE=$BUILD_TYPE
 | 
						|
 | 
						|
    - name: Build test
 | 
						|
      shell: bash
 | 
						|
      run: cmake --build .
 | 
						|
 | 
						|
    - name: Check alias
 | 
						|
      shell: bash
 | 
						|
      run: test -e lib/libGLEW.a
 | 
						|
 | 
						|
  build_3_10:
 | 
						|
    # The CMake configure and build commands are platform agnostic and should work equally
 | 
						|
    # well on Windows or Mac.  You can convert this to a matrix build if you need
 | 
						|
    # cross-platform coverage.
 | 
						|
    # See: https://docs.github.com/en/free-pro-team@latest/actions/learn-github-actions/managing-complex-workflows#using-a-build-matrix
 | 
						|
    runs-on: ubuntu-latest
 | 
						|
    container: ubuntu:18.04
 | 
						|
 | 
						|
    steps:
 | 
						|
    - uses: actions/checkout@v2
 | 
						|
      
 | 
						|
    - name: Install dependencies
 | 
						|
      run: apt update && apt install -y cmake gcc libgl1-mesa-dev libx11-dev libxext-dev
 | 
						|
 | 
						|
    - name: Configure CMake
 | 
						|
      shell: bash
 | 
						|
      run: cmake . -DCMAKE_BUILD_TYPE=$BUILD_TYPE
 | 
						|
 | 
						|
    - name: Build test
 | 
						|
      shell: bash
 | 
						|
      run: cmake --build .
 | 
						|
      
 | 
						|
    - name: Check alias
 | 
						|
      shell: bash
 | 
						|
      run: test -e lib/libGLEW.a
 | 
						|
 | 
						|
  build_latest:
 | 
						|
    runs-on: ubuntu-latest
 | 
						|
    container: ubuntu:latest
 | 
						|
 | 
						|
    steps:
 | 
						|
    - uses: actions/checkout@v2
 | 
						|
      
 | 
						|
    - name: Install dependencies
 | 
						|
      run: apt update && apt install -y python3 python3-pip gcc libgl1-mesa-dev libx11-dev libxext-dev && pip install cmake
 | 
						|
      
 | 
						|
    - name: Configure CMake
 | 
						|
      shell: bash
 | 
						|
      run: cmake . -DCMAKE_BUILD_TYPE=$BUILD_TYPE
 | 
						|
      
 | 
						|
    - name: Build test
 | 
						|
      shell: bash
 | 
						|
      run: cmake --build .
 | 
						|
      
 | 
						|
    - name: Check alias
 | 
						|
      shell: bash
 | 
						|
      run: test -e lib/libGLEW.a
 | 
						|
 | 
						|
  build_mingw:
 | 
						|
    # The CMake configure and build commands are platform agnostic and should work equally
 | 
						|
    # well on Windows or Mac.  You can convert this to a matrix build if you need
 | 
						|
    # cross-platform coverage.
 | 
						|
    # See: https://docs.github.com/en/free-pro-team@latest/actions/learn-github-actions/managing-complex-workflows#using-a-build-matrix
 | 
						|
    runs-on: ubuntu-latest
 | 
						|
    container: ubuntu:18.04
 | 
						|
 | 
						|
    steps:
 | 
						|
    - uses: actions/checkout@v2
 | 
						|
      
 | 
						|
    - name: Install dependencies
 | 
						|
      run: apt update && apt install -y cmake g++-mingw-w64-x86-64 make libgl1-mesa-dev libx11-dev libxext-dev
 | 
						|
 | 
						|
    - name: Configure CMake
 | 
						|
      shell: bash
 | 
						|
      run: cmake . -DCMAKE_BUILD_TYPE=$BUILD_TYPE -DCMAKE_TOOLCHAIN_FILE="$GITHUB_WORKSPACE/glew-cmake/mingw.cmake"
 | 
						|
 | 
						|
    - name: Build test
 | 
						|
      shell: bash
 | 
						|
      run: cmake --build .
 | 
						|
 | 
						|
 | 
						|
  build_mac:
 | 
						|
    runs-on: macos-latest
 | 
						|
 | 
						|
    steps:
 | 
						|
    - uses: actions/checkout@v2
 | 
						|
    
 | 
						|
    - name: Configure CMake
 | 
						|
      shell: bash
 | 
						|
      run: cmake . -DCMAKE_BUILD_TYPE=$BUILD_TYPE
 | 
						|
 | 
						|
    - name: Build test
 | 
						|
      shell: bash
 | 
						|
      run: cmake --build .
 | 
						|
 | 
						|
  build_windows:
 | 
						|
    runs-on: windows-latest
 | 
						|
 | 
						|
    steps:
 | 
						|
    - uses: actions/checkout@v2
 | 
						|
    
 | 
						|
    - name: Configure CMake
 | 
						|
      shell: bash
 | 
						|
      run: cmake . -DCMAKE_BUILD_TYPE=$BUILD_TYPE
 | 
						|
 | 
						|
    - name: Build test
 | 
						|
      shell: bash
 | 
						|
      run: cmake --build .
 |