summaryrefslogtreecommitdiff
path: root/dev-util/shader-slang/shader-slang-2026.16.1.ebuild
blob: 5bbd05f1298ec2424bf518f78e9606466956f1ed (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
# Copyright 2026 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2

EAPI=8

inherit cmake flag-o-matic

DESCRIPTION="Making it easier to work with shaders"
HOMEPAGE="https://shader-slang.org/"
# tarball is same as upstream except for including git submodules
SRC_URI="https://distfiles.gentoo.org/pub/dev/ionen@gentoo.org/${P}.tar.xz"

LICENSE="
	Apache-2.0-with-LLVM-exceptions
	Apache-2.0 Boost-1.0 CC-BY-4.0 MIT Unlicense UoI-NCSA
"
SLOT="0/${PV}"
KEYWORDS="~amd64 ~arm64 ~riscv ~x86"

# needs an annoying submodule that fetches many things, tests seem to
# do runtime compilation that fail due to missing headers, and they
# also need special care and be fed a list of expected failures
# (currently only needed to build x11-terms/kitty, do it as a test)
RESTRICT="test"

RDEPEND="
	app-arch/lz4:=
	dev-libs/miniz:=
	dev-util/glslang:=
	dev-util/spirv-tools
"
DEPEND="
	${RDEPEND}
	>=dev-util/spirv-headers-1.4.350
	dev-util/vulkan-headers
"

PATCHES=(
	"${FILESDIR}"/${PN}-2026.14.1-includedir.patch
	"${FILESDIR}"/${PN}-2026.14.1-libdir.patch
	"${FILESDIR}"/${PN}-2026.14.1-lz4.patch
	"${FILESDIR}"/${PN}-2026.14.1-system-glslang.patch
)

# triggers on examples and other unused subdirs
CMAKE_QA_COMPAT_SKIP=1

# these are modules and do not need a soname
QA_SONAME="
	usr/lib.*/libslang-glsl-module-.*.so
	usr/lib.*/libslang-glslang-.*.so
"

src_configure() {
	# https://github.com/shader-slang/slang/issues/6330
	use elibc_musl && append-lfs-flags

	local mycmakeargs=(
		-DSLANG_ENABLE_PCH=no
		-DSLANG_ENABLE_SLANG_GLSLANG=yes
		-DSLANG_ENABLE_SPLIT_DEBUG_INFO=no
		-DSLANG_USE_SYSTEM_GLSLANG=yes
		-DSLANG_USE_SYSTEM_LZ4=yes
		-DSLANG_USE_SYSTEM_MINIZ=yes
		-DSLANG_USE_SYSTEM_SPIRV_HEADERS=yes
		-DSLANG_USE_SYSTEM_SPIRV_TOOLS=yes
		-DSLANG_USE_SYSTEM_VULKAN_HEADERS=yes
		-DSLANG_VERSION_{FULL,NUMERIC}=${PV}

		# avoid collisions with sys-libs/slang
		-DCMAKE_INSTALL_INCLUDEDIR=include/${PN}
		-DSLANG_ENABLE_SLANG_PROXY=no

		# options disabled for simplicity, will revisit only if needed
		# (some have issues ranging from build failure to live fetching)
		-DSLANG_ENABLE_AFTERMATH=no
		-DSLANG_ENABLE_CUDA=no
		-DSLANG_ENABLE_DXIL=no
		-DSLANG_ENABLE_EXAMPLES=no
		-DSLANG_ENABLE_GFX=no
		-DSLANG_ENABLE_OPTIX=no
		-DSLANG_ENABLE_SLANG_RHI=no
		-DSLANG_ENABLE_TESTS=no
		-DSLANG_SLANG_LLVM_FLAVOR=DISABLE
	)

	cmake_src_configure
}

src_install() {
	local DOCS=()
	cmake_src_install

	mv -- "${ED}"/usr/share/doc/{slang,${PF}} || die
}