Build cimgui_impl Libraries (GLFW) #3
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Build cimgui_impl Libraries (GLFW) | |
on: [workflow_dispatch] | |
jobs: | |
build: | |
runs-on: ${{ matrix.os }} | |
strategy: | |
matrix: | |
include: | |
- os: ubuntu-latest | |
arch: x86_64 | |
cmake-arch: x64 | |
- os: linux | |
arch: arm64 | |
cmake-arch: aarch64 | |
runner-label: self-hosted | |
- os: windows-latest | |
arch: x86_64 | |
cmake-arch: x64 | |
triplet: x64-windows | |
- os: windows-latest | |
arch: x86 | |
cmake-arch: win32 | |
triplet: x86-windows | |
# - os: windows-latest # Doesn't work. glu32.lib not found despite being present in the sdk/vcpkg. | |
# arch: arm64 | |
# cmake-arch: arm64 | |
# triplet: arm64-windows | |
- os: macos-13 | |
arch: x86_64 | |
cmake-arch: x86_64 | |
- os: macos-latest | |
arch: arm64 | |
cmake-arch: arm64 | |
steps: | |
- uses: actions/checkout@v4.1.7 | |
with: | |
repository: 'HexaEngine/cimgui_impl' | |
path: 'cimgui_impl' | |
submodules: true | |
- name: Install dependencies on Ubuntu | |
if: matrix.os == 'ubuntu-latest' || matrix.os == 'linux' | |
run: | | |
sudo apt-get update | |
sudo apt-get install -y build-essential cmake libsdl2-dev libglfw3-dev libglu1-mesa-dev libvulkan-dev | |
- name: Install dependencies on MacOS | |
if: matrix.os == 'macos-latest' || matrix.os == 'macos-13' | |
run: | | |
brew install cmake sdl2 glfw glew glm | |
- name: Prepare Vulkan SDK | |
if: matrix.os == 'macos-latest' || matrix.os == 'macos-13' | |
uses: humbletim/setup-vulkan-sdk@v1.2.0 | |
with: | |
vulkan-query-version: 1.3.204.0 | |
vulkan-components: Vulkan-Headers, Vulkan-Loader, Glslang | |
vulkan-use-cache: false | |
- name: Install vcpkg (Windows) | |
if: matrix.os == 'windows-latest' | |
run: | | |
cd cimgui_impl | |
git clone https://github.com/microsoft/vcpkg.git | |
./vcpkg/bootstrap-vcpkg.bat | |
- name: Install vcpkg packages | |
if: matrix.os == 'windows-latest' | |
run: | | |
cd cimgui_impl | |
./vcpkg/vcpkg install glfw3:${{ matrix.triplet }} | |
- name: Configure cimgui_impl with CMake on Linux | |
if: matrix.os == 'ubuntu-latest' || matrix.os == 'linux' | |
run: | | |
cmake -S cimgui_impl -B cimgui_impl/build -DBACKENDS_WIN32=OFF -DBACKENDS_D3D11=OFF -DBACKENDS_D3D12=OFF -DBACKENDS_VULKAN=OFF -DBACKENDS_GLFW=ON -DBACKENDS_OPENGL3=OFF -DBACKENDS_OPENGL2=OFF -DBACKENDS_SDL2=OFF | |
- name: Configure cimgui_impl with CMake for macOS | |
if: matrix.os == 'macos-latest' || matrix.os == 'macos-13' | |
run: | | |
cmake -S cimgui_impl -B cimgui_impl/build -DCMAKE_OSX_ARCHITECTURES=${{ matrix.cmake-arch }} -DBACKENDS_WIN32=OFF -DBACKENDS_D3D11=OFF -DBACKENDS_D3D12=OFF -DBACKENDS_VULKAN=OFF -DBACKENDS_GLFW=ON -DBACKENDS_OPENGL3=OFF -DBACKENDS_OPENGL2=OFF -DBACKENDS_SDL2=OFF | |
- name: Configure cimgui_impl with CMake for Windows (x86) | |
if: matrix.os == 'windows-latest' && matrix.arch == 'x86' | |
run: | | |
cd cimgui_impl | |
cmake -S . -B ./build -A ${{ matrix.cmake-arch }} -DCMAKE_TOOLCHAIN_FILE="./vcpkg/scripts/buildsystems/vcpkg.cmake" -DBACKENDS_WIN32=OFF -DBACKENDS_D3D11=OFF -DBACKENDS_D3D12=OFF -DBACKENDS_VULKAN=OFF -DBACKENDS_GLFW=ON -DBACKENDS_OPENGL3=OFF -DBACKENDS_OPENGL2=OFF -DBACKENDS_SDL2=OFF | |
- name: Configure cimgui_impl with CMake for Windows | |
if: matrix.os == 'windows-latest' && matrix.arch != 'x86' | |
run: | | |
cd cimgui_impl | |
cmake -S . -B ./build -A ${{ matrix.cmake-arch }} -DCMAKE_TOOLCHAIN_FILE="./vcpkg/scripts/buildsystems/vcpkg.cmake" -DBACKENDS_WIN32=OFF -DBACKENDS_D3D11=OFF -DBACKENDS_D3D12=OFF -DBACKENDS_VULKAN=OFF -DBACKENDS_GLFW=ON -DBACKENDS_OPENGL3=OFF -DBACKENDS_OPENGL2=OFF -DBACKENDS_SDL2=OFF | |
- name: Build cimgui_impl | |
run: cmake --build cimgui_impl/build --config Release | |
- name: Move Windows binaries | |
if: matrix.os == 'windows-latest' | |
run: | | |
mv cimgui_impl/build/Release/*.dll cimgui_impl/build/ | |
- name: Upload Artifacts | |
uses: actions/upload-artifact@v4.3.4 | |
with: | |
name: cimgui_impl-${{ matrix.os }}-${{ matrix.arch }}-artifacts | |
path: | | |
cimgui_impl/build/*.dll | |
cimgui_impl/build/*.so | |
cimgui_impl/build/*.dylib | |
if-no-files-found: ignore # 'warn' or 'ignore' or 'error' |