[Bf-blender-cvs] [d2c6a27f58d] temp-ghost-vulkan: Finding MOLTENVK.
Jeroen Bakker
noreply at git.blender.org
Tue Nov 1 13:51:23 CET 2022
Commit: d2c6a27f58daf6bb67cc508a2c5e63a6ac5bf46d
Author: Jeroen Bakker
Date: Tue Nov 1 13:51:16 2022 +0100
Branches: temp-ghost-vulkan
https://developer.blender.org/rBd2c6a27f58daf6bb67cc508a2c5e63a6ac5bf46d
Finding MOLTENVK.
===================================================================
M CMakeLists.txt
A build_files/cmake/Modules/FindMoltenVK.cmake
M build_files/cmake/platform/platform_apple.cmake
M intern/ghost/CMakeLists.txt
===================================================================
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 907400a3713..6e56a2e10e1 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -1232,17 +1232,13 @@ endif()
if(WITH_VULKAN_BACKEND)
list(APPEND BLENDER_GL_LIBRARIES ${VULKAN_LIBRARIES})
+ if(APPLE)
+ list(APPEND BLENDER_GL_LIBRARIES ${MOLTENVK_LIBRARIES})
+ endif()
add_definitions(-DWITH_VULKAN_BACKEND)
endif()
-# -----------------------------------------------------------------------------
-# Configure Vulkan.
-
-if(WITH_VULKAN_BACKEND)
- add_definitions(-DWITH_VULKAN_BACKEND)
-endif()
-
# -----------------------------------------------------------------------------
# Configure Metal
diff --git a/build_files/cmake/Modules/FindMoltenVK.cmake b/build_files/cmake/Modules/FindMoltenVK.cmake
new file mode 100644
index 00000000000..07584e51ae5
--- /dev/null
+++ b/build_files/cmake/Modules/FindMoltenVK.cmake
@@ -0,0 +1,59 @@
+# SPDX-License-Identifier: BSD-3-Clause
+# Copyright 2022 Blender Foundation.
+
+# - Find MoltenVK libraries
+# Find the MoltenVK includes and libraries
+# This module defines
+# MOLTENVK_INCLUDE_DIRS, where to find MoltenVK headers, Set when
+# MOLTENVK_INCLUDE_DIR is found.
+# MOLTENVK_LIBRARIES, libraries to link against to use MoltenVK.
+# MOLTENVK_ROOT_DIR, The base directory to search for MoltenVK.
+# This can also be an environment variable.
+# MOLTENVK_FOUND, If false, do not try to use MoltenVK.
+#
+
+# If MOLTENVK_ROOT_DIR was defined in the environment, use it.
+IF(NOT MOLTENVK_ROOT_DIR AND NOT $ENV{MOLTENVK_ROOT_DIR} STREQUAL "")
+ SET(MOLTENVK_ROOT_DIR $ENV{MOLTENVK_ROOT_DIR})
+ENDIF()
+
+SET(_moltenvk_SEARCH_DIRS
+ ${MOLTENVK_ROOT_DIR}
+ ${LIBDIR}/vulkan/MoltenVK
+)
+
+
+FIND_PATH(MOLTENVK_INCLUDE_DIR
+ NAMES
+ MoltenVK/vk_mvk_moltenvk.h
+ HINTS
+ ${_moltenvk_SEARCH_DIRS}
+ PATH_SUFFIXES
+ include
+)
+
+FIND_LIBRARY(MOLTENVK_LIBRARY
+ NAMES
+ MoltenVK
+ HINTS
+ ${_moltenvk_SEARCH_DIRS}
+ PATH_SUFFIXES
+ dylib/macOS
+)
+
+# handle the QUIETLY and REQUIRED arguments and set MOLTENVK_FOUND to TRUE if
+# all listed variables are TRUE
+INCLUDE(FindPackageHandleStandardArgs)
+FIND_PACKAGE_HANDLE_STANDARD_ARGS(MoltenVK DEFAULT_MSG MOLTENVK_LIBRARY MOLTENVK_INCLUDE_DIR)
+
+IF(MOLTENVK_FOUND)
+ SET(MOLTENVK_LIBRARIES ${MOLTENVK_LIBRARY})
+ SET(MOLTENVK_INCLUDE_DIRS ${MOLTENVK_INCLUDE_DIR})
+ENDIF()
+
+MARK_AS_ADVANCED(
+ MOLTENVK_INCLUDE_DIR
+ MOLTENVK_LIBRARY
+)
+
+UNSET(_moltenvk_SEARCH_DIRS)
diff --git a/build_files/cmake/platform/platform_apple.cmake b/build_files/cmake/platform/platform_apple.cmake
index bdb3974a68c..b923a076792 100644
--- a/build_files/cmake/platform/platform_apple.cmake
+++ b/build_files/cmake/platform/platform_apple.cmake
@@ -101,7 +101,8 @@ if(WITH_USD)
endif()
if(WITH_VULKAN_BACKEND)
- find_package(VULKAN REQUIRED)
+ find_package(Vulkan REQUIRED)
+ find_package(MoltenVK REQUIRED)
endif()
if(WITH_OPENSUBDIV)
diff --git a/intern/ghost/CMakeLists.txt b/intern/ghost/CMakeLists.txt
index 7c44b648111..830c10608a1 100644
--- a/intern/ghost/CMakeLists.txt
+++ b/intern/ghost/CMakeLists.txt
@@ -84,11 +84,13 @@ if(WITH_VULKAN_BACKEND)
)
list(APPEND INC_SYS
- ${VULKAN_INCLUDE_DIR}
+ ${VULKAN_INCLUDE_DIRS}
+ ${MOLTENVK_INCLUDE_DIRS}
)
list(APPEND LIB
- ${VULKAN_LIBRARY}
+ ${VULKAN_LIBRARIES}
+ ${MOLTENVK_LIBRARIES}
)
endif()
More information about the Bf-blender-cvs
mailing list