diff --git a/main/glslang/APKBUILD b/main/glslang/APKBUILD
index e8916da39bf6218a0c1f71db7b1017ceeddda3c5..84dadc7457f42cf52092d584872b114387a44dc4 100644
--- a/main/glslang/APKBUILD
+++ b/main/glslang/APKBUILD
@@ -1,66 +1,60 @@
 # Contributor: Leo <thinkabit.ukim@gmail.com>
-# Maintainer:
+# Maintainer: Simon Zeni <simon@bl4ckb0ne.ca>
 pkgname=glslang
-pkgver=11.6.0
-pkgrel=1
+pkgver=1.3.204
+pkgrel=0
 pkgdesc="Khronos reference front-end for GLSL, ESSL, and sample SPIR-V generator"
 url="https://github.com/KhronosGroup/glslang"
 arch="all"
 license="BSD-3-Clause"
 depends_dev="$pkgname"
 makedepends="cmake samurai python3 bison spirv-tools-dev"
-checkdepends="bash"
+checkdepends="bash gmock gtest"
 subpackages="$pkgname-static $pkgname-dev"
-source="$pkgname-$pkgver.tar.gz::https://github.com/KhronosGroup/glslang/archive/$pkgver.tar.gz
-	"
+source="$pkgname-$pkgver.tar.gz::https://github.com/KhronosGroup/glslang/archive/sdk-$pkgver.tar.gz"
+builddir="$srcdir/$pkgname-sdk-$pkgver"
+
+case "$CARCH" in
+s390x) options="$options !check" ;; # testsuite seems to fail on big endian
+esac
 
 build() {
 	if [ "$CBUILD" != "$CHOST" ]; then
 		CMAKE_CROSSOPTS="-DCMAKE_SYSTEM_NAME=Linux -DCMAKE_HOST_SYSTEM_NAME=Linux"
 	fi
-	mkdir -p build-shared build-static
-	(cd build-shared
-		cmake \
-			-GNinja \
-			-DCMAKE_INSTALL_PREFIX=/usr \
-			-DCMAKE_INSTALL_LIBDIR=lib \
-			-DCMAKE_BUILD_TYPE=MinSizeRel \
-			-DCMAKE_CXX_FLAGS="$CXXFLAGS" \
-			-DBUILD_SHARED_LIBS=ON \
-			$CMAKE_CROSSOPTS ..
-		ninja
-	)
+	cmake -B build-shared -G Ninja \
+		-DCMAKE_INSTALL_PREFIX=/usr \
+		-DCMAKE_INSTALL_LIBDIR=lib \
+		-DCMAKE_BUILD_TYPE=MinSizeRel \
+		-DBUILD_SHARED_LIBS=ON \
+		-DENABLE_CTEST="$(want_check && echo ON || echo OFF)" \
+		$CMAKE_CROSSOPTS
+	cmake --build build-shared
+
 	sed -i '/add_library(glslang-default-resource-limits/ s/$/ STATIC/' StandAlone/CMakeLists.txt
-	(cd build-static
-		cmake \
-			-GNinja \
-			-DCMAKE_INSTALL_PREFIX=/usr \
-			-DCMAKE_INSTALL_LIBDIR=lib \
-			-DCMAKE_BUILD_TYPE=MinSizeRel \
-			-DCMAKE_CXX_FLAGS="$CXXFLAGS" \
-			-DCMAKE_C_FLAGS="$CFLAGS" \
-			-DBUILD_SHARED_LIBS=OFF \
-			$CMAKE_CROSSOPTS ..
-		ninja
-	)
+	cmake -B build-static -G Ninja \
+		-DCMAKE_INSTALL_PREFIX=/usr \
+		-DCMAKE_INSTALL_LIBDIR=lib \
+		-DCMAKE_BUILD_TYPE=MinSizeRel \
+		-DBUILD_SHARED_LIBS=OFF \
+		-DENABLE_CTEST="$(want_check && echo ON || echo OFF)" \
+		$CMAKE_CROSSOPTS
+	cmake --build build-static
 }
 
 check() {
-	case "$CARCH" in
-		s390x|mips64) return 0;; # testsuite seems to fail on big endian
-	esac
-	cd Test
 	msg "Testing shared version of glslang"
-	./runtests localResults ../build-shared/StandAlone/glslangValidator ../build-shared/StandAlone/spirv-remap
+	ctest --test-dir build-shared --output-on-failure
+
 	msg "Testing static version of glslang"
-	./runtests localResults ../build-static/StandAlone/glslangValidator ../build-static/StandAlone/spirv-remap
+	ctest --test-dir build-static --output-on-failure
 }
 
 package() {
-	DESTDIR="$pkgdir" ninja -C build-shared install
-	DESTDIR="$pkgdir" ninja -C build-static install
+	DESTDIR="$pkgdir" cmake --install build-shared
+	DESTDIR="$pkgdir" cmake --install build-static
 }
 
 sha512sums="
-f7c1affdb4923758f9ff5cae894c40ca86e723850a6265d9c13f996311451bd84c70a178d8d6c0961dcee39c19d724f02d19a21ee6f67f1bb4cdbc618fdc12cf  glslang-11.6.0.tar.gz
+07cbefe50c0c8340501d9f1c0b30141af45565222d5c7a8f3d1959dd267863282100717f631e9a3a11762f3697cb5037a46b763d4b2d9c73056d6f399091f90d  glslang-1.3.204.tar.gz
 "