PKGBUILDs/extra/freecad/PKGBUILD
2024-09-20 13:35:22 +00:00

90 lines
3.3 KiB
Bash

# Maintainer: Alexander F. Rødseth <xyproto@archlinux.org>
# Contributor: loqs <bugs-archlinux@entropy-collector.net>
# Contributor: Gabriel Souza Franco <gabrielfrancosouza@gmail.com>
# Contributor: Florian Pritz
# Contributor: Jonas Heinrich <onny@project-insanity.org>
# Contributor: Jordi De Groof <jordi.degroof@gmail.com>
# Contributor: mickele
# Contributor: manwithgrenade
# Contributor: bricem13
# Contributor: gborzi
# Contributor: Adrian Insaurralde
# Contributor: Martin Rodriguez Reboredo
# Contributor: Jamin Collins
# ALARM: Kevin Mihelich <kevin@archlinuxarm.org>
# - remove makedepends on ospray
buildarch=8
highmem=1
pkgname=freecad
pkgver=1.0rc1
pkgrel=3
pkgdesc='Feature based parametric 3D CAD modeler'
arch=(x86_64)
url='https://freecadweb.org/'
license=(LGPL)
depends=(asciidoctor boost-libs coin fmt glew jsoncpp libspnav med-openmpi
netcdf opencascade openmpi pugixml pyside6 python-gitpython yaml-cpp
python-markdown python-matplotlib python-pip python-pivy python-ply
python-yaml qt6-svg qt6-tools qt6-webengine verdict xerces-c)
makedepends=(boost cgns cmake eigen git libharu liblas ninja nlohmann-json
openvdb openvr pdal postgresql-libs python-mpi4py shiboken6
swig utf8cpp dos2unix microsoft-gsl)
optdepends=('graphviz: dependency graph support'
'opencamlib: CAM workbench support'
'openscad: OpenSCAD support')
options=(!lto)
source=("git+https://github.com/$pkgname/$pkgname#tag=$pkgver"
$pkgname-16322.patch::https://patch-diff.githubusercontent.com/raw/FreeCAD/FreeCAD/pull/16322.patch)
b2sums=('cd2d1f7d2ecb49dbde30e3ef0480c383b21559667ec3855f94a0596cd6598dba3b7420f0b3f5a01389a6361ce57c6722352822f3ce1d14fef831b6b1096e9a1a'
'b6dc0e49c0f4a6451056e3910172b85fed1b65e1cbe3e91d0660a4cb0a0cbdfb5c8b580d4ba49b0bfeea635481604a78556594a643c0fd1beefbfcbb3481dce2')
prepare() {
cd freecad
git submodule update --init --recursive
patch -Np1 -i "$srcdir"/$pkgname-16322.patch
}
build() {
cmake \
-B build \
-D BUILD_FLAT_MESH=ON \
-D BUILD_ENABLE_CXX_STD=C++17 \
-D BUILD_DESIGNER_PLUGIN=ON \
-D CMAKE_BUILD_TYPE=Release \
-D CMAKE_C_FLAGS="$CFLAGS -fPIC -w" \
-D CMAKE_CXX_FLAGS="$CXXFLAGS -fPIC -w" \
-D CMAKE_INSTALL_BINDIR=/usr/lib/freecad/bin \
-D CMAKE_INSTALL_DATADIR=/usr/share/freecad \
-D CMAKE_INSTALL_DATAROOTDIR=/usr/share \
-D CMAKE_INSTALL_DOCDIR=/usr/share/freecad/doc \
-D CMAKE_INSTALL_LIBDIR=/usr/lib/freecad/lib \
-D CMAKE_INSTALL_PREFIX=/usr/lib/freecad \
-D FREECAD_USE_EXTERNAL_PIVY=ON \
-D FREECAD_USE_OCC_VARIANT='Official Version' \
-D FREECAD_USE_QT_FILEDIALOG=ON \
-D FREECAD_QT_VERSION=6 \
-D INSTALL_TO_SITEPACKAGES=ON \
-D PYTHON_EXECUTABLE=/usr/bin/python \
-G Ninja \
-S $pkgname \
-W no-dev
ninja -C build
}
package() {
DESTDIR="$pkgdir" ninja -C build install
# tools
install -Dm755 $pkgname/src/Tools/{$pkgname-thumbnailer,fcinfo} -t "$pkgdir/usr/bin/"
# symlinks
install -d "$pkgdir/usr/bin"
ln -sf /usr/lib/freecad/bin/FreeCAD "$pkgdir/usr/bin/freecad"
ln -sf /usr/lib/freecad/bin/FreeCAD "$pkgdir/usr/bin/FreeCAD"
ln -sf /usr/lib/freecad/bin/FreeCADCmd "$pkgdir/usr/bin/freecadcmd"
ln -sf /usr/lib/freecad/bin/FreeCADCmd "$pkgdir/usr/bin/FreeCADCmd"
}