[Bf-blender-cvs] [09a02e87142] tmp-vfx-platform-2023: deps_builder: shaderc v2022.3 / Vulkan v1.2.198

Ray Molenkamp noreply at git.blender.org
Mon Oct 31 17:05:43 CET 2022


Commit: 09a02e871427ab919aee0602f2dc3b672af5fcfb
Author: Ray Molenkamp
Date:   Mon Oct 31 10:05:10 2022 -0600
Branches: tmp-vfx-platform-2023
https://developer.blender.org/rB09a02e871427ab919aee0602f2dc3b672af5fcfb

deps_builder: shaderc v2022.3 / Vulkan v1.2.198

viewport module specifically requested an older vulkan version
this may still change before the 3.5 libs finalize.

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

M	build_files/build_environment/CMakeLists.txt
M	build_files/build_environment/cmake/download.cmake
A	build_files/build_environment/cmake/shaderc.cmake
A	build_files/build_environment/cmake/shaderc_deps.cmake
M	build_files/build_environment/cmake/versions.cmake
A	build_files/build_environment/cmake/vulkan.cmake

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

diff --git a/build_files/build_environment/CMakeLists.txt b/build_files/build_environment/CMakeLists.txt
index 6dacedcf98d..1a859619495 100644
--- a/build_files/build_environment/CMakeLists.txt
+++ b/build_files/build_environment/CMakeLists.txt
@@ -178,6 +178,8 @@ if(UNIX AND NOT APPLE)
   include(cmake/wayland.cmake)
   include(cmake/wayland_libdecor.cmake)
 endif()
-
+include(cmake/shaderc_deps.cmake)
+include(cmake/shaderc.cmake)
+include(cmake/vulkan.cmake)
 include(cmake/harvest.cmake)
 include(cmake/cve_check.cmake)
diff --git a/build_files/build_environment/cmake/download.cmake b/build_files/build_environment/cmake/download.cmake
index ea3d2768784..ab959d9bf8d 100644
--- a/build_files/build_environment/cmake/download.cmake
+++ b/build_files/build_environment/cmake/download.cmake
@@ -165,3 +165,9 @@ download_source(OCLOC)
 download_source(AOM)
 download_source(FRIBIDI)
 download_source(HARFBUZZ)
+download_source(SHADERC)
+download_source(SHADERC_SPIRV_TOOLS)
+download_source(SHADERC_SPIRV_HEADERS)
+download_source(SHADERC_GLSLANG)
+download_source(VULKAN_HEADERS)
+download_source(VULKAN_LOADER)
diff --git a/build_files/build_environment/cmake/shaderc.cmake b/build_files/build_environment/cmake/shaderc.cmake
new file mode 100644
index 00000000000..a5275837372
--- /dev/null
+++ b/build_files/build_environment/cmake/shaderc.cmake
@@ -0,0 +1,63 @@
+# ***** BEGIN GPL LICENSE BLOCK *****
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software Foundation,
+# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+#
+# ***** END GPL LICENSE BLOCK *****
+set(SHADERC_EXTRA_ARGS
+  -DSHADERC_SKIP_TESTS=On
+  -DSHADERC_SPIRV_TOOLS_DIR=${BUILD_DIR}/shaderc_spirv_tools/src/external_shaderc_spirv_tools
+  -DSHADERC_SPIRV_HEADERS_DIR=${BUILD_DIR}/shaderc_spirv_headers/src/external_shaderc_spirv_headers
+  -DSHADERC_GLSLANG_DIR=${BUILD_DIR}/shaderc_glslang/src/external_shaderc_glslang
+  -DCMAKE_DEBUG_POSTFIX=_d
+  -DPYTHON_EXECUTABLE=${PYTHON_BINARY}
+)
+
+ExternalProject_Add(external_shaderc
+  URL file://${PACKAGE_DIR}/${SHADERC_FILE}
+  URL_HASH ${SHADERC_HASH_TYPE}=${SHADERC_HASH}
+  DOWNLOAD_DIR ${DOWNLOAD_DIR}
+  PREFIX ${BUILD_DIR}/shaderc
+  CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${LIBDIR}/shaderc ${DEFAULT_CMAKE_FLAGS} ${SHADERC_EXTRA_ARGS}
+  INSTALL_DIR ${LIBDIR}/shaderc
+)
+
+add_dependencies(
+  external_shaderc
+  external_shaderc_spirv_tools
+  external_shaderc_spirv_headers
+  external_shaderc_glslang
+)
+
+
+if(WIN32)
+  if(BUILD_MODE STREQUAL Release)
+    ExternalProject_Add_Step(external_shaderc after_install
+      COMMAND ${CMAKE_COMMAND} -E copy_directory ${LIBDIR}/shaderc/include ${HARVEST_TARGET}/shaderc/include
+      COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/shaderc/bin/shaderc_shared.dll ${HARVEST_TARGET}/shaderc/bin/shaderc_shared.dll
+      COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/shaderc/lib/shaderc_shared.lib ${HARVEST_TARGET}/shaderc/lib/shaderc_shared.lib
+
+      DEPENDEES install
+    )
+  endif()
+  if(BUILD_MODE STREQUAL Debug)
+    ExternalProject_Add_Step(external_shaderc after_install
+      COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/shaderc/bin/shaderc_shared_d.dll ${HARVEST_TARGET}/shaderc/bin/shaderc_shared_d.dll
+      COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/shaderc/lib/shaderc_shared_d.lib ${HARVEST_TARGET}/shaderc/lib/shaderc_shared_d.lib
+      DEPENDEES install
+    )
+  endif()
+endif()
+
+
diff --git a/build_files/build_environment/cmake/shaderc_deps.cmake b/build_files/build_environment/cmake/shaderc_deps.cmake
new file mode 100644
index 00000000000..bfe14a55f5b
--- /dev/null
+++ b/build_files/build_environment/cmake/shaderc_deps.cmake
@@ -0,0 +1,51 @@
+# ***** BEGIN GPL LICENSE BLOCK *****
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software Foundation,
+# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+#
+# ***** END GPL LICENSE BLOCK *****
+
+# These are build time requirements for shaderc. We only have to unpack these
+# shaderc will build them.
+
+ExternalProject_Add(external_shaderc_glslang
+  URL file://${PACKAGE_DIR}/${SHADERC_GLSLANG_FILE}
+  URL_HASH ${SHADERC_GLSLANG_HASH_TYPE}=${SHADERC_GLSLANG_HASH}
+  DOWNLOAD_DIR ${DOWNLOAD_DIR}
+  PREFIX ${BUILD_DIR}/shaderc_glslang
+  CONFIGURE_COMMAND echo .
+  BUILD_COMMAND echo .
+  INSTALL_COMMAND echo .
+)
+
+ExternalProject_Add(external_shaderc_spirv_headers
+  URL file://${PACKAGE_DIR}/${SHADERC_SPIRV_HEADERS_FILE}
+  URL_HASH ${SHADERC_SPIRV_HEADERS_HASH_TYPE}=${SHADERC_SPIRV_HEADERS_HASH}
+  DOWNLOAD_DIR ${DOWNLOAD_DIR}
+  PREFIX ${BUILD_DIR}/shaderc_spirv_headers
+  CONFIGURE_COMMAND echo .
+  BUILD_COMMAND echo .
+  INSTALL_COMMAND echo .
+)
+
+ExternalProject_Add(external_shaderc_spirv_tools
+  URL file://${PACKAGE_DIR}/${SHADERC_SPIRV_TOOLS_FILE}
+  URL_HASH ${SHADERC_SPIRV_TOOLS_HASH_TYPE}=${SHADERC_SPIRV_TOOLS_HASH}
+  DOWNLOAD_DIR ${DOWNLOAD_DIR}
+  PREFIX ${BUILD_DIR}/shaderc_spirv_tools
+  CONFIGURE_COMMAND echo .
+  BUILD_COMMAND echo .
+  INSTALL_COMMAND echo .
+)
+
diff --git a/build_files/build_environment/cmake/versions.cmake b/build_files/build_environment/cmake/versions.cmake
index d822a380cab..72accc446a4 100644
--- a/build_files/build_environment/cmake/versions.cmake
+++ b/build_files/build_environment/cmake/versions.cmake
@@ -720,3 +720,43 @@ set(HARFBUZZ_URI https://github.com/harfbuzz/harfbuzz/archive/refs/tags/${HARFBU
 set(HARFBUZZ_HASH 5352ff2eec538ea9a63a485cf01ad8332a3f63aa79921c5a2e301cef185caea1)
 set(HARFBUZZ_HASH_TYPE SHA256)
 set(HARFBUZZ_FILE harfbuzz-${HARFBUZZ_VERSION}.tar.gz)
+
+set(SHADERC_VERSION v2022.3)
+set(SHADERC_URI https://github.com/google/shaderc/archive/${SHADERC_VERSION}.tar.gz)
+set(SHADERC_HASH 5cb762af57637caf997d5f46baa4e8a4)
+set(SHADERC_HASH_TYPE MD5)
+set(SHADERC_FILE shaderc-${SHADERC_VERSION}.tar.gz)
+
+# The versions of shaderc's dependencies can be found in the root of shaderc's
+# source in a file called DEPS.
+
+set(SHADERC_SPIRV_TOOLS_VERSION eb0a36633d2acf4de82588504f951ad0f2cecacb)
+set(SHADERC_SPIRV_TOOLS_URI https://github.com/KhronosGroup/SPIRV-Tools/archive/${SHADERC_SPIRV_TOOLS_VERSION}.tar.gz)
+set(SHADERC_SPIRV_TOOLS_HASH a4bdb8161f0e959c75d0d82d367c24f2)
+set(SHADERC_SPIRV_TOOLS_HASH_TYPE MD5)
+set(SHADERC_SPIRV_TOOLS_FILE SPIRV-Tools-${SHADERC_SPIRV_TOOLS_VERSION}.tar.gz)
+
+set(SHADERC_SPIRV_HEADERS_VERSION 85a1ed200d50660786c1a88d9166e871123cce39)
+set(SHADERC_SPIRV_HEADERS_URI https://github.com/KhronosGroup/SPIRV-Headers/archive/${SHADERC_SPIRV_HEADERS_VERSION}.tar.gz)
+set(SHADERC_SPIRV_HEADERS_HASH 10d5e8160f39344a641523810b075568)
+set(SHADERC_SPIRV_HEADERS_HASH_TYPE MD5)
+set(SHADERC_SPIRV_HEADERS_FILE SPIRV-Headers-${SHADERC_SPIRV_HEADERS_VERSION}.tar.gz)
+
+set(SHADERC_GLSLANG_VERSION 89db4e1caa273a057ea46deba709c6e50001b314)
+set(SHADERC_GLSLANG_URI https://github.com/KhronosGroup/glslang/archive/${SHADERC_GLSLANG_VERSION}.tar.gz)
+set(SHADERC_GLSLANG_HASH 3b3c79ad8e9132ffcb8b63cc29c532e2)
+set(SHADERC_GLSLANG_HASH_TYPE MD5)
+set(SHADERC_GLSLANG_FILE glslang-${SHADERC_GLSLANG_VERSION}.tar.gz)
+
+set(VULKAN_VERSION v1.2.198)
+
+set(VULKAN_HEADERS_URI https://github.com/KhronosGroup/Vulkan-Headers/archive/refs/tags/${VULKAN_VERSION}.tar.gz)
+set(VULKAN_HEADERS_HASH 64fe73e887c963ad546bfc7f9505fa1d)
+set(VULKAN_HEADERS_HASH_TYPE MD5)
+set(VULKAN_HEADERS_FILE Vulkan-Headers-${VULKAN_VERSION}.tar.gz)
+
+set(VULKAN_LOADER_URI https://github.com/KhronosGroup/Vulkan-Loader/archive/refs/tags/${VULKAN_VERSION}.tar.gz)
+set(VULKAN_LOADER_HASH 015170a74f648fd2b41e209b6bf1ebc4)
+set(VULKAN_LOADER_HASH_TYPE MD5)
+set(VULKAN_LOADER_FILE Vulkan-Loader-${VULKAN_VERSION}.tar.gz)
+
diff --git a/build_files/build_environment/cmake/vulkan.cmake b/build_files/build_environment/cmake/vulkan.cmake
new file mode 100644
index 00000000000..1fd94dd59be
--- /dev/null
+++ b/build_files/build_environment/cmake/vulkan.cmake
@@ -0,0 +1,55 @@
+# ***** BEGIN GPL LICENSE BLOCK *****
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software Foundation,
+# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+#
+# ***** END GPL LICENSE BLOCK *****
+
+set(VULKAN_HEADERS_EXTRA_ARGS)
+
+ExternalProject_Add(external_vulkan_headers
+  URL file://${PACKAGE_DIR}/${VULKAN_HEADERS_FILE}
+  URL_HASH ${VULKAN_HEADERS_HASH_TYPE}=${VULKAN_HEADERS_HASH}
+  PREFIX ${BUILD_DIR}/vulkan_headers
+  CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${LIBDIR}/vulkan_headers -Wno-dev ${DEFAULT_CMAKE_FLAGS} ${VULKAN_HEADERS_EXTRA_ARGS}
+  INSTALL_DIR ${LIBDIR}/vulkan_headers


@@ Diff output truncated at 10240 characters. @@



More information about the Bf-blender-cvs mailing list