mirror of
https://github.com/archlinuxarm/PKGBUILDs.git
synced 2024-11-18 22:54:00 +00:00
110 lines
4 KiB
Bash
110 lines
4 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
|
|
|
|
# ALARM: Kevin Mihelich <kevin@archlinuxarm.org>
|
|
# - remove makedepends on ospray and adios2
|
|
|
|
buildarch=8
|
|
highmem=1
|
|
|
|
pkgname=freecad
|
|
pkgver=0.19.4
|
|
pkgrel=5
|
|
pkgdesc='General purpose 3D CAD modeler'
|
|
arch=(x86_64)
|
|
url='https://freecadweb.org/'
|
|
license=(LGPL)
|
|
depends=(boost-libs ffmpeg glew jsoncpp libspnav med netcdf opencascade openmpi
|
|
pyside2 pyside2-tools python-gitpython python-matplotlib
|
|
python-pivy python-ply pugixml qt5-svg qt5-tools qt5-webkit
|
|
qt5-x11extras qt5-xmlpatterns xerces-c)
|
|
makedepends=(boost cmake cgns coin eigen fmt gcc-fortran gendesk git
|
|
jdk-openjdk libharu liblas ninja openvdb openvr pdal
|
|
postgresql-libs python-mpi4py python-shiboken2 shiboken2 swig
|
|
utf8cpp cli11)
|
|
source=(freecad.xml
|
|
freecad-boost.patch
|
|
freecad-vtk9.patch
|
|
"git+https://github.com/$pkgname/$pkgname#commit=476ecf091941bead59b14e44afa6064d5a66afa3") # tag: 0.19.4
|
|
b2sums=('f5f295b9b5f268126feffbe3f3344c124faf5e2263f3f071348bd7f5d0bf2e30eb33fcf174d0ab76ad80ca7bd8ddea95ccbaf7f33f0896189ac78603fecb9485'
|
|
'6ec5dcead7f3438b387aeb3f608b910105d493aafcd47ae84715cdfe6f8651926056283ec4aeeab542b89df9fd9ffc2dbb74f5593e864acd23c8b352033ed1dc'
|
|
'242702f926101c57774046548068d17b22bd582ba1a1c45534ac8ceaa174c56277db80f32bed8ad1475b37006a1d777193b6c098ed8a733772152a898d1dd825'
|
|
'SKIP')
|
|
|
|
prepare() {
|
|
(
|
|
cd $pkgname
|
|
# fix missing include for std::unique_ptr
|
|
git cherry-pick -n 4fea37b3bc5a3a9fce789dac6d2444f240bd3313
|
|
)
|
|
# Fix Boost linking with VTK 9 (thanks Fedora)
|
|
patch -d $pkgname -p1 -i ../freecad-boost.patch
|
|
# Fix build with VTK 9 (thanks Fedora)
|
|
patch -d $pkgname -p1 -i ../freecad-vtk9.patch
|
|
# Generate desktop shortcut
|
|
gendesk -f -n --pkgname "$pkgname" --pkgdesc "$pkgdesc" --name FreeCAD \
|
|
--mimetypes='application/x-extension-fcstd' --startupnotify=true
|
|
}
|
|
|
|
build() {
|
|
# OpenCascade requires that /usr/bin comes before /bin in $PATH
|
|
export PATH="/usr/bin:$PATH"
|
|
|
|
cmake \
|
|
-B build \
|
|
-D BUILD_ENABLE_CXX_STD=C++14 \
|
|
-D BUILD_QT5=ON \
|
|
-D CMAKE_BUILD_TYPE=Release \
|
|
-D CMAKE_C_FLAGS="$CFLAGS -fPIC -w" \
|
|
-D CMAKE_CXX_FLAGS="$CXXFLAGS -fPIC -w" \
|
|
-D CMAKE_INSTALL_DATADIR=/usr/share/freecad \
|
|
-D CMAKE_INSTALL_DOCDIR=/usr/share/freecad/doc \
|
|
-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 PYTHON_EXECUTABLE=/usr/bin/python \
|
|
-G Ninja \
|
|
-S $pkgname
|
|
ninja -C build
|
|
}
|
|
|
|
package() {
|
|
DESTDIR="$pkgdir" ninja -C build install
|
|
|
|
# Desktop shortcut
|
|
install -Dm644 $pkgname.desktop -t "$pkgdir/usr/share/applications/"
|
|
|
|
# MIME info
|
|
install -Dm644 $pkgname.xml -t "$pkgdir/usr/share/mime/packages/"
|
|
|
|
# Thumbnailer
|
|
install -Dm755 $pkgname/src/Tools/$pkgname-thumbnailer -t "$pkgdir/usr/bin/"
|
|
install -Dm644 \
|
|
"$pkgdir/usr/lib/freecad/share/thumbnailers/FreeCAD.thumbnailer" \
|
|
"$pkgdir/usr/share/thumbnailers/FreeCAD.thumbnailer"
|
|
rm -f "$pkgdir/usr/lib/freecad/share/thumbnailers/FreeCAD.thumbnailer"
|
|
|
|
# Icons
|
|
cd $pkgname/src/Gui/Icons
|
|
install -Dm644 $pkgname.svg -t "$pkgdir/usr/share/icons/hicolor/scalable/apps/"
|
|
for i in 16 32 48 64; do
|
|
install -Dm644 "freecad-icon-$i.png" \
|
|
"$pkgdir/usr/share/icons/hicolor/${i}x$i/apps/freecad.png"
|
|
done
|
|
|
|
# Symlinks in /usr/bin
|
|
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"
|
|
}
|