init
This commit is contained in:
@@ -0,0 +1,77 @@
|
||||
# Copyright (c) 2023-2025, Thomas Atkinson
|
||||
#
|
||||
# SPDX-License-Identifier: Apache-2.0
|
||||
#
|
||||
# Licensed under the Apache License, Version 2.0 the "License";
|
||||
# you may not use this file except in compliance with the License.
|
||||
# You may obtain a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
|
||||
vkb__register_component(
|
||||
NAME core
|
||||
HEADERS
|
||||
include/core/platform/context.hpp
|
||||
include/core/platform/entrypoint.hpp
|
||||
|
||||
include/core/util/strings.hpp
|
||||
include/core/util/error.hpp
|
||||
include/core/util/hash.hpp
|
||||
include/core/util/logging.hpp
|
||||
include/core/util/profiling.hpp
|
||||
SRC
|
||||
src/strings.cpp
|
||||
src/logging.cpp
|
||||
src/profiling.cpp
|
||||
LINK_LIBS
|
||||
spdlog::spdlog
|
||||
)
|
||||
|
||||
if (VKB_PROFILING)
|
||||
target_link_libraries(vkb__core PUBLIC TracyClient)
|
||||
target_compile_definitions(vkb__core PUBLIC TRACY_ENABLE)
|
||||
endif()
|
||||
|
||||
|
||||
if(ANDROID)
|
||||
target_compile_definitions(vkb__core PUBLIC VK_USE_PLATFORM_ANDROID_KHR PLATFORM__ANDROID)
|
||||
elseif(WIN32)
|
||||
target_compile_definitions(vkb__core PUBLIC VK_USE_PLATFORM_WIN32_KHR PLATFORM__WINDOWS)
|
||||
elseif(APPLE)
|
||||
target_compile_definitions(vkb__core PUBLIC VK_USE_PLATFORM_METAL_EXT PLATFORM__MACOS)
|
||||
elseif(UNIX)
|
||||
target_compile_definitions(vkb__core PUBLIC PLATFORM__LINUX)
|
||||
|
||||
# Choose WSI based on VKB_WSI_SELECTION
|
||||
if (VKB_WSI_SELECTION STREQUAL XCB OR VKB_WSI_SELECTION STREQUAL XLIB OR VKB_WSI_SELECTION STREQUAL WAYLAND)
|
||||
find_package(PkgConfig REQUIRED)
|
||||
endif()
|
||||
if (VKB_WSI_SELECTION STREQUAL XCB)
|
||||
pkg_check_modules(XCB xcb REQUIRED)
|
||||
if (XCB_FOUND)
|
||||
target_compile_definitions(vkb__core PUBLIC VK_USE_PLATFORM_XCB_KHR)
|
||||
endif()
|
||||
elseif (VKB_WSI_SELECTION STREQUAL XLIB)
|
||||
pkg_check_modules(X11 x11 REQUIRED)
|
||||
if (X11_FOUND)
|
||||
target_compile_definitions(vkb__core PUBLIC VK_USE_PLATFORM_XLIB_KHR)
|
||||
endif()
|
||||
elseif (VKB_WSI_SELECTION STREQUAL WAYLAND)
|
||||
pkg_check_modules(WAYLAND wayland-client REQUIRED)
|
||||
if (WAYLAND_FOUND)
|
||||
target_compile_definitions(vkb__core PUBLIC VK_USE_PLATFORM_WAYLAND_KHR)
|
||||
endif()
|
||||
elseif (VKB_WSI_SELECTION STREQUAL D2D)
|
||||
set(DIRECT_TO_DISPLAY TRUE)
|
||||
set(DIRECT_TO_DISPLAY TRUE PARENT_SCOPE)
|
||||
target_compile_definitions(vkb__core PUBLIC VK_USE_PLATFORM_DISPLAY_KHR PLATFORM__LINUX_D2D)
|
||||
else()
|
||||
message(FATAL_ERROR "Unknown WSI")
|
||||
endif()
|
||||
endif()
|
||||
Reference in New Issue
Block a user