<?xml version="1.0"?>
<package name="llvm">
	<description>Low Level Virtual Machine (LLVM) is a compiler infrastructure</description>
	<releases>
		<release version="22.1.5" revision="1">
			<deps>
				<dep name="cmake"/>
				<dep name="libffi"/>
				<dep name="ninja"/>
				<dep name="Python3"/>
			</deps>
			<build>
				<script>
					<archive name="llvm-project-$VERSION.src">
						<!-- don't use /lib64 on x86_64 -->
						<cmd>sed -i -e '/isArch32Bit\|libx32/s/lib64/lib/g' clang/lib/Driver/ToolChains/Linux.cpp</cmd>
						<!-- don't use libexec -->
						<cmd>sed -i -e 's/DESTINATION libexec/DESTINATION lib/' clang/tools/scan-build/CMakeLists.txt</cmd>
						<cmd>sed -i -e 's/libexec/lib/g' clang/tools/scan-build/bin/scan-build</cmd>

						<cmd>mkdir build</cmd>
						<cmd>cd build</cmd>

						<cmd>echo "CMAKE_INSTALL_PREFIX:PATH=/usr" >> CMakeCache.txt</cmd>
						<cmd>echo "CMAKE_INSTALL_LIBEXECDIR:PATH=lib" >> CMakeCache.txt</cmd>
						<cmd>echo "CMAKE_BUILD_TYPE:STRING=Release" >> CMakeCache.txt</cmd>
						<cmd>echo "LLVM_ENABLE_PROJECTS:STRING=clang;lld" >> CMakeCache.txt</cmd>
						<cmd>echo "LLVM_ENABLE_RUNTIMES:STRING=compiler-rt" >> CMakeCache.txt</cmd>
						<cmd>echo "LLVM_ENABLE_FFI:BOOL=ON" >> CMakeCache.txt</cmd>
						<cmd>echo "LLVM_ENABLE_RTTI:BOOL=ON" >> CMakeCache.txt</cmd>
						<cmd>echo "LLVM_BUILD_LLVM_DYLIB:BOOL=ON" >> CMakeCache.txt</cmd>
						<cmd>echo "LLVM_LINK_LLVM_DYLIB:BOOL=ON" >> CMakeCache.txt</cmd>
						<cmd>echo "LLVM_INCLUDE_BENCHMARKS:BOOL=OFF" >> CMakeCache.txt</cmd>
						<cmd>echo "LLVM_TARGETS_TO_BUILD:STRING=X86;AArch64;AMDGPU;WebAssembly" >> CMakeCache.txt</cmd>
						<cmd>echo "FFI_INCLUDE_DIR:PATH=/usr/lib/libffi/include" >> CMakeCache.txt</cmd>
						<cmd>echo "LLVM_BINUTILS_INCDIR:PATH=/usr/include" >> CMakeCache.txt</cmd>

						<cmd>cmake -G Ninja ../llvm</cmd>
						<cmd>ninja</cmd>
						<cmd>ninja install</cmd>
					</archive>
				</script>
			</build>
		</release>
	</releases>
</package>
