diff --git a/common/shlibs b/common/shlibs index e0b7ed249a0..c5198e9a545 100644 --- a/common/shlibs +++ b/common/shlibs @@ -3396,3 +3396,4 @@ liblinphone.so.9 linphone-3.12.0_1 liblinphone++.so.9 linphone-3.12.0_1 libbelr.so.1 belr-0.1.3_1 libbelcard.so.1 belcard-1.0.2_1 +libshaderc_shared.so shaderc-2017.2_1 diff --git a/srcpkgs/shaderc/patches/fix-glslang-link-order.patch b/srcpkgs/shaderc/patches/fix-glslang-link-order.patch new file mode 100644 index 00000000000..8d56668a569 --- /dev/null +++ b/srcpkgs/shaderc/patches/fix-glslang-link-order.patch @@ -0,0 +1,43 @@ +Original upstream PR: https://github.com/google/shaderc/pull/463 + +From 21c8be385b3fab5edcb934a6d99f69fd389c4e67 Mon Sep 17 00:00:00 2001 +From: Niklas Haas +Date: Tue, 29 May 2018 07:34:00 +0200 +Subject: [PATCH] Fix the link order of libglslang and libHLSL + +libglslang depends on libHLSL, so the latter needs to be specified last. +This fixes an issue when trying to build shaderc against system-wide +versions of libglslang/libHLSL, rather than the in-tree versions from +third_party. + +Additionally, libshaderc_util also depends on SPIRV-Tools +--- + glslc/CMakeLists.txt | 2 +- + libshaderc_util/CMakeLists.txt | 4 ++-- + 2 files changed, 3 insertions(+), 3 deletions(-) + +--- glslc/CMakeLists.txt ++++ glslc/CMakeLists.txt +@@ -18,7 +18,7 @@ add_library(glslc STATIC + shaderc_default_compile_options(glslc) + target_include_directories(glslc PUBLIC ${glslang_SOURCE_DIR}) + target_link_libraries(glslc PRIVATE glslang OSDependent OGLCompiler +- HLSL glslang SPIRV ${CMAKE_THREAD_LIBS_INIT}) ++ glslang SPIRV HLSL ${CMAKE_THREAD_LIBS_INIT}) + target_link_libraries(glslc PRIVATE shaderc_util shaderc) + + add_executable(glslc_exe src/main.cc) +--- libshaderc_util/CMakeLists.txt ++++ libshaderc_util/CMakeLists.txt +@@ -34,8 +34,8 @@ endif(SHADERC_ENABLE_INSTALL) + + find_package(Threads) + target_link_libraries(shaderc_util PRIVATE +- glslang OSDependent OGLCompiler HLSL glslang SPIRV +- SPIRV-Tools-opt ${CMAKE_THREAD_LIBS_INIT}) ++ glslang OSDependent OGLCompiler glslang HLSL SPIRV ++ SPIRV-Tools-opt SPIRV-Tools ${CMAKE_THREAD_LIBS_INIT}) + + shaderc_add_tests( + TEST_PREFIX shaderc_util + diff --git a/srcpkgs/shaderc/template b/srcpkgs/shaderc/template new file mode 100644 index 00000000000..0ad01a79559 --- /dev/null +++ b/srcpkgs/shaderc/template @@ -0,0 +1,35 @@ +# Template file for 'shaderc' +pkgname=shaderc +version=2017.2 +revision=1 +_githash=7a23a01742b88329fb2260eda007172135ba25d4 +wrksrc="shaderc-${_githash}" +build_style=cmake +configure_args="-DSHADERC_SKIP_TESTS=ON" +hostmakedepends="python" +makedepends="SPIRV-Tools-devel glslang-devel" +short_desc="Collection of tools, libraries and tests for shader compilation" +maintainer="maxice8 " +license="Apache-2.0" +homepage="https://github.com/google/shaderc" +distfiles="https://github.com/google/shaderc/archive/${_githash}.tar.gz" +checksum=496c2a45e5f3da2dd5a97d982fa5c7848d15143be42a4536fc28cb09c2e641dd + +pre_configure() { + # Unbundle glslang, SPIRV-Headers, SPIRV-Tools + # also remove examples + sed -i -e '/add_subdirectory(third_party)/d' \ + -e '/add_subdirectory(examples)/d' CMakeLists.txt + + # Disable git versioning + sed -i -e '/build-version/d' glslc/CMakeLists.txt + + # Create our own build-version.inc since we disabled git versioning + # need to keep this in sync with glslang and SPIRV-Tools versions + # this is displayed with 'glslc --version' + cat <<- EOF > glslc/src/build-version.inc + "shaderc\n" + "SPIRV-Tools-2018.2\n" + "glslang-6.2.2569\n" + EOF +}