mirror of
https://github.com/KhronosGroup/MoltenVK.git
synced 2026-01-18 05:01:18 +01:00
Add CMake options for dependency exclusions.
This commit is contained in:
@@ -65,6 +65,8 @@ project(MoltenVK
|
||||
set(MVK_CONFIG_LOG_LEVEL "info" CACHE STRING "Set the default log level for MoltenVK. Options are: debug, info, warn, error, off. Default is 'info'.")
|
||||
set_property(CACHE MVK_CONFIG_LOG_LEVEL PROPERTY STRINGS "debug" "info" "warn" "error" "off")
|
||||
|
||||
option(MVK_EXCLUDE_SPIRV_TOOLS "Exclude the SPIRV-Tools dependency. If excluded, disables printing debug SPIR-V disassembly." OFF)
|
||||
option(MVK_EXCLUDE_CEREAL "Exclude the cereal dependency. If excluded, disables reading and writing pipeline caches." OFF)
|
||||
option(MVK_USE_METAL_PRIVATE_API "If enabled, MoltenVK will use private interfaces exposed by Metal to implement Vulkan features that are difficult to support otherwise." OFF)
|
||||
|
||||
option(MVK_BUILD_SHADER_CONVERTER_TOOL "If enabled, the MoltenVKShaderConverter executable will be built." OFF)
|
||||
@@ -81,6 +83,7 @@ list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake/MoltenVK/")
|
||||
list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake/recipes/")
|
||||
|
||||
# General CMake utils
|
||||
set(CPM_USE_NAMED_CACHE_DIRECTORIES 1)
|
||||
include(MoltenVK_CPM_Cache)
|
||||
|
||||
# Generate position-independent code by default
|
||||
|
||||
@@ -53,8 +53,12 @@ set_target_properties(MoltenVK PROPERTIES SOVERSION ${PROJECT_VERSION_MAJOR})
|
||||
|
||||
target_link_libraries(MoltenVK PUBLIC MoltenVK::ShaderConverter)
|
||||
|
||||
include(cereal)
|
||||
target_link_libraries(MoltenVK PRIVATE cereal::cereal)
|
||||
if (NOT MVK_EXCLUDE_CEREAL)
|
||||
include(cereal)
|
||||
target_link_libraries(MoltenVK PRIVATE cereal::cereal)
|
||||
else()
|
||||
target_compile_definitions(MoltenVK PUBLIC MVK_USE_CEREAL=0)
|
||||
endif()
|
||||
|
||||
include(Vulkan-Headers)
|
||||
target_link_libraries(MoltenVK PUBLIC Vulkan::Headers)
|
||||
@@ -20,5 +20,9 @@ target_link_libraries(MoltenVK_ShaderConverter PUBLIC MoltenVK::Common)
|
||||
include(SPIRV-Cross)
|
||||
target_link_libraries(MoltenVK_ShaderConverter PUBLIC SPRIV-Cross::SPRIV-Cross)
|
||||
|
||||
include(SPIRV-Tools)
|
||||
target_link_libraries(MoltenVK_ShaderConverter PUBLIC SPIRV-Tools::SPIRV-Tools)
|
||||
if (NOT MVK_EXCLUDE_SPIRV_TOOLS)
|
||||
include(SPIRV-Tools)
|
||||
target_link_libraries(MoltenVK_ShaderConverter PUBLIC SPIRV-Tools::SPIRV-Tools)
|
||||
else()
|
||||
target_compile_definitions(MoltenVK_ShaderConverter PUBLIC MVK_EXCLUDE_SPIRV_TOOLS=1)
|
||||
endif()
|
||||
Reference in New Issue
Block a user