diff options
author | Juan Ramos <[email protected]> | 2023-11-20 14:13:20 -0700 |
---|---|---|
committer | Juan Ramos <[email protected]> | 2023-11-20 14:18:09 -0700 |
commit | a32b2b412b48ecd4d05072815dbb2d5de34b5930 (patch) | |
tree | 79a90193bcc2ae61e89ab541ae9d89189f1d1c81 /tests/integration | |
parent | af4fb97d7bde80997b0f61d53bb50bd6c56b8f50 (diff) | |
download | Vulkan-Headers-a32b2b412b48ecd4d05072815dbb2d5de34b5930.tar.gz Vulkan-Headers-a32b2b412b48ecd4d05072815dbb2d5de34b5930.zip |
Use ctest for integration testing
Diffstat (limited to 'tests/integration')
-rw-r--r-- | tests/integration/CMakeLists.txt | 73 |
1 files changed, 73 insertions, 0 deletions
diff --git a/tests/integration/CMakeLists.txt b/tests/integration/CMakeLists.txt new file mode 100644 index 0000000..6a3388e --- /dev/null +++ b/tests/integration/CMakeLists.txt @@ -0,0 +1,73 @@ +# ~~~ +# Copyright 2022-2023 The Khronos Group Inc. +# Copyright 2022-2023 Valve Corporation +# Copyright 2022-2023 LunarG, Inc. +# +# SPDX-License-Identifier: Apache-2.0 +# ~~~ +cmake_minimum_required(VERSION 3.14.2) + +project(API LANGUAGES C) + +if (FIND_PACKAGE_TESTING) + find_package(VulkanHeaders REQUIRED CONFIG) +else() + add_subdirectory(../../ ${CMAKE_CURRENT_BINARY_DIR}/headers) +endif() + +if (NOT TARGET Vulkan::Headers) + message(FATAL_ERROR "Vulkan::Headers target not defined") +endif() + +if (FIND_PACKAGE_TESTING) + if (NOT DEFINED VulkanHeaders_VERSION) + message(FATAL_ERROR "VulkanHeaders_VERSION not defined!") + endif() + message(STATUS "VulkanHeaders_VERSION = ${VulkanHeaders_VERSION}") +endif() + +if (NOT FIND_PACKAGE_TESTING) + # Consuming vulkan-headers via add_subdirectory should NOT add installation code to the parent CMake project. + if (DEFINED CMAKE_INSTALL_INCLUDEDIR) + message(FATAL_ERROR "CMAKE_INSTALL_INCLUDEDIR was defined!") + endif() + + # NOTE: Some users may not be using the namespace target. + # Don't accidentally break them unless we have to. + if (NOT TARGET Vulkan-Headers) + message(FATAL_ERROR "Backcompat for Vulkan-Headers target broken!") + endif() +endif() + +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() + +if (MSVC) + add_compile_options( + /W4 + /permissive- + /WX + ) +endif() + +# Test the non-API headers provided by this repo +# NOTE: For us testing just means that these header files compile +# with reasonable warnings. + +# vk_icd.h +add_library(vk_icd MODULE ../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) |