diff --git a/CMakeLists.txt b/CMakeLists.txt index b9dc29c5..20b4bc0f 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -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 diff --git a/MoltenVK/CMakeLists.txt b/MoltenVK/CMakeLists.txt index 9e487404..1296ce61 100644 --- a/MoltenVK/CMakeLists.txt +++ b/MoltenVK/CMakeLists.txt @@ -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) \ No newline at end of file diff --git a/MoltenVKShaderConverter/MoltenVKShaderConverter/CMakeLists.txt b/MoltenVKShaderConverter/MoltenVKShaderConverter/CMakeLists.txt index 098dc9e9..8618ed8a 100644 --- a/MoltenVKShaderConverter/MoltenVKShaderConverter/CMakeLists.txt +++ b/MoltenVKShaderConverter/MoltenVKShaderConverter/CMakeLists.txt @@ -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) \ No newline at end of file +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() \ No newline at end of file