forked from gentoo/gentoo
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
A collection of tools, libraries and tests for shader compilation. Includes, for example, a GLSL -> SPIR-V compiler as a shared library, which is required for the upcoming Vulkan support in media-video/mpv. Package-Manager: Portage-2.3.40, Repoman-2.3.9
- Loading branch information
Showing
5 changed files
with
236 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
DIST shaderc-7a23a01742b88329fb2260eda007172135ba25d4.tar.gz 186291 BLAKE2B e91f57ba5c9339fed17d409b82df284a7897ed8bcabb203a0b8aab439df1d460ff5efdaa49e9140801b1430e831bbdca6920181fd1ddd07d8d35eb17b519246b SHA512 558447bc29b0c7610fda0f6c2a6b66f3c8fc7f2f5e336ad190ae959caa8c7aa1e09d3c2efe0e197cb2cbe1fa97e0c68623ce423c658b29fcbd1f1e1ea4c85f18 |
46 changes: 46 additions & 0 deletions
46
media-libs/shaderc/files/shaderc-2017.2-fix-glslang-link-order.patch
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,46 @@ | ||
Original upstream PR: https://github.com/google/shaderc/pull/463 | ||
|
||
From 21c8be385b3fab5edcb934a6d99f69fd389c4e67 Mon Sep 17 00:00:00 2001 | ||
From: Niklas Haas <[email protected]> | ||
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(-) | ||
|
||
diff --git a/glslc/CMakeLists.txt b/glslc/CMakeLists.txt | ||
index acf6fb0..0f5d888 100644 | ||
--- a/glslc/CMakeLists.txt | ||
+++ b/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) | ||
diff --git a/libshaderc_util/CMakeLists.txt b/libshaderc_util/CMakeLists.txt | ||
index 873540a..6d0c465 100644 | ||
--- a/libshaderc_util/CMakeLists.txt | ||
+++ b/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 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,15 @@ | ||
<?xml version="1.0" encoding="UTF-8"?> | ||
<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd"> | ||
<pkgmetadata> | ||
<maintainer type="person"> | ||
<email>[email protected]</email> | ||
<name>Coacher</name> | ||
</maintainer> | ||
<maintainer type="project"> | ||
<email>[email protected]</email> | ||
<name>Proxy Maintainers</name> | ||
</maintainer> | ||
<upstream> | ||
<remote-id type="github">google/shaderc</remote-id> | ||
</upstream> | ||
</pkgmetadata> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,89 @@ | ||
# Copyright 1999-2018 Gentoo Foundation | ||
# Distributed under the terms of the GNU General Public License v2 | ||
|
||
EAPI=6 | ||
|
||
EGIT_COMMIT="7a23a01742b88329fb2260eda007172135ba25d4" | ||
MY_P="${PN}-${EGIT_COMMIT}" | ||
PYTHON_COMPAT=( python{2_7,3_4,3_5,3_6} ) | ||
|
||
inherit cmake-multilib python-any-r1 | ||
|
||
DESCRIPTION="Collection of tools, libraries and tests for shader compilation" | ||
HOMEPAGE="https://github.com/google/shaderc" | ||
SRC_URI="https://github.com/google/shaderc/archive/${EGIT_COMMIT}.tar.gz -> ${MY_P}.tar.gz" | ||
|
||
LICENSE="Apache-2.0" | ||
SLOT="0" | ||
KEYWORDS="~amd64 ~x86" | ||
IUSE="doc test" | ||
|
||
RDEPEND=" | ||
dev-util/glslang[${MULTILIB_USEDEP}] | ||
dev-util/spirv-tools[${MULTILIB_USEDEP}] | ||
" | ||
DEPEND="${RDEPEND} | ||
${PYTHON_DEPS} | ||
dev-util/spirv-headers | ||
doc? ( dev-ruby/asciidoctor ) | ||
test? ( | ||
dev-cpp/gtest | ||
$(python_gen_any_dep 'dev-python/nose[${PYTHON_USEDEP}]') | ||
) | ||
" | ||
|
||
# https://github.com/google/shaderc/issues/470 | ||
RESTRICT=test | ||
|
||
PATCHES=( "${FILESDIR}/${P}-fix-glslang-link-order.patch" ) | ||
|
||
S="${WORKDIR}/${MY_P}" | ||
|
||
python_check_deps() { | ||
if use test; then | ||
has_version --host-root "dev-python/nose[${PYTHON_USEDEP}]" | ||
fi | ||
} | ||
|
||
src_prepare() { | ||
cmake_comment_add_subdirectory examples | ||
|
||
# Unbundle glslang, spirv-headers, spirv-tools | ||
cmake_comment_add_subdirectory third_party | ||
sed -i \ | ||
-e "s|\$<TARGET_FILE:spirv-dis>|${EPREFIX}/usr/bin/spirv-dis|" \ | ||
glslc/test/CMakeLists.txt || die | ||
|
||
# Disable git versioning | ||
sed -i -e '/build-version/d' glslc/CMakeLists.txt || die | ||
|
||
# Manually create build-version.inc as we disabled git versioning | ||
cat <<- EOF > glslc/src/build-version.inc || die | ||
"${P}\n" | ||
"$(best_version dev-util/spirv-tools)\n" | ||
"$(best_version dev-util/glslang)\n" | ||
EOF | ||
|
||
cmake-utils_src_prepare | ||
} | ||
|
||
multilib_src_configure() { | ||
local mycmakeargs=( | ||
-DSHADERC_SKIP_TESTS="$(usex !test)" | ||
) | ||
cmake-utils_src_configure | ||
} | ||
|
||
multilib_src_compile() { | ||
if multilib_is_native_abi && use doc; then | ||
cmake-utils_src_make glslc_doc_README | ||
fi | ||
cmake-utils_src_compile | ||
} | ||
|
||
multilib_src_install() { | ||
if multilib_is_native_abi; then | ||
use doc && local HTML_DOCS=( "${BUILD_DIR}/glslc/README.html" ) | ||
fi | ||
cmake-utils_src_install | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,85 @@ | ||
# Copyright 1999-2018 Gentoo Foundation | ||
# Distributed under the terms of the GNU General Public License v2 | ||
|
||
EAPI=6 | ||
|
||
PYTHON_COMPAT=( python{2_7,3_4,3_5,3_6} ) | ||
|
||
inherit cmake-multilib python-any-r1 git-r3 | ||
|
||
DESCRIPTION="Collection of tools, libraries and tests for shader compilation" | ||
HOMEPAGE="https://github.com/google/shaderc" | ||
EGIT_REPO_URI="https://github.com/google/shaderc.git" | ||
|
||
LICENSE="Apache-2.0" | ||
SLOT="0" | ||
KEYWORDS="" | ||
IUSE="doc test" | ||
|
||
RDEPEND=" | ||
~dev-util/glslang-9999[${MULTILIB_USEDEP}] | ||
~dev-util/spirv-tools-9999[${MULTILIB_USEDEP}] | ||
" | ||
DEPEND="${RDEPEND} | ||
${PYTHON_DEPS} | ||
~dev-util/spirv-headers-9999 | ||
doc? ( dev-ruby/asciidoctor ) | ||
test? ( | ||
dev-cpp/gtest | ||
$(python_gen_any_dep 'dev-python/nose[${PYTHON_USEDEP}]') | ||
) | ||
" | ||
|
||
# https://github.com/google/shaderc/issues/470 | ||
RESTRICT=test | ||
|
||
PATCHES=( "${FILESDIR}/${PN}-2017.2-fix-glslang-link-order.patch" ) | ||
|
||
python_check_deps() { | ||
if use test; then | ||
has_version --host-root "dev-python/nose[${PYTHON_USEDEP}]" | ||
fi | ||
} | ||
|
||
src_prepare() { | ||
cmake_comment_add_subdirectory examples | ||
|
||
# Unbundle glslang, spirv-headers, spirv-tools | ||
cmake_comment_add_subdirectory third_party | ||
sed -i \ | ||
-e "s|\$<TARGET_FILE:spirv-dis>|${EPREFIX}/usr/bin/spirv-dis|" \ | ||
glslc/test/CMakeLists.txt || die | ||
|
||
# Disable git versioning | ||
sed -i -e '/build-version/d' glslc/CMakeLists.txt || die | ||
|
||
# Manually create build-version.inc as we disabled git versioning | ||
cat <<- EOF > glslc/src/build-version.inc || die | ||
"${P}\n" | ||
"$(best_version dev-util/spirv-tools)\n" | ||
"$(best_version dev-util/glslang)\n" | ||
EOF | ||
|
||
cmake-utils_src_prepare | ||
} | ||
|
||
multilib_src_configure() { | ||
local mycmakeargs=( | ||
-DSHADERC_SKIP_TESTS="$(usex !test)" | ||
) | ||
cmake-utils_src_configure | ||
} | ||
|
||
multilib_src_compile() { | ||
if multilib_is_native_abi && use doc; then | ||
cmake-utils_src_make glslc_doc_README | ||
fi | ||
cmake-utils_src_compile | ||
} | ||
|
||
multilib_src_install() { | ||
if multilib_is_native_abi; then | ||
use doc && local HTML_DOCS=( "${BUILD_DIR}/glslc/README.html" ) | ||
fi | ||
cmake-utils_src_install | ||
} |