From dacabf1077df3312471a275fe9974103d760827b Mon Sep 17 00:00:00 2001 From: Alexander von Gluck Date: Fri, 26 Sep 2025 15:12:03 -0500 Subject: [PATCH] glslang: Update to 16.0.0 (will be needed by mesa) * Still 0% tests passing, but hey newer is better --- dev-util/glslang/glslang-16.0.0.recipe | 114 +++++++++++++++++++++++++ 1 file changed, 114 insertions(+) create mode 100644 dev-util/glslang/glslang-16.0.0.recipe diff --git a/dev-util/glslang/glslang-16.0.0.recipe b/dev-util/glslang/glslang-16.0.0.recipe new file mode 100644 index 000000000..e20ed83eb --- /dev/null +++ b/dev-util/glslang/glslang-16.0.0.recipe @@ -0,0 +1,114 @@ +SUMMARY="OpenGL and OpenGL ES shader front end and validator" +DESCRIPTION="Khronos reference front-end for GLSL and ESSL, and sample SPIR-V generator + +There are several components: + +* Reference Validator and GLSL/ESSL -> AST Front End +An OpenGL GLSL and OpenGL|ES GLSL (ESSL) front-end for reference validation and translation of \ +GLSL/ESSL into an internal abstract syntax tree (AST). +Status: Virtually complete, with results carrying similar weight as the specifications. + +* HLSL -> AST Front End +An HLSL front-end for translation of an approximation of HLSL to glslang's AST form. +Status: Partially complete. Semantics are not reference quality and input is not validated. +This is in contrast to the DXC project, which receives a much larger investment and attempts to \ +have definitive/reference-level semantics. +See issue 362 and issue 701 for current status. + +* AST -> SPIR-V Back End +Translates glslang's AST to the Khronos-specified SPIR-V intermediate language. +Status: Virtually complete. + +* Reflector +An API for getting reflection information from the AST, reflection types/variables/etc. from the \ +HLL source (not the SPIR-V). +Status: There is a large amount of functionality present, but no specification/goal to measure \ +completeness against. It is accurate for the input HLL and AST, but only approximate for what would later be emitted for SPIR-V. + +* Standalone Wrapper +glslangValidator is command-line tool for accessing the functionality above. +Status: Complete. +Tasks waiting to be done are documented as GitHub issues." +HOMEPAGE="https://github.com/KhronosGroup/glslang" +COPYRIGHT="2014-2024 The Khronos Group Inc" +LICENSE="Apache v2 + BSD (2-clause) + BSD (3-clause) + MIT" +REVISION="1" +SOURCE_URI="https://github.com/KhronosGroup/glslang/archive/refs/tags/$portVersion.tar.gz" +CHECKSUM_SHA256="172385478520335147d3b03a1587424af0935398184095f24beab128a254ecc7" + +ARCHITECTURES="all !x86_gcc2" +SECONDARY_ARCHITECTURES="x86" + +libVersion="$portVersion" +libVersionCompat="$libVersion compat >= ${libVersion%%.*}" + +PROVIDES=" + glslang$secondaryArchSuffix = $portVersion + cmd:glslang$secondaryArchSuffix = $portVersion + cmd:glslangValidator$secondaryArchSuffix = $portVersion + cmd:spirv_remap$secondaryArchSuffix = $portVersion + lib:libglslang_default_resource_limits$secondaryArchSuffix = $libVersionCompat + lib:libglslang$secondaryArchSuffix = $libVersionCompat + lib:libSPIRV$secondaryArchSuffix = $libVersionCompat + " +REQUIRES=" + haiku$secondaryArchSuffix + " + +PROVIDES_devel=" + glslang${secondaryArchSuffix}_devel = $portVersion + devel:libglslang_default_resource_limits$secondaryArchSuffix = $libVersionCompat + devel:libglslang$secondaryArchSuffix = $libVersionCompat + devel:libSPIRV$secondaryArchSuffix = $libVersionCompat + " +REQUIRES_devel=" + glslang$secondaryArchSuffix == $portVersion base + " + +BUILD_REQUIRES=" + haiku${secondaryArchSuffix}_devel + " +BUILD_PREREQUIRES=" + cmd:cmake + cmd:gcc$secondaryArchSuffix + cmd:make + cmd:python3 + " + +TEST_REQUIRES=" + cmd:diff + " + +BUILD() +{ + cmake -B build -S . -DCMAKE_BUILD_TYPE=Release \ + $cmakeDirArgs \ + -DBUILD_SHARED_LIBS=ON \ + -DENABLE_OPT=OFF \ + -DGLSLANG_TESTS=ON + + make -C build $jobArgs +} + +INSTALL() +{ + # 0% tests passed, 1 tests failed out of 1 (4 crashes) + make -C build install + + prepareInstalledDevelLibs \ + libglslang-default-resource-limits \ + libglslang \ + libSPIRV + + packageEntries devel \ + $developDir \ + $libDir/cmake +} + +TEST() +{ + ctest --test-dir build --output-on-failure +}