mirror of
https://github.com/KhronosGroup/Vulkan-Headers
synced 2024-11-21 06:26:00 -07:00
tests: Test Non-API headers
Ensures the non-API headers compile correctly
This commit is contained in:
parent
1401f7a3b3
commit
43946b0feb
7 changed files with 84 additions and 2 deletions
16
.github/workflows/linux.yml
vendored
16
.github/workflows/linux.yml
vendored
|
@ -23,7 +23,7 @@ on:
|
|||
jobs:
|
||||
# Configure/Install the headers.
|
||||
# No need to build since it's a header only library.
|
||||
ubuntu-latest:
|
||||
ubuntu-cmake-install:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
|
@ -35,3 +35,17 @@ jobs:
|
|||
run: cmake -S . -B build
|
||||
- name: Install Vulkan-Headers
|
||||
run: cmake --install build --prefix build/install
|
||||
|
||||
# Enable testing
|
||||
ubuntu-cmake-tests:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
- name: Install build dependencies
|
||||
run: |
|
||||
sudo apt-get -qq update
|
||||
sudo apt-get install -y cmake
|
||||
- name: Configure Vulkan-Headers
|
||||
run: cmake -S . -B build -D BUILD_TESTS=ON
|
||||
- name: Build Vulkan-Headers Tests
|
||||
run: cmake --build build
|
||||
|
|
|
@ -60,6 +60,11 @@ add_library(Vulkan::Registry ALIAS Vulkan-Registry)
|
|||
string(COMPARE EQUAL ${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_SOURCE_DIR} PROJECT_IS_TOP_LEVEL)
|
||||
|
||||
if (PROJECT_IS_TOP_LEVEL)
|
||||
option(BUILD_TESTS "Build the tests" OFF)
|
||||
if (BUILD_TESTS)
|
||||
add_subdirectory(tests)
|
||||
endif()
|
||||
|
||||
include(GNUInstallDirs)
|
||||
include(CMakePackageConfigHelpers)
|
||||
|
||||
|
|
|
@ -21,7 +21,7 @@ Files in this repository originate from:
|
|||
* BUILD.gn
|
||||
* BUILD.md
|
||||
* CMakeLists.txt
|
||||
* cmake/*
|
||||
* tests/*
|
||||
* CODE_OF_CONDUCT.md
|
||||
* INTEGRATION.md
|
||||
* LICENSE.txt
|
||||
|
|
44
tests/CMakeLists.txt
Normal file
44
tests/CMakeLists.txt
Normal file
|
@ -0,0 +1,44 @@
|
|||
# ~~~
|
||||
# Copyright (c) 2022 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.
|
||||
# ~~~
|
||||
|
||||
# Test the non-API headers provided by this repo
|
||||
# NOTE: For us testing just means that these header files compile
|
||||
# with reasonable warnings.
|
||||
|
||||
set(CMAKE_C_STANDARD 99)
|
||||
set(CMAKE_C_STANDARD_REQUIRED ON)
|
||||
set(CMAKE_C_EXTENSIONS OFF)
|
||||
|
||||
if(${CMAKE_C_COMPILER_ID} MATCHES "(GNU|Clang)")
|
||||
add_compile_options(
|
||||
-Wpedantic
|
||||
-Wall
|
||||
-Wextra
|
||||
-Werror
|
||||
)
|
||||
endif()
|
||||
|
||||
# vk_icd.h
|
||||
add_executable(vk_icd vk_icd.c)
|
||||
target_link_libraries(vk_icd PRIVATE Vulkan::Headers)
|
||||
|
||||
# vk_layer.h
|
||||
add_library(vk_layer MODULE vk_layer.c)
|
||||
target_link_libraries(vk_layer PRIVATE Vulkan::Headers)
|
||||
|
||||
# vk_sdk_platform.h
|
||||
add_executable(vk_sdk_platform vk_sdk_platform.c)
|
||||
target_link_libraries(vk_sdk_platform PRIVATE Vulkan::Headers)
|
6
tests/vk_icd.c
Normal file
6
tests/vk_icd.c
Normal file
|
@ -0,0 +1,6 @@
|
|||
#include "vulkan/vk_icd.h"
|
||||
|
||||
int main()
|
||||
{
|
||||
return 0;
|
||||
}
|
7
tests/vk_layer.c
Normal file
7
tests/vk_layer.c
Normal file
|
@ -0,0 +1,7 @@
|
|||
#include "vulkan/vk_layer.h"
|
||||
|
||||
// Use helper macro intended for vulkan layers to export functions
|
||||
VK_LAYER_EXPORT int foobar()
|
||||
{
|
||||
return 0;
|
||||
}
|
6
tests/vk_sdk_platform.c
Normal file
6
tests/vk_sdk_platform.c
Normal file
|
@ -0,0 +1,6 @@
|
|||
#include "vulkan/vk_sdk_platform.h"
|
||||
|
||||
int main()
|
||||
{
|
||||
return 0;
|
||||
}
|
Loading…
Reference in a new issue