# Contributor: Alexey Minnekhanov <alexeymin@postmarketos.org>
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=qt-creator
pkgver=15.0.1
pkgrel=1
pkgdesc="Lightweight and cross-platform C++ IDE"
url="https://qt-project.org/wiki/Category:Tools::QtCreator"
arch="x86_64 aarch64" # qt6-qtwebengine
license="GPL-3.0-only WITH Qt-GPL-exception-1.0"
depends="
	qt6-qtbase-sqlite
	qt6-qtbase-dev
	qt6-qttools-dev
	"
_llvmver=19
makedepends="
	clang$_llvmver-dev
	clang$_llvmver-static
	cmake
	elfutils-dev
	libsecret-dev
	lld
	llvm$_llvmver-dev
	llvm$_llvmver-gtest
	llvm$_llvmver-static
	qt6-qt5compat-dev
	qt6-qtdeclarative-dev
	qt6-qtdeclarative-private-dev
	qt6-qtquick3d-dev
	qt6-qtserialport-dev
	qt6-qtshadertools-dev
	qt6-qtsvg-dev
	qt6-qtwebengine-dev
	samurai
"
ldpath="/usr/lib/qtcreator:/usr/lib/qtcreator/plugins"
source="
	https://download.qt.io/official_releases/qtcreator/${pkgver%.*}/$pkgver/qt-creator-opensource-src-$pkgver.tar.xz
	fix-execinfo.patch
	fix-malloc-trim.patch
	"

builddir="$srcdir"/qt-creator-opensource-src-$pkgver

build() {
	# enum-constexpr-conversion in clang16 now flags outside-enumeration
	# values like -1 as invalid
	export CC=clang-$_llvmver
	export CXX=clang++-$_llvmver
	export CFLAGS="$CFLAGS -flto=thin"
	export CXXFLAGS="$CXXFLAGS -flto=thin -Wno-error=enum-constexpr-conversion -I/usr/lib/llvm$_llvmver/include"
	export LDFLAGS="$LDFLAGS -fuse-ld=lld"

	case "$CARCH" in
	aarch64)
		# not recognised by clang on aarch64
		export CFLAGS="${CFLAGS/-fstack-clash-protection}"
		export CXXFLAGS="${CXXFLAGS/-fstack-clash-protection}"
		;;
	esac
	cmake -B build -G Ninja \
		-DCMAKE_BUILD_TYPE=RelWithDebInfo \
		-DCMAKE_INSTALL_PREFIX=/usr \
		-DCMAKE_INSTALL_LIBDIR=lib \
		-DBUILD_QBS=OFF \
		-DBUILD_PLUGIN_CLANGFORMAT=OFF \
		-DBUILD_PLUGIN_COPILOT=OFF \
		-DBUILD_WITH_PCH=OFF \
		-DCLANGTOOLING_LINK_CLANG_DYLIB=ON \
		-DQTC_CLANG_BUILDMODE_MATCH=ON
	cmake --build build
}

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

sha512sums="
fb3d75187607c57438beb9ec65c932e3abfd15566d8d11d612b7aa087b9df44d12d18138fbd61ece61ebc29be6d14d1ded3cd1deb1d946bd7d96f2ef2060f853  qt-creator-opensource-src-15.0.1.tar.xz
4771f6ea03ba03406cb6287ec24a6036c246e8b8af71af8befaf8c65ee99b56dd24937f044e32c451bcd4b0905164dfd08982b9bb03c8106bd994c39818100b8  fix-execinfo.patch
e629a306c9d40583e059155b9cfc460434c9b2e29ce82e3b453f92a04c3897b57cf452150d14204cad6baca1f5a905a3b39b3f99691564c0d525257c3bb21aec  fix-malloc-trim.patch
"
