# Template file for 'DirectXShaderCompiler'
pkgname=DirectXShaderCompiler
version=1.8.2502
revision=1
archs="x86_64* i686*"
build_style=cmake
configure_args="-C ../cmake/caches/PredefinedParams.cmake"
hostmakedepends="python3 git"
makedepends="libxml2-devel"
short_desc="DirectX Shader Compiler based on LLVM/Clang. "
maintainer="John <me@johnnynator.dev>"
license="LLVM"
homepage="https://github.com/microsoft/DirectXShaderCompiler"
_SPIRV_Headers_commit=3f17b2af6784bfa2c5aa5dbb8e0e74a607dd8b3b
_SPIRV_Tools_commit=4d2f0b40bfe290dea6c6904dafdf7fd8328ba346
_DirectX_Headers_commit=980971e835876dc0cde415e8f9bc646e64667bf7
distfiles="https://github.com/microsoft/DirectXShaderCompiler/archive/refs/tags/v${version}.tar.gz
 https://github.com/KhronosGroup/SPIRV-Headers/archive/${_SPIRV_Headers_commit}.tar.gz
 https://github.com/KhronosGroup/SPIRV-Tools/archive/${_SPIRV_Tools_commit}.tar.gz
 https://github.com/microsoft/DirectX-Headers/archive/${_DirectX_Headers_commit}.tar.gz"
checksum="1318cbe4860d5ee82b447b12391ee7a8d881fbb286914075a099415b741e0c13
 2301e11e5c77213258d6863bf4e6c607a8c6431fa8336e98ac6a2131bd6284f8
 41481a45441d92b2404aa06bdecbb0302f22636335be4e19023632c83fa89aa1
 b5a4b6d8806ff7f29f19879f83d015dbe8740676d4ca0b48647a789cc7773c4e"

skip_extraction="
 ${_SPIRV_Headers_commit}.tar.gz
 ${_SPIRV_Tools_commit}.tar.gz
 ${_DirectX_Headers_commit}.tar.gz
 "

if [ "$XBPS_TARGET_LIBC" = "musl" ]; then
	# Tests on musl would require some patching to be done
	# Also some fun with Mutexes. so mt is disabled for now
	configure_args+=" -DLLVM_INCLUDE_TESTS=OFF -DCLANG_INCLUDE_TESTS=FALSE -DHLSL_INCLUDE_TESTS=FALSE -DLLVM_ENABLE_THREADS=OFF"
fi
nocross="fun with cmake and bunlded llvm"

post_extract() {
	vsrcextract -C external/SPIRV-Headers ${_SPIRV_Headers_commit}.tar.gz
	vsrcextract -C external/SPIRV-Tools ${_SPIRV_Tools_commit}.tar.gz
	vsrcextract -C external/DirectX-Headers ${_DirectX_Headers_commit}.tar.gz
}

do_install() {
	for f in build/lib/libdxcompiler.so*; do
		vinstall $f 644 usr/lib
	done
	vbin build/bin/dxc
	vmkdir usr/include
	vcopy include/dxc usr/include/
	vlicense LICENSE.TXT
	vlicense ThirdPartyNotices.txt
}

DirectXShaderCompiler-devel_package() {
	short_desc+="${short_desc} - development files"
	depends="${sourcepkg}>=${version}_${revision}"
	pkg_install() {
		vmove usr/include
		vmove usr/bin/dxc
	}
}
