# Contributor: Bryce Vandegrift <bryce@brycevandegrift.xyz>
# Maintainer: Bryce Vandegrift <bryce@brycevandegrift.xyz>
pkgname=freecad
pkgver=1.0.1
_ondsel_ver="09d6175a2ba69e7016fcecc4f384946a2f84f92d"
_gsl_ver="2828399820ef4928cc89b65605dca5dc68efca6e"
pkgrel=0
pkgdesc="Open-source parametric 3D modeler"
url="https://www.freecad.org/"
# armv7, armhf, and aarch64: GL_MULTISAMPLE not declared
# s390x: blocked by opencascade-dev, vtk-dev, and freeimage-dev
# riscv64: blocked by py3-pivy, py3-pyside6, pyside6-dev, and py3-shiboken6
arch="all !aarch64 !armhf !armv7 !s390x !riscv64"
license="LGPL-2.0-or-later"
depends="py3-pivy py3-matplotlib py3-pyside6"
makedepends="
	cmake
	ninja
	boost-dev
	doxygen
	python3-dev
	xerces-c-dev
	opencascade-dev
	glew-dev
	gtest-dev
	vtk-dev
	libmedc-dev
	eigen-dev
	coin-dev
	libspnav-dev
	pyside6-dev
	py3-shiboken6
	py3-pivy
	py3-matplotlib
	swig
	jsoncpp-dev
	freeimage-dev
	qt6-qtbase-dev
	qt6-qtsvg-dev
	qt6-qttools-dev
	yaml-cpp-dev"
subpackages="$pkgname-doc $pkgname-dev"
options="!check"
source="$pkgname-$pkgver.tar.gz::https://github.com/FreeCAD/FreeCAD/archive/$pkgver.tar.gz
	OndselSolver-$_ondsel_ver.tar.gz::https://github.com/Ondsel-Development/OndselSolver/archive/$_ondsel_ver.tar.gz
	GSL-$_gsl_ver.tar.gz::https://github.com/microsoft/GSL/archive/$_gsl_ver.tar.gz
	no-execinfo.patch"
builddir="$srcdir/FreeCAD-$pkgver"

prepare() {
	default_prepare

	cp -r $srcdir/OndselSolver-$_ondsel_ver/* $builddir/src/3rdParty/OndselSolver
	cp -r $srcdir/GSL-$_gsl_ver/* $builddir/src/3rdParty/GSL
}

build() {
	cmake -B build -G Ninja \
		-DCMAKE_BUILD_TYPE=Release \
		-DFREECAD_QT_VERSION=6 \
		-DFREECAD_USE_EXTERNAL_PIVY=ON \
		-DBUILD_FLAT_MESH=ON \
		-DENABLE_DEVELOPER_TESTS=OFF \
		-DBUILD_TEST=OFF \
		-DCMAKE_INSTALL_PREFIX=/usr \
		-DCMAKE_INSTALL_DATAROOTDIR=/usr/share \
		-DCMAKE_INSTALL_DATADIR=/usr/share/$pkgname
	ninja -C build
}

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

sha512sums="
69a82c0af45137079b1ce184a4a3df475c005da66b4a4cab17371a1f62432b13f721e3da8b350b3ad50125c939cdfa5fed477e0605d52bd8fcee3c528931a185  freecad-1.0.1.tar.gz
7ad78da60320a686f0734da5196ce4cba49a2ff9ecf0bcd6016a56d65c8a8f7570f2898f84c2602a454bc9ccd8ac12fd137d2a952ffb7cbd15e38350fbbd3d79  OndselSolver-09d6175a2ba69e7016fcecc4f384946a2f84f92d.tar.gz
a6d731c450da91cba34c13293cc0881a842bd90268dd5ef721ae1f48752c41dc355ebea7716a6de5b49d41568e55751c46a9dd78da4cd68656bffd33e5ee448e  GSL-2828399820ef4928cc89b65605dca5dc68efca6e.tar.gz
2f190118bddbf2e070519d0244eafd15ae7919f9759f925f593ce43988a7f9ab023c50bec3768404926e8cc661e829f6a55bec5e9e58c58735c050338fbcec16  no-execinfo.patch
"
