xref: /aosp_15_r20/external/vulkan-headers/tests/integration/CMakeLists.txt (revision 902771965e4c6d39c75c62130a6a330c08b024db)
1*90277196SAndroid Build Coastguard Worker# ~~~
2*90277196SAndroid Build Coastguard Worker# Copyright 2022-2023 The Khronos Group Inc.
3*90277196SAndroid Build Coastguard Worker# Copyright 2022-2023 Valve Corporation
4*90277196SAndroid Build Coastguard Worker# Copyright 2022-2023 LunarG, Inc.
5*90277196SAndroid Build Coastguard Worker#
6*90277196SAndroid Build Coastguard Worker# SPDX-License-Identifier: Apache-2.0
7*90277196SAndroid Build Coastguard Worker# ~~~
8*90277196SAndroid Build Coastguard Workercmake_minimum_required(VERSION 3.14.2)
9*90277196SAndroid Build Coastguard Worker
10*90277196SAndroid Build Coastguard Workerproject(API LANGUAGES C)
11*90277196SAndroid Build Coastguard Worker
12*90277196SAndroid Build Coastguard Workerif (FIND_PACKAGE_TESTING)
13*90277196SAndroid Build Coastguard Worker    find_package(VulkanHeaders REQUIRED CONFIG)
14*90277196SAndroid Build Coastguard Workerelse()
15*90277196SAndroid Build Coastguard Worker    add_subdirectory(../../ ${CMAKE_CURRENT_BINARY_DIR}/headers)
16*90277196SAndroid Build Coastguard Workerendif()
17*90277196SAndroid Build Coastguard Worker
18*90277196SAndroid Build Coastguard Workerif (NOT TARGET Vulkan::Headers)
19*90277196SAndroid Build Coastguard Worker    message(FATAL_ERROR "Vulkan::Headers target not defined")
20*90277196SAndroid Build Coastguard Workerendif()
21*90277196SAndroid Build Coastguard Worker
22*90277196SAndroid Build Coastguard Workerif (FIND_PACKAGE_TESTING)
23*90277196SAndroid Build Coastguard Worker    if (NOT DEFINED VulkanHeaders_VERSION)
24*90277196SAndroid Build Coastguard Worker        message(FATAL_ERROR "VulkanHeaders_VERSION not defined!")
25*90277196SAndroid Build Coastguard Worker    endif()
26*90277196SAndroid Build Coastguard Worker    message(STATUS "VulkanHeaders_VERSION = ${VulkanHeaders_VERSION}")
27*90277196SAndroid Build Coastguard Workerendif()
28*90277196SAndroid Build Coastguard Worker
29*90277196SAndroid Build Coastguard Workerif (NOT FIND_PACKAGE_TESTING)
30*90277196SAndroid Build Coastguard Worker    # Consuming vulkan-headers via add_subdirectory should NOT add installation code to the parent CMake project.
31*90277196SAndroid Build Coastguard Worker    if (DEFINED CMAKE_INSTALL_INCLUDEDIR)
32*90277196SAndroid Build Coastguard Worker        message(FATAL_ERROR "CMAKE_INSTALL_INCLUDEDIR was defined!")
33*90277196SAndroid Build Coastguard Worker    endif()
34*90277196SAndroid Build Coastguard Worker
35*90277196SAndroid Build Coastguard Worker    # NOTE: Some users may not be using the namespace target.
36*90277196SAndroid Build Coastguard Worker    # Don't accidentally break them unless we have to.
37*90277196SAndroid Build Coastguard Worker    if (NOT TARGET Vulkan-Headers)
38*90277196SAndroid Build Coastguard Worker        message(FATAL_ERROR "Backcompat for Vulkan-Headers target broken!")
39*90277196SAndroid Build Coastguard Worker    endif()
40*90277196SAndroid Build Coastguard Workerendif()
41*90277196SAndroid Build Coastguard Worker
42*90277196SAndroid Build Coastguard Workerset(CMAKE_C_STANDARD 99)
43*90277196SAndroid Build Coastguard Workerset(CMAKE_C_STANDARD_REQUIRED ON)
44*90277196SAndroid Build Coastguard Workerset(CMAKE_C_EXTENSIONS OFF)
45*90277196SAndroid Build Coastguard Worker
46*90277196SAndroid Build Coastguard Workerif(${CMAKE_C_COMPILER_ID} MATCHES "(GNU|Clang)")
47*90277196SAndroid Build Coastguard Worker    add_compile_options(
48*90277196SAndroid Build Coastguard Worker        -Wpedantic
49*90277196SAndroid Build Coastguard Worker        -Wall
50*90277196SAndroid Build Coastguard Worker        -Wextra
51*90277196SAndroid Build Coastguard Worker        -Werror
52*90277196SAndroid Build Coastguard Worker    )
53*90277196SAndroid Build Coastguard Workerendif()
54*90277196SAndroid Build Coastguard Worker
55*90277196SAndroid Build Coastguard Workerif (MSVC)
56*90277196SAndroid Build Coastguard Worker    add_compile_options(
57*90277196SAndroid Build Coastguard Worker        /W4
58*90277196SAndroid Build Coastguard Worker        /permissive-
59*90277196SAndroid Build Coastguard Worker        /WX
60*90277196SAndroid Build Coastguard Worker    )
61*90277196SAndroid Build Coastguard Workerendif()
62*90277196SAndroid Build Coastguard Worker
63*90277196SAndroid Build Coastguard Worker# Test the non-API headers provided by this repo
64*90277196SAndroid Build Coastguard Worker# NOTE: For us testing just means that these header files compile
65*90277196SAndroid Build Coastguard Worker# with reasonable warnings.
66*90277196SAndroid Build Coastguard Worker
67*90277196SAndroid Build Coastguard Worker# vk_icd.h
68*90277196SAndroid Build Coastguard Workeradd_library(vk_icd MODULE ../vk_icd.c)
69*90277196SAndroid Build Coastguard Workertarget_link_libraries(vk_icd PRIVATE Vulkan::Headers)
70*90277196SAndroid Build Coastguard Worker
71*90277196SAndroid Build Coastguard Worker# vk_layer.h
72*90277196SAndroid Build Coastguard Workeradd_library(vk_layer MODULE ../vk_layer.c)
73*90277196SAndroid Build Coastguard Workertarget_link_libraries(vk_layer PRIVATE Vulkan::Headers)
74