[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