[Bf-blender-cvs] [8c3e8d0eb6d] tmp-vulkan: Vulkan: Clean-up platform build support

Ray Molenkamp noreply at git.blender.org
Thu Jul 1 02:01:41 CEST 2021


Commit: 8c3e8d0eb6d5f227dcae09c6cab2bf557efe3795
Author: Ray Molenkamp
Date:   Wed Jun 30 18:01:36 2021 -0600
Branches: tmp-vulkan
https://developer.blender.org/rB8c3e8d0eb6d5f227dcae09c6cab2bf557efe3795

Vulkan: Clean-up platform build support

This polishes up the build support for WITH_VULKAN
the find_package calls were moved to the appropriate
place in the platform cmake files.

For windows the required binaries are copied to
the binary folder.

Windows support relies on D11678 landing and
libraries being added to SVN and will automatically
disable WITH_VULKAN when they are not found.

===================================================================

M	CMakeLists.txt
M	build_files/cmake/platform/platform_unix.cmake
M	build_files/cmake/platform/platform_win32.cmake
M	intern/shader_compiler/CMakeLists.txt
M	source/creator/CMakeLists.txt

===================================================================

diff --git a/CMakeLists.txt b/CMakeLists.txt
index 052cd87d9b7..f2e8dc91776 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -1093,8 +1093,6 @@ endif()
 # Configure Vulkan.
 
 if(WITH_VULKAN)
-  find_package(Vulkan REQUIRED)
-
   list(APPEND BLENDER_GL_LIBRARIES ${Vulkan_LIBRARY})
 
   add_definitions(-DWITH_VULKAN)
diff --git a/build_files/cmake/platform/platform_unix.cmake b/build_files/cmake/platform/platform_unix.cmake
index 7f62399ac4f..6792fa38d48 100644
--- a/build_files/cmake/platform/platform_unix.cmake
+++ b/build_files/cmake/platform/platform_unix.cmake
@@ -101,6 +101,11 @@ find_package_wrapper(PNG REQUIRED)
 find_package_wrapper(ZLIB REQUIRED)
 find_package_wrapper(Freetype REQUIRED)
 
+if(WITH_VULKAN)
+  find_package_wrapper(Vulkan REQUIRED)
+  find_package(ShaderC REQUIRED)
+endif()
+
 if(WITH_PYTHON)
   # No way to set py35, remove for now.
   # find_package(PythonLibs)
diff --git a/build_files/cmake/platform/platform_win32.cmake b/build_files/cmake/platform/platform_win32.cmake
index a0e91199c72..df4c152c044 100644
--- a/build_files/cmake/platform/platform_win32.cmake
+++ b/build_files/cmake/platform/platform_win32.cmake
@@ -875,3 +875,30 @@ if(WITH_HARU)
     set(WITH_HARU OFF)
   endif()
 endif()
+
+if(WITH_VULKAN)
+  if(EXISTS ${LIBDIR}/vulkan)
+    set(Vulkan_FOUND On)
+    set(Vulkan_ROOT_DIR ${LIBDIR}/vulkan)
+    set(Vulkan_INCLUDE_DIR ${Vulkan_ROOT_DIR}/include)
+    set(Vulkan_INCLUDE_DIRS ${Vulkan_INCLUDE_DIR})
+    set(Vulkan_LIBRARY ${Vulkan_ROOT_DIR}/lib/vulkan-1.lib)
+    set(Vulkan_LIBRARIES ${Vulkan_LIBRARY})
+  else()
+    message(WARNING "vulkan was not found, disabling WITH_VULKAN")
+    set(WITH_VULKAN OFF)
+  endif()
+endif()
+
+if(WITH_VULKAN)
+  if(EXISTS ${LIBDIR}/shaderc)
+    set(SHADERC_ROOT_DIR ${LIBDIR}/shaderc)
+    set(SHADERC_INCLUDE_DIR ${SHADERC_ROOT_DIR}/include)
+    set(SHADERC_INCLUDE_DIRS ${SHADERC_INCLUDE_DIR})
+    set(SHADERC_LIBRARY optimized ${SHADERC_ROOT_DIR}/lib/shaderc_shared.lib debug ${SHADERC_ROOT_DIR}/lib/shaderc_shared_d.lib)
+    set(SHADERC_LIBRARIES ${SHADERC_LIBRARY})
+  else()
+    message(WARNING "shaderc was not found, disabling WITH_VULKAN")
+    set(WITH_VULKAN OFF)
+  endif()
+endif()
diff --git a/intern/shader_compiler/CMakeLists.txt b/intern/shader_compiler/CMakeLists.txt
index e9b88295148..290ae928c51 100644
--- a/intern/shader_compiler/CMakeLists.txt
+++ b/intern/shader_compiler/CMakeLists.txt
@@ -23,9 +23,6 @@ set(INC
   ../guardedalloc
 )
 
-find_package(ShaderC REQUIRED)
-
-
 set(INC_SYS
     ${SHADERC_INCLUDE_DIRS}
 )
diff --git a/source/creator/CMakeLists.txt b/source/creator/CMakeLists.txt
index a4b32fac9fc..48e01682ce3 100644
--- a/source/creator/CMakeLists.txt
+++ b/source/creator/CMakeLists.txt
@@ -913,6 +913,26 @@ elseif(WIN32)
     list(APPEND LIB ${TBB_MALLOC_LIBRARIES})
   endif()
 
+  if(WITH_VULKAN)
+    install(
+      FILES
+        ${LIBDIR}/vulkan/bin/vulkan-1.dll
+      DESTINATION "."
+    )
+    install(
+      FILES
+        ${LIBDIR}/shaderc/bin/shaderc_shared.dll
+      DESTINATION "."
+      CONFIGURATIONS Release;RelWithDebInfo;MinSizeRel
+    )
+    install(
+      FILES
+        ${LIBDIR}/shaderc/bin/shaderc_shared_d.dll
+      DESTINATION "."
+      CONFIGURATIONS Debug
+    )
+  endif()
+
   if(WITH_CODEC_SNDFILE)
     install(
       FILES ${LIBDIR}/sndfile/lib/libsndfile-1.dll



More information about the Bf-blender-cvs mailing list