git » freecad.git » main » tree

[main] / PKGBUILD

# 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

pkgname=freecad
pkgver=1.0.0
pkgrel=1
pkgdesc='Feature based parametric 3D CAD modeler'
arch=(x86_64 'armv7h')
url='https://freecadweb.org/'
license=(LGPL)
depends=(boost-libs coin fmt glew libspnav 
#med-openmpi 
         opencascade 
#openmpi 
pugixml pyside2 pyside2-tools
         yaml-cpp python-markdown 
# python-matplotlib python-pip
        python-pivy python-ply
         python-yaml qt5-svg qt5-tools qt5-webengine qt5-x11extras
         qt5-xmlpatterns xerces-c verdict)
makedepends=(boost cgns cmake eigen git 
#libharu liblas 
ninja 
#openvdb 
#openvr
#             ospray pdal 
#postgresql-libs 
#python-mpi4py 
python-shiboken2
             qt5-webengine shiboken2 swig utf8cpp nlohmann-json)
optdepends=('graphviz: dependency graph support'
            'openscad: OpenSCAD support')
options=(!lto)
source=("git+https://github.com/$pkgname/$pkgname#tag=$pkgver")

prepare() {
  cd freecad
  git submodule update --init --recursive
  # Backport fix to build against VTK 9.4; c.f. https://github.com/FreeCAD/FreeCAD/pull/18543
  git cherry-pick -n 8934af10128f0bd2d0ffada946d1c93bc5d8869f

}

build() {
  cmake \
    -B build \
    -D BUILD_ENABLE_CXX_STD=C++17 \
    -D BUILD_FLAT_MESH=ON \
    -D BUILD_FEM=OFF \
    -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_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 PYTHON_EXECUTABLE=/usr/bin/python \
    -D INSTALL_TO_SITEPACKAGES=ON \
    -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"
}
sha256sums=('076ea8ff3917475123353d1e526da89671f50c55107829a32873065ee75fda8a')