# Template file for 'DirectXShaderCompiler'
pkgname=DirectXShaderCompiler
version=1.9.2607
revision=1
archs="x86_64* i686*"
build_style=cmake
configure_args="-C ../cmake/caches/PredefinedParams.cmake -DLLVM_INCLUDE_TESTS=OFF -DCLANG_INCLUDE_TESTS=FALSE -DHLSL_INCLUDE_TESTS=FALSE"
hostmakedepends="python3 git"
makedepends="libxml2-devel"
short_desc="DirectX Shader Compiler based on LLVM/Clang"
maintainer="John <me@johnnynator.dev>"
license="NCSA"
homepage="https://github.com/microsoft/DirectXShaderCompiler"
_SPIRV_Headers_commit=29981f65241605e08b0ede4cfeb999fe3b723c6a
_SPIRV_Tools_commit=b707790a898e44038547df54580022fc1cf89c3d
_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="4ed223c7b4c61effa86aeb550e91f51451f479c5bd8820926fed9af452b3dbd5
 232899f1ad4104fb5bc377b94596c7621575eee62ad9a9e8f929b63a7dd8a7ad
 05d8af89737bde57571c48dbd36714c9f520a69623e14de72c3be6b600e277d6
 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_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
	}
}
