diff options
Diffstat (limited to 'poky/meta/recipes-graphics/shaderc')
3 files changed, 135 insertions, 0 deletions
diff --git a/poky/meta/recipes-graphics/shaderc/files/0001-Fix-the-link-order-of-libglslang-and-libHLSL.patch b/poky/meta/recipes-graphics/shaderc/files/0001-Fix-the-link-order-of-libglslang-and-libHLSL.patch new file mode 100644 index 000000000..7102e25bc --- /dev/null +++ b/poky/meta/recipes-graphics/shaderc/files/0001-Fix-the-link-order-of-libglslang-and-libHLSL.patch @@ -0,0 +1,49 @@ +From 0b9468d4face34879214f500b15e810cdd1a81a1 Mon Sep 17 00:00:00 2001 +From: Niklas Haas <git@haasn.xyz> +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 + +Upstream-Status: Backport [21c8be385b3fab5edcb934a6d99f69fd389c4e67] + +Signed-off-by: Jose Quaresma <quaresma.jose@gmail.com> + +--- + glslc/CMakeLists.txt | 2 +- + libshaderc_util/CMakeLists.txt | 4 ++-- + 2 files changed, 3 insertions(+), 3 deletions(-) + +diff --git a/glslc/CMakeLists.txt b/glslc/CMakeLists.txt +index 31664d1..35b3f19 100644 +--- a/glslc/CMakeLists.txt ++++ b/glslc/CMakeLists.txt +@@ -43,7 +43,7 @@ if (SHADERC_ENABLE_WGSL_OUTPUT) + endif(SHADERC_ENABLE_WGSL_OUTPUT) + + target_link_libraries(glslc PRIVATE +- glslang OSDependent OGLCompiler HLSL glslang SPIRV # Glslang libraries ++ glslang OSDependent OGLCompiler glslang SPIRV HLSL # Glslang libraries + $<$<BOOL:${SHADERC_ENABLE_WGSL_OUTPUT}>:libtint> # Tint libraries, optional + shaderc_util shaderc # internal Shaderc libraries + ${CMAKE_THREAD_LIBS_INIT}) +diff --git a/libshaderc_util/CMakeLists.txt b/libshaderc_util/CMakeLists.txt +index 48f9991..984cc06 100644 +--- a/libshaderc_util/CMakeLists.txt ++++ b/libshaderc_util/CMakeLists.txt +@@ -46,8 +46,8 @@ add_definitions(-DENABLE_HLSL) + + 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/poky/meta/recipes-graphics/shaderc/files/0003-cmake-de-vendor-libs-and-disable-git-versioning.patch b/poky/meta/recipes-graphics/shaderc/files/0003-cmake-de-vendor-libs-and-disable-git-versioning.patch new file mode 100644 index 000000000..0d58925ad --- /dev/null +++ b/poky/meta/recipes-graphics/shaderc/files/0003-cmake-de-vendor-libs-and-disable-git-versioning.patch @@ -0,0 +1,53 @@ +From e092619a9ef7910ad56acfb8728c66f0125d176a Mon Sep 17 00:00:00 2001 +From: Jose Quaresma <quaresma.jose@gmail.com> +Date: Sat, 17 Oct 2020 12:51:50 +0100 +Subject: [PATCH 3/3] cmake: de-vendor libs and disable git versioning + +Upstream-Status: Inappropriate [configuration] + +Signed-off-by: Jose Quaresma <quaresma.jose@gmail.com> +--- + CMakeLists.txt | 2 -- + glslc/CMakeLists.txt | 1 - + glslc/src/build-version.inc | 0 + 3 files changed, 3 deletions(-) + create mode 100644 glslc/src/build-version.inc + +diff --git a/CMakeLists.txt b/CMakeLists.txt +index a4e779b..cfa7bd8 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -70,7 +70,6 @@ endif(MSVC) + + # Configure subdirectories. + # We depend on these for later projects, so they should come first. +-add_subdirectory(third_party) + + if(SHADERC_ENABLE_SPVC) + add_subdirectory(libshaderc_spvc) +@@ -79,7 +78,6 @@ endif() + add_subdirectory(libshaderc_util) + add_subdirectory(libshaderc) + add_subdirectory(glslc) +-add_subdirectory(examples) + + add_custom_target(build-version + ${PYTHON_EXECUTABLE} +diff --git a/glslc/CMakeLists.txt b/glslc/CMakeLists.txt +index 0f5d888..08686e0 100644 +--- a/glslc/CMakeLists.txt ++++ b/glslc/CMakeLists.txt +@@ -26,7 +26,6 @@ shaderc_default_compile_options(glslc_exe) + target_include_directories(glslc_exe PRIVATE ${CMAKE_CURRENT_BINARY_DIR}/.. ${spirv-tools_SOURCE_DIR}/include) + set_target_properties(glslc_exe PROPERTIES OUTPUT_NAME glslc) + target_link_libraries(glslc_exe PRIVATE glslc shaderc_util shaderc) +-add_dependencies(glslc_exe build-version) + + shaderc_add_tests( + TEST_PREFIX glslc +diff --git a/glslc/src/build-version.inc b/glslc/src/build-version.inc +new file mode 100644 +index 0000000..e69de29 +-- +2.28.0 + diff --git a/poky/meta/recipes-graphics/shaderc/shaderc_2020.3.bb b/poky/meta/recipes-graphics/shaderc/shaderc_2020.3.bb new file mode 100644 index 000000000..f5edf53ca --- /dev/null +++ b/poky/meta/recipes-graphics/shaderc/shaderc_2020.3.bb @@ -0,0 +1,33 @@ +SUMMARY = "A collection of tools, libraries and tests for shader compilation" +DESCRIPTION = "The Shaderc library provides an API for compiling GLSL/HLSL \ +source code to SPIRV modules. It has been shipping in the Android NDK since version r12b." +SECTION = "graphics" +HOMEPAGE = "https://github.com/google/shaderc" +LICENSE = "Apache-2.0" +LIC_FILES_CHKSUM = "file://LICENSE;md5=86d3f3a95c324c9479bd8986968f4327" + +SRCREV = "1fce59794079f90ceb091190adbbb5499acd4e95" +SRC_URI = "git://github.com/google/shaderc.git;protocol=https;branch=main \ + file://0001-Fix-the-link-order-of-libglslang-and-libHLSL.patch \ + file://0003-cmake-de-vendor-libs-and-disable-git-versioning.patch \ + " +S = "${WORKDIR}/git" + +inherit cmake python3native + +DEPENDS = "spirv-tools glslang" + +EXTRA_OECMAKE = "-DCMAKE_BUILD_TYPE=Release -DSHADERC_SKIP_TESTS=ON" + +do_configure_prepend() { + # TODO: probably there is better solution for this. + # I dont know any method for get the version of a receipe in DEPENDS + # so do this ugly hack + cat <<- EOF > ${S}/glslc/src/build-version.inc +"${PV}\\n" +"$(pkg-config --modversion SPIRV-Tools)\\n" +"$(glslangValidator --version | head -1 | cut -d' ' -f3)\\n" +EOF +} + +BBCLASSEXTEND = "native nativesdk" |