Skip to content

Vulkan Configurator 3 #1401

Vulkan Configurator 3

Vulkan Configurator 3 #1401

Workflow file for this run

# Copyright (c) 2023 Valve Corporation
# Copyright (c) 2023 LunarG, Inc.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
name: ci
on:
push:
pull_request:
branches:
- main
jobs:
# Ensure we can build on an older Ubuntu distro with an older version of CMake.
linux_back_compat:
runs-on: ubuntu-20.04
name: "Ubuntu Backcompat"
steps:
- uses: actions/checkout@v4
- name: Install Qt
uses: jurplel/install-qt-action@v3
- name: Test Minimum CMake Version
uses: lukka/get-cmake@latest
with:
cmakeVersion: 3.17.2
- uses: hendrikmuhs/[email protected]
with:
key: linux_back_compat
- run: sudo apt-get -qq update && sudo apt-get install -y libwayland-dev xorg-dev
- run: cmake -S . -B build/ -D UPDATE_DEPS=ON -D CMAKE_BUILD_TYPE=Debug
env:
CMAKE_C_COMPILER_LAUNCHER: ccache
CMAKE_CXX_COMPILER_LAUNCHER: ccache
# Linker warnings as errors
LDFLAGS: -Wl,--fatal-warnings
- run: cmake --build build
- run: cmake --install build --prefix /tmp
linux:
runs-on: ubuntu-latest
steps:
- name: Install Qt
uses: jurplel/install-qt-action@v3
- name: Clone repository
uses: actions/checkout@v4
- run: sudo apt-get -qq update && sudo apt-get install -y libwayland-dev xorg-dev
- run: python3 scripts/github_ci_linux.py --config Debug --tests GitHubCI
- run: python3 scripts/generate_source.py --verify external/Vulkan-Headers/registry
windows:
runs-on: windows-latest
steps:
- uses: actions/checkout@v4
- uses: ilammy/msvc-dev-cmd@v1
- uses: jurplel/install-qt-action@v3
- run: cmake -S . -B build -D UPDATE_DEPS=ON -D BUILD_TESTS=ON -D RUN_ON_GITHUB=ON -D CMAKE_BUILD_TYPE=Debug -G Ninja
- run: cmake --build build
- run: ctest --output-on-failure --test-dir build
- run: cmake --install build --prefix build/install
android:
runs-on: macos-latest
steps:
- uses: actions/checkout@v4
- uses: lukka/get-cmake@latest
- name: Configure
run: |
cmake -S . -B build/ --toolchain $ANDROID_NDK_ROOT/build/cmake/android.toolchain.cmake \
-D ANDROID_PLATFORM=26 \
-D CMAKE_ANDROID_ARCH_ABI=arm64-v8a \
-D CMAKE_ANDROID_STL_TYPE=c++_static \
-D ANDROID_USE_LEGACY_TOOLCHAIN_FILE=NO \
-D CMAKE_BUILD_TYPE=Release \
-D UPDATE_DEPS=ON \
-G "Ninja"
- run: cmake --build build
- run: cmake --install build --prefix build/install
macos:
runs-on: macos-latest
steps:
- uses: actions/checkout@v4
- uses: lukka/get-cmake@latest
- name: Configure
run: |
cmake -S . -B build/ \
-D CMAKE_BUILD_TYPE=Debug \
-D UPDATE_DEPS=ON \
-D BUILD_WERROR=ON \
-G "Ninja"
- run: cmake --build build
- run: cmake --install build --prefix build/install
apple-cross-compile:
name: iOS
runs-on: macos-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
with:
python-version: '3.10'
- uses: lukka/get-cmake@latest
- name: Generate build files
run: |
cmake -S . -B build \
-D CMAKE_SYSTEM_PROCESSOR=arm64 \
-D CMAKE_SYSTEM_NAME=iOS \
-D CMAKE_OSX_ARCHITECTURES=arm64 \
-D CMAKE_BUILD_TYPE=Debug \
-D UPDATE_DEPS=ON \
-D BUILD_WERROR=ON
env:
LDFLAGS: -Wl,-fatal_warnings
CMAKE_GENERATOR: Ninja
- run: cmake --build build
- run: cmake --install build --prefix /tmp
# Helps verify useful details about the dylib (platform, minos, sdk)
- run: vtool -show-build /tmp/lib/VkLayer_api_dump.framework/VkLayer_api_dump
mingw:
runs-on: windows-latest
defaults:
run:
shell: bash
steps:
- uses: actions/checkout@v4
- name: Setup ccache
uses: hendrikmuhs/[email protected]
with:
key: mingw-ccache
- uses: actions/setup-python@v5
with:
python-version: '3.10'
- uses: lukka/get-cmake@latest
- name: GCC Version
run: gcc --version # If this fails MINGW is not setup correctly
- name: Configure
run: cmake -S. -B build -D UPDATE_DEPS=ON -D CMAKE_BUILD_TYPE=Release
env:
LDFLAGS: -fuse-ld=lld # MINGW linking is very slow. Use llvm linker instead.
CMAKE_C_COMPILER_LAUNCHER: ccache
CMAKE_CXX_COMPILER_LAUNCHER: ccache
CMAKE_GENERATOR: Ninja
- run: cmake --build build
- run: cmake --install build --prefix build/install
chromium:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- run: sudo apt-get -qq update && sudo apt-get install -y libwayland-dev xorg-dev
- run: python scripts/gn/gn.py