# Maintainer: Trevor SANDY <trevor[dot]sandy[at]gmail[dot]com>
#  Last Update: July 28, 2025
#  Copyright (C) 2017 - 2025 by Trevor SANDY
pkgname=lpub3d-ci
pkgver=2.4.9.4734
pkgrel=1
pkgdesc="An LDraw Building Instruction Editor"
url="https://trevorsandy.github.io/lpub3d"
arch=('x86_64' 'i686')
license=('GPL3')
makedepends=('glu' 'gcc' 'make')
depends=('unzip' 'qt6-tools' 'qt6-base' 'qt6-5compat' 'libjpeg-turbo' 'mesa-libgl' 'gl2ps' 'minizip' 'llvm' 'mesa')
conflicts=()
replaces=()
backup=()
source=(
	'lpub3d-ci-git.tar.gz'
	'povray.tar.gz'
	'ldview.tar.gz'
	'ldglite.tar.gz'
	'mesa-21.3.9.tar.xz'
	'glu-9.0.1.tar.xz'
	'zstd-1.5.7.tar.gz'
	'complete.zip'
	'lpub3dldrawunf.zip'
	'tenteparts.zip'
	'vexiqparts.zip')
noextract=(
	'povray.tar.gz'
	'ldview.tar.gz'
	'ldglite.tar.gz'
	'mesa-21.3.9.tar.xz'
	'glu-9.0.1.tar.xz'
	'zstd-1.5.7.tar.gz'
	'complete.zip'
	'lpub3dldrawunf.zip'
	'tenteparts.zip'
	'vexiqparts.zip')
sha256sums=(
	SKIP
	'7f953c1f0c44c8b0377efc30ef9c7d511c130b476762fc73dc6857d943dbcc5f'
	'80508cfcb1efddb0b5326f49a17315fad772c3c9a584e61508a3e39eddad2f57'
	'abc36955f33f664103f51d9ef1cc567df7c3cc22af4fc3b6532fbc5de00af2c9'
	'91fe6f20339884e37a7c47bfba42fb1cd397512c9ed5ad423de369f047cd8b5c'
	'fb5a4c2dd6ba6d1c21ab7c05129b0769544e1d68e1e3b0ffecb18e73c93055bc'
	'eb33e51f49a15e023950cd7825ca74a4a2b43db8354825ac24fc1b7ee09e6fa3'
	'13703b0eb55575b88b6a677c7b33c394246010af31d74adbc38ea74abc839633'
	'43875f5b31f9f1bb309f36b0349eb823d50ef771f4283e792283bae32b7389d9'
	'95b65664c455f4895f480ab8e3ed9e96046ca69ee1b296922d76a369e2cf2846'
	'e2f4114c8ff6bfe7e5a43b6c88fb47f32328ddb147578456ec0825aa76803b20')

prepare() {
	# location is ../src
	export WD="$PWD"
	export LDRAWDIR="${HOME}/ldraw"
	export PLATFORM_PRETTY="Arch Linux"
	export PLATFORM_VER="2025"
	export LPUB3D="${pkgname}"
	export TARGET_CPU="$(uname -m)"
	export LP3D_LOG_PATH="${WD}"
	export LP3D_CPU_CORES="$(nproc)"
	export LP3D_3RD_DIST_DIR="lpub3d_linux_3rdparty"
	cd ${pkgname}-git
	# move ldraw archive libraries to extras
	for LDrawLibFile in \
		../complete.zip \
		../lpub3dldrawunf.zip \
		../tenteparts.zip \
		../vexiqparts.zip; do
		if [ -f "${LDrawLibFile}" ]; then
			[ "$(basename ${LDrawLibFile})" = "complete.zip" ] && LIB_CMD=cp || LIB_CMD=mv
			${LIB_CMD} -f ${LDrawLibFile} mainApp/extras/
		fi
	done
	# Build Mesa-amber 21.3.9
	export build_osmesa=1
	# LLVM not needed for default Mesa 21.3.9 configuration
	export llvm_not_used=1
	# Until LDView converts to tinyxml2, build tinyxml from source 
	export build_tinyxml=1
	chmod a+x builds/utilities/CreateRenderers.sh && ./builds/utilities/CreateRenderers.sh
	# location is ../src/${pkgname}-git
	export LDRAWDIR=${HOME}/ldraw
	if [ -x /usr/bin/qmake6 ] ; then
		QMAKE_EXEC=qmake6
	elif [ -x /usr/bin/qmake ] ; then
		QMAKE_EXEC=qmake
	fi
	${QMAKE_EXEC} -makefile CONFIG+=release CONFIG+=build_check CONFIG-=debug_and_release CONFIG+=pkg LPub3D.pro
}

build() {
	cd ${pkgname}-git
	export TARGET_VENDOR="Arch Linux"
	export PLATFORM_CODE="ar"
	export PLATFORM_VER="2025"
	export TARGET_CPU="$(uname -m)"
	make clean
	make -j$(nproc)
	# check lpub3d dependencies
	[[ "${TARGET_CPU}" = "x86_64" || "${TARGET_CPU}" = "aarch64" ]] && \
	LP3D_RELEASE="64bit_release" || LP3D_RELEASE="32bit_release"
	LP3D_SUFFIX=$(cat builds/utilities/version.info | cut -d " " -f 1-2 | sed s/" "//g)
	LP3D_EXE="mainApp/${LP3D_RELEASE}/lpub3d${LP3D_SUFFIX}"
	[ -f "${LP3D_EXE}" ] && ldd ${LP3D_EXE} 2>/dev/null || :
}

package() {
	cd ${pkgname}-git
	make INSTALL_ROOT=${pkgdir} install
}
