mirror of
				https://github.com/thunderbrewhq/thunderbrew
				synced 2025-10-31 08:16:03 +03:00 
			
		
		
		
	 706c8903a1
			
		
	
	
		706c8903a1
		
			
		
	
	
	
	
		
			
			* 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 .
 |