diff options
author | Ray Molenkamp <github@lazydodo.com> | 2022-10-31 19:05:10 +0300 |
---|---|---|
committer | Ray Molenkamp <github@lazydodo.com> | 2022-10-31 19:05:37 +0300 |
commit | 09a02e871427ab919aee0602f2dc3b672af5fcfb (patch) | |
tree | 3550c1066d06a693883821a73426e201529ca2dd /build_files | |
parent | e697442f099aa390923979941fe7f5298d44b1ec (diff) |
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.
Diffstat (limited to 'build_files')
-rw-r--r-- | build_files/build_environment/CMakeLists.txt | 4 | ||||
-rw-r--r-- | build_files/build_environment/cmake/download.cmake | 6 | ||||
-rw-r--r-- | build_files/build_environment/cmake/shaderc.cmake | 63 | ||||
-rw-r--r-- | build_files/build_environment/cmake/shaderc_deps.cmake | 51 | ||||
-rw-r--r-- | build_files/build_environment/cmake/versions.cmake | 40 | ||||
-rw-r--r-- | build_files/build_environment/cmake/vulkan.cmake | 55 |
6 files changed, 218 insertions, 1 deletions
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 +) + +set(VULKAN_LOADER_EXTRA_ARGS + -DVULKAN_HEADERS_INSTALL_DIR=${LIBDIR}/vulkan_headers +) + +ExternalProject_Add(external_vulkan_loader + URL file://${PACKAGE_DIR}/${VULKAN_LOADER_FILE} + URL_HASH ${VULKAN_LOADER_HASH_TYPE}=${VULKAN_LOADER_HASH} + PREFIX ${BUILD_DIR}/vulkan_loader + CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${LIBDIR}/vulkan_loader -Wno-dev ${DEFAULT_CMAKE_FLAGS} ${VULKAN_LOADER_EXTRA_ARGS} + INSTALL_DIR ${LIBDIR}/vulkan_loader +) + +add_dependencies( + external_vulkan_loader + external_vulkan_headers +) + +if(WIN32) + if(BUILD_MODE STREQUAL Release) + ExternalProject_Add_Step(external_vulkan_loader after_install + COMMAND ${CMAKE_COMMAND} -E copy_directory ${LIBDIR}/vulkan_loader/ ${HARVEST_TARGET}/vulkan + COMMAND ${CMAKE_COMMAND} -E copy_directory ${LIBDIR}/vulkan_headers/ ${HARVEST_TARGET}/vulkan + DEPENDEES install + ) + endif() +endif() + |