summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--.github/workflows/linux.yml16
-rw-r--r--CMakeLists.txt5
-rw-r--r--README.md2
-rw-r--r--tests/CMakeLists.txt44
-rw-r--r--tests/vk_icd.c6
-rw-r--r--tests/vk_layer.c7
-rw-r--r--tests/vk_sdk_platform.c6
7 files changed, 84 insertions, 2 deletions
diff --git a/.github/workflows/linux.yml b/.github/workflows/linux.yml
index f2dd7d8..36d55cd 100644
--- a/.github/workflows/linux.yml
+++ b/.github/workflows/linux.yml
@@ -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
diff --git a/CMakeLists.txt b/CMakeLists.txt
index b93fe8a..6a7e4e7 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -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)
diff --git a/README.md b/README.md
index 40026db..b5a8113 100644
--- a/README.md
+++ b/README.md
@@ -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
diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt
new file mode 100644
index 0000000..1f12be3
--- /dev/null
+++ b/tests/CMakeLists.txt
@@ -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)
diff --git a/tests/vk_icd.c b/tests/vk_icd.c
new file mode 100644
index 0000000..23766e5
--- /dev/null
+++ b/tests/vk_icd.c
@@ -0,0 +1,6 @@
+#include "vulkan/vk_icd.h"
+
+int main()
+{
+ return 0;
+}
diff --git a/tests/vk_layer.c b/tests/vk_layer.c
new file mode 100644
index 0000000..660d29b
--- /dev/null
+++ b/tests/vk_layer.c
@@ -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;
+}
diff --git a/tests/vk_sdk_platform.c b/tests/vk_sdk_platform.c
new file mode 100644
index 0000000..750e538
--- /dev/null
+++ b/tests/vk_sdk_platform.c
@@ -0,0 +1,6 @@
+#include "vulkan/vk_sdk_platform.h"
+
+int main()
+{
+ return 0;
+}