blob: 94e5d8360e133f98690e6f36e708494d1591feac [file] [log] [blame]
Corentin Wallez7fe6efb2020-02-05 17:16:05 +00001# Copyright 2020 The Dawn Authors
2#
3# Licensed under the Apache License, Version 2.0 (the "License");
4# you may not use this file except in compliance with the License.
5# You may obtain a copy of the License at
6#
7# http://www.apache.org/licenses/LICENSE-2.0
8#
9# Unless required by applicable law or agreed to in writing, software
10# distributed under the License is distributed on an "AS IS" BASIS,
11# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12# See the License for the specific language governing permissions and
13# limitations under the License.
14
Aleksi Sapon97b880e2020-09-09 16:39:00 +000015if (NOT TARGET spirv-cross)
16 set(SPIRV_CROSS_EXCEPTIONS_TO_ASSERTIONS ON CACHE BOOL "" FORCE)
17 set(SPIRV_CROSS_ENABLE_TESTS OFF CACHE BOOL "" FORCE)
18 set(SPIRV_CROSS_SKIP_INSTALL ON CACHE BOOL "" FORCE)
19
20 message(STATUS "Dawn: using spirv-cross at ${DAWN_SPIRV_CROSS_DIR}")
21 add_subdirectory(${DAWN_SPIRV_CROSS_DIR})
22endif()
23
Corentin Wallez7fe6efb2020-02-05 17:16:05 +000024if (NOT TARGET SPIRV-Headers)
Corentin Wallez42450c62020-04-10 17:04:31 +000025 set(SPIRV_HEADERS_SKIP_EXAMPLES ON CACHE BOOL "" FORCE)
26 set(SPIRV_HEADERS_SKIP_INSTALL ON CACHE BOOL "" FORCE)
Corentin Wallez7fe6efb2020-02-05 17:16:05 +000027
28 message(STATUS "Dawn: using SPIRV-Headers at ${DAWN_SPIRV_HEADERS_DIR}")
29 add_subdirectory(${DAWN_SPIRV_HEADERS_DIR})
30endif()
31
32if (NOT TARGET SPIRV-Tools)
Corentin Wallez42450c62020-04-10 17:04:31 +000033 set(SPIRV_SKIP_TESTS ON CACHE BOOL "" FORCE)
34 set(SPIRV_SKIP_EXECUTABLES ON CACHE BOOL "" FORCE)
35 set(SKIP_SPIRV_TOOLS_INSTALL ON CACHE BOOL "" FORCE)
Corentin Wallez7fe6efb2020-02-05 17:16:05 +000036
37 message(STATUS "Dawn: using SPIRV-Tools at ${DAWN_SPIRV_TOOLS_DIR}")
38 add_subdirectory(${DAWN_SPIRV_TOOLS_DIR})
39endif()
40
Corentin Wallez7fe6efb2020-02-05 17:16:05 +000041if (DAWN_BUILD_EXAMPLES)
42 if (NOT TARGET glfw)
Corentin Wallez42450c62020-04-10 17:04:31 +000043 set(GLFW_BUILD_DOCS OFF CACHE BOOL "" FORCE)
44 set(GLFW_BUILD_TESTS OFF CACHE BOOL "" FORCE)
45 set(GLFW_BUILD_EXAMPLES OFF CACHE BOOL "" FORCE)
Corentin Wallez7fe6efb2020-02-05 17:16:05 +000046
47 message(STATUS "Dawn: using GLFW at ${DAWN_GLFW_DIR}")
48 add_subdirectory(${DAWN_GLFW_DIR})
49 endif()
50
51 if (NOT TARGET glm)
52 message(STATUS "Dawn: using GLM at ${DAWN_GLM_DIR}")
53 add_subdirectory(${DAWN_GLM_DIR})
54 endif()
55endif()
Corentin Wallez215b5372020-02-15 00:39:13 +000056
Corentin Walleza9439192021-03-22 21:23:36 +000057if (NOT TARGET libtint)
58 message(STATUS "Dawn: using Tint at ${DAWN_TINT_DIR}")
59 add_subdirectory(${DAWN_TINT_DIR})
dan sinclairbb3d7982020-10-23 13:10:20 +000060endif()
61
Corentin Wallez215b5372020-02-15 00:39:13 +000062# Header-only library for khrplatform.h
63add_library(dawn_khronos_platform INTERFACE)
dan sinclairecd46ab2020-10-20 17:43:00 +000064target_sources(dawn_khronos_platform INTERFACE "${CMAKE_CURRENT_SOURCE_DIR}/khronos/KHR/khrplatform.h")
65target_include_directories(dawn_khronos_platform INTERFACE "${CMAKE_CURRENT_SOURCE_DIR}/khronos")
Corentin Wallezd353ca02020-02-18 02:12:35 +000066
67# Header-only library for Vulkan headers
68add_library(dawn_vulkan_headers INTERFACE)
69target_sources(dawn_vulkan_headers INTERFACE
dan sinclairecd46ab2020-10-20 17:43:00 +000070 "${CMAKE_CURRENT_SOURCE_DIR}/khronos/vulkan/vk_icd.h"
71 "${CMAKE_CURRENT_SOURCE_DIR}/khronos/vulkan/vk_layer.h"
72 "${CMAKE_CURRENT_SOURCE_DIR}/khronos/vulkan/vk_platform.h"
73 "${CMAKE_CURRENT_SOURCE_DIR}/khronos/vulkan/vk_sdk_platform.h"
74 "${CMAKE_CURRENT_SOURCE_DIR}/khronos/vulkan/vulkan.h"
75 "${CMAKE_CURRENT_SOURCE_DIR}/khronos/vulkan/vulkan_core.h"
Corentin Wallezd353ca02020-02-18 02:12:35 +000076)
dan sinclairecd46ab2020-10-20 17:43:00 +000077target_include_directories(dawn_vulkan_headers INTERFACE "${CMAKE_CURRENT_SOURCE_DIR}/khronos")