Skip to content

CMake Cleanup: Compile Definitions and visibility #11

CMake Cleanup: Compile Definitions and visibility

CMake Cleanup: Compile Definitions and visibility #11

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
concurrency:
group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }}
cancel-in-progress: true
on:
push:
pull_request:
branches:
- main
permissions:
contents: read
jobs:
linux:
runs-on: ${{ matrix.os }}
strategy:
matrix:
compiler: [{cc: gcc, cxx: g++}, {cc: clang, cxx: clang++}]
config: [debug, release]
os: [ubuntu-20.04, ubuntu-22.04]
steps:
- uses: actions/checkout@v3
- uses: actions/setup-python@v4
with:
python-version: '3.8'
- uses: lukka/get-cmake@latest
with:
cmakeVersion: 3.17.2
- name: Install build dependencies
run: |
python -m pip install jsonschema pyparsing
sudo apt-get -qq update
sudo apt-get install -y libwayland-dev xorg-dev
- name: Setup ccache
uses: hendrikmuhs/ccache-action@v1.2
with:
key: ${{ matrix.os }}-${{ matrix.config }}-${{ matrix.compiler.cc }}-${{ matrix.compiler.cxx }}
- name: Build Vulkan-ExtensionLayer
run: python scripts/github_ci_build_desktop.py --config ${{ matrix.config }}
env:
CC: ${{ matrix.compiler.cc }}
CXX: ${{ matrix.compiler.cxx }}
CMAKE_C_COMPILER_LAUNCHER: ccache
CMAKE_CXX_COMPILER_LAUNCHER: ccache
- name: Verify generated code is up to date
run: python scripts/github_ci_check_codegen.py
if: matrix.compiler.cc == 'gcc' && matrix.config == 'release'
windows:
runs-on: windows-latest
strategy:
matrix:
arch: [ x64, Win32 ]
steps:
- uses: actions/checkout@v3
- uses: actions/setup-python@v4
with:
python-version: '3.8'
- name: Install build dependencies
run: python -m pip install jsonschema pyparsing
- name: Build Vulkan-ExtensionLayer
run: python scripts/github_ci_build_desktop.py --config release --arch ${{ matrix.arch }}
macos:
runs-on: macos-latest
steps:
- uses: actions/checkout@v3
- uses: actions/setup-python@v4
with:
python-version: '3.8'
- uses: lukka/get-cmake@latest
- name: Setup ccache
uses: hendrikmuhs/ccache-action@v1.2
with:
key: macos-ccache
- name: Configure
run: cmake -S. -B build -G "Ninja" -D CMAKE_BUILD_TYPE=Release -D BUILD_TESTS=ON -D BUILD_WERROR=ON -D UPDATE_DEPS=ON
env:
MACOSX_DEPLOYMENT_TARGET: 10.15
CMAKE_C_COMPILER_LAUNCHER: ccache
CMAKE_CXX_COMPILER_LAUNCHER: ccache
- name: Build
run: cmake --build build
- name: Install
run: cmake --install build --prefix build/install
android_mk:
runs-on: ubuntu-22.04
steps:
- uses: actions/checkout@v3
- uses: actions/setup-python@v4
with:
python-version: '3.8'
- name: Build
run: python scripts/github_ci_android.py --abi arm64-v8a