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