# Contributor: Jakub Jirutka <jakub@jirutka.cz>
# Maintainer: Jakub Jirutka <jakub@jirutka.cz>
pkgname=include-what-you-use
pkgver=0.23
# Each release is made for particular LLVM version.
# See https://include-what-you-use.org/downloads/.
_llvmver=19
pkgrel=1
pkgdesc="A tool for use with clang to analyze #includes in C and C++ source files"
url="https://include-what-you-use.org"
arch="all"
license="NCSA"
depends="python3"
# -static packages are needed; include-what-you-use depends on LLVM/clang
# internals and some are exposed only in static libs.
makedepends="
	clang$_llvmver-dev
	clang$_llvmver-extra-tools
	clang$_llvmver-static
	cmake
	llvm$_llvmver-dev
	llvm$_llvmver-gtest
	llvm$_llvmver-static
	samurai
	"
subpackages="$pkgname-dbg $pkgname-doc"
source="$pkgname-$pkgver.tar.gz::https://github.com/include-what-you-use/include-what-you-use/archive/refs/tags/$pkgver.tar.gz"
builddir="$srcdir/$pkgname-$pkgver"

# Tests are broken because -fstack-clash-protection in CFLAGS leaking through...
options="!check"

prepare() {
	default_prepare

	sed -i 's|^#!/usr/bin/env python\b|#!/usr/bin/python3|' *.py
}

build() {
	if [ "$CBUILD" != "$CHOST" ]; then
		CMAKE_CROSSOPTS="-DCMAKE_SYSTEM_NAME=Linux -DCMAKE_HOST_SYSTEM_NAME=Linux"
	fi
	cmake -B build -G Ninja \
		-DCMAKE_INSTALL_PREFIX=/usr \
		-DCMAKE_INSTALL_LIBDIR=lib \
		-DBUILD_SHARED_LIBS=True \
		-DCMAKE_BUILD_TYPE=RelWithDebInfo \
		-DCMAKE_VERBOSE_MAKEFILE=ON \
		-DCMAKE_PREFIX_PATH=/usr/lib/llvm$_llvmver \
		$CMAKE_CROSSOPTS .
	cmake --build build
}

check() {
	ctest --test-dir build
}

package() {
	DESTDIR="$pkgdir" cmake --install build

	cd "$pkgdir"
	mv usr/bin/fix_includes.py usr/bin/iwyu-fix-includes
	mv usr/bin/iwyu_tool.py usr/bin/iwyu-tool
}

sha512sums="
5c2bbda7dbc614089717d2a4f8b9a96111dc30efcdd331a21c548399d58b47229210d5f17eb48eeb56c44797068ebac634a5d68a5c50ff322753e5f7965b3d48  include-what-you-use-0.23.tar.gz
"
