# Contributor: Bryce Vandegrift <bryce@brycevandegrift.xyz>
# Maintainer: Bryce Vandegrift <bryce@brycevandegrift.xyz>
pkgname=freecad
pkgver=1.0.0
_ondsel_ver="2e3659c4bce3e6885269e0cb3d640261b2a91108"
_gsl_ver="b39e7e4b0987859f5b19ff7686b149c916588658"
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="
afc1079ea04fd5bb8135f8ad1012d9e4e05c8839dd0a4e00253eada58fe018f445c1200d1ca7ac9f268644c946cbf55b7b313dc3d6bd010f9da3a3334103b7db  freecad-1.0.0.tar.gz
8b08a668c63b57a49b8d95308f31496c1bcb27a5fb024d2e6b9744bd2e4819e82c59f68a8b99cc1be3e2bdfcdf435da5e342afaff4f28d97a849f9c01736af89  OndselSolver-2e3659c4bce3e6885269e0cb3d640261b2a91108.tar.gz
01ae556b70f7b5b572d15a427a6a5e0e7a4047727958be4c61d7dd84fc3bc97aebeaebf60c48064c565884441605fca180d5fdc8c920d35b2a8874664c024b01  GSL-b39e7e4b0987859f5b19ff7686b149c916588658.tar.gz
2f190118bddbf2e070519d0244eafd15ae7919f9759f925f593ce43988a7f9ab023c50bec3768404926e8cc661e829f6a55bec5e9e58c58735c050338fbcec16  no-execinfo.patch
"
