First Commit

This commit is contained in:
2025-02-06 22:24:29 +08:00
parent ed7df4c81e
commit 7539e6a53c
18116 changed files with 6181499 additions and 0 deletions

View File

@@ -0,0 +1,33 @@
# ~~~
# Copyright 2022-2023 The Khronos Group Inc.
# Copyright 2022-2023 Valve Corporation
# Copyright 2022-2023 LunarG, Inc.
#
# SPDX-License-Identifier: Apache-2.0
# ~~~
# Test add_subdirectory suppport
add_test(NAME integration.add_subdirectory
COMMAND ${CMAKE_CTEST_COMMAND}
--build-and-test ${CMAKE_CURRENT_LIST_DIR}/integration
${CMAKE_CURRENT_BINARY_DIR}/add_subdirectory
--build-generator ${CMAKE_GENERATOR}
--build-options -DFIND_PACKAGE_TESTING=OFF -DVULKAN_HEADERS_ENABLE_MODULE=OFF
)
set(test_install_dir "${CMAKE_CURRENT_BINARY_DIR}/install")
add_test(NAME integration.install
COMMAND ${CMAKE_COMMAND} --install ${VULKAN_HEADERS_BINARY_DIR} --prefix ${test_install_dir} --config $<CONFIG>
)
# Test find_package suppport
add_test(NAME integration.find_package
COMMAND ${CMAKE_CTEST_COMMAND}
--build-and-test ${CMAKE_CURRENT_LIST_DIR}/integration
${CMAKE_CURRENT_BINARY_DIR}/find_package
--build-generator ${CMAKE_GENERATOR}
--build-options -DFIND_PACKAGE_TESTING=ON -DCMAKE_PREFIX_PATH=${test_install_dir}
)
# Installing comes before testing
set_tests_properties(integration.find_package PROPERTIES DEPENDS integration.install)

View File

@@ -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)

14
externals/vulkan-headers/tests/vk_icd.c vendored Normal file
View File

@@ -0,0 +1,14 @@
/*
* Copyright 2022-2023 The Khronos Group Inc.
* Copyright 2022-2023 Valve Corporation
* Copyright 2022-2023 LunarG, Inc.
*
* SPDX-License-Identifier: Apache-2.0
*/
#include "vulkan/vk_icd.h"
int square(int i)
{
return i * i;
}

View File

@@ -0,0 +1,14 @@
/*
* Copyright 2022-2023 The Khronos Group Inc.
* Copyright 2022-2023 Valve Corporation
* Copyright 2022-2023 LunarG, Inc.
*
* SPDX-License-Identifier: Apache-2.0
*/
#include "vulkan/vk_layer.h"
int square(int i)
{
return i * i;
}