Build cimgui_impl Libraries (Base) #23
Workflow file for this run
This file contains hidden or 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 (Base) | |
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 | |
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 patchelf | |
- 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.1 | |
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 vulkan:${{ matrix.triplet }} | |
./vcpkg/vcpkg install glslang:${{ matrix.triplet }} | |
# ./vcpkg/vcpkg install opengl:${{ 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_BASE_ONLY=ON -DIMGUI_WCHAR32=ON | |
- 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_BASE_ONLY=ON -DIMGUI_WCHAR32=ON | |
- name: Configure cimgui_impl with CMake for Windows (arm64) | |
if: matrix.os == 'windows-latest' && matrix.arch == 'arm64' | |
run: | | |
cd cimgui_impl | |
cmake -S . -B ./build -A ${{ matrix.cmake-arch }} -DCMAKE_TOOLCHAIN_FILE="./vcpkg/scripts/buildsystems/vcpkg.cmake" -DBACKENDS_BASE_ONLY=ON -DIMGUI_WCHAR32=ON -DCMAKE_SYSTEM_VERSION=10.0.26100.0 | |
- 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_BASE_ONLY=ON -DIMGUI_WCHAR32=ON -DBACKENDS_D3D12=OFF | |
- name: Configure cimgui_impl with CMake for Windows (x86_64) | |
if: matrix.os == 'windows-latest' && matrix.arch == 'x86_64' | |
run: | | |
cd cimgui_impl | |
cmake -S . -B ./build -A ${{ matrix.cmake-arch }} -DCMAKE_TOOLCHAIN_FILE="./vcpkg/scripts/buildsystems/vcpkg.cmake" -DBACKENDS_BASE_ONLY=ON -DIMGUI_WCHAR32=ON | |
- 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' |