diff --git a/.SRCINFO b/.SRCINFO index c1740e3..b22b680 100644 --- a/.SRCINFO +++ b/.SRCINFO @@ -1,47 +1,52 @@ pkgbase = freecad-git pkgdesc = A general purpose 3D CAD modeler - git checkout - pkgver = 0.22.0.36999.ged77603af9 + pkgver = 0.21.0.31043.g7a8a453746 pkgrel = 1 url = https://www.freecad.org/ arch = x86_64 license = LGPL + checkdepends = fmt checkdepends = pugixml makedepends = boost makedepends = cmake + makedepends = coin makedepends = eigen makedepends = git makedepends = ninja - makedepends = nlohmann-json - makedepends = shiboken6 + makedepends = python-shiboken2 + makedepends = shiboken2 makedepends = swig depends = boost-libs - depends = coin - depends = fmt depends = glew depends = jsoncpp depends = med depends = netcdf depends = opencascade depends = openmpi - depends = pyside6 - depends = pyside6-tools + depends = pyside2 + depends = pyside2-tools depends = python-yaml depends = python-matplotlib depends = python-packaging depends = python-pivy depends = python-ply - depends = qt6-svg - depends = qt6-tools - depends = qt6-base - depends = qt6-5compat + depends = qt5-svg + depends = qt5-tools + depends = qt5-webengine + depends = qt5-webchannel + depends = qt5-x11extras + depends = qt5-xmlpatterns + depends = qt5-base depends = shared-mime-info - depends = vtk - depends = verdict depends = xerces-c - depends = yaml-cpp + depends = vtk + optdepends = povray: ray tracing support + optdepends = luxcorerender: ray tracing support optdepends = libspnav: 3D mouse support optdepends = openscad: OpenSCAD support optdepends = graphviz: dependency graph support + optdepends = python-markdown: markdown support in addon manager + optdepends = python-gitpython: support downloading addons with git optdepends = python-pip: support installing python dependencies for addons optdepends = calculix-ccx: FEM solver backend provides = freecad diff --git a/PKGBUILD b/PKGBUILD index dc4850c..0972d0f 100644 --- a/PKGBUILD +++ b/PKGBUILD @@ -2,7 +2,7 @@ # Maintainer: Adrian Insaurralde pkgname=freecad-git -pkgver=1.0rc1 +pkgver=0.21.0.31043.g7a8a453746 pkgrel=1 pkgdesc='A general purpose 3D CAD modeler - git checkout' arch=('x86_64') @@ -10,99 +10,118 @@ url='https://www.freecad.org/' license=('LGPL') depends=( boost-libs -coin -fmt glew jsoncpp med netcdf opencascade openmpi -pyside6 -pyside6-tools +pyside2 +pyside2-tools python-yaml python-matplotlib python-packaging python-pivy python-ply -qt6-svg -qt6-tools -qt6-base -qt6-5compat +qt5-svg +qt5-tools +qt5-webengine +qt5-webchannel +qt5-x11extras +qt5-xmlpatterns +qt5-base shared-mime-info -vtk -verdict xerces-c -yaml-cpp +vtk ) makedepends=( boost cmake +coin eigen git ninja -nlohmann-json -shiboken6 +python-shiboken2 +shiboken2 swig ) checkdepends=( +fmt pugixml ) optdepends=( +'povray: ray tracing support' +'luxcorerender: ray tracing support' 'libspnav: 3D mouse support' 'openscad: OpenSCAD support' 'graphviz: dependency graph support' +'python-markdown: markdown support in addon manager' +'python-gitpython: support downloading addons with git' 'python-pip: support installing python dependencies for addons' 'calculix-ccx: FEM solver backend' ) provides=('freecad') conflicts=('freecad' 'freecad-appimage' 'freecad-appimage-git') -source=("git+https://github.com/FreeCAD/FreeCAD.git#tag=$pkgver") +source=("git+https://github.com/FreeCAD/FreeCAD.git") md5sums=('SKIP') +pkgver() { + cd FreeCAD + read -d$'/n' -r major minor patch < <(grep -Po "set\(PACKAGE_VERSION_(MAJOR|MINOR|PATCH) \"\K[0-9]*" CMakeLists.txt) || true + count=$((24266 + $(git rev-list --count d29fd7d..HEAD) )) + hash=$(git rev-parse --short HEAD) + printf "%d.%d.%d.%d.g%s" "$major" "$minor" "$patch" "$count" "$hash" +} + prepare() { cd FreeCAD - git submodule update --init } build() { - cmake \ - -B build \ + cd FreeCAD + + cmake -Wno-dev -G Ninja -B build -S . \ + -D BUILD_ENABLE_CXX_STD=C++17 \ + -D BUILD_FEM=ON \ + -D BUILD_MESH=ON \ -D BUILD_FLAT_MESH=ON \ + -D BUILD_MESH_PART=ON \ + -D BUILD_SHIP=ON \ -D BUILD_DESIGNER_PLUGIN=ON \ - -D FREECAD_QT_VERSION=6 \ - -D CMAKE_BUILD_TYPE=Release \ - -D CMAKE_C_FLAGS="$CFLAGS -ffat-lto-objects -fPIC -w" \ - -D CMAKE_CXX_FLAGS="$CXXFLAGS -ffat-lto-objects -fPIC -w" \ - -D CMAKE_INSTALL_DATADIR=/usr/share/freecad \ - -D CMAKE_INSTALL_DATAROOTDIR=/usr/share \ - -D CMAKE_INSTALL_DOCDIR=/usr/share/freecad/doc \ - -D CMAKE_INSTALL_PREFIX=/usr/lib/freecad \ + -D CMAKE_BUILD_TYPE=None \ + -D CMAKE_C_FLAGS="${CFLAGS} -fPIC -w" \ + -D CMAKE_CXX_FLAGS="${CXXFLAGS} -fPIC -w" \ -D FREECAD_USE_EXTERNAL_PIVY=ON \ -D FREECAD_USE_QT_FILEDIALOG=ON \ + -D PYTHON_EXECUTABLE=/usr/bin/python \ -D INSTALL_TO_SITEPACKAGES=ON \ - -D ENABLE_DEVELOPER_TESTS=OFF \ - -G Ninja \ - -S FreeCAD \ - -W no-dev - ninja -C build + -D CMAKE_INSTALL_PREFIX='/usr/lib/freecad' \ + -D CMAKE_INSTALL_DATADIR='../../share/freecad' \ + -D CMAKE_INSTALL_DATAROOTDIR='../../share' \ + -D CMAKE_INSTALL_DOCDIR='../../doc/freecad' + + cmake --build build } -# check() { -# cd build -# LD_LIBRARY_PATH=lib bin/FreeCADCmd --console --run-test 0 -# } +check() { + cd FreeCAD/build + LD_LIBRARY_PATH=lib bin/FreeCADCmd --console --run-test 0 +} package() { - DESTDIR="$pkgdir" ninja -C build install + cd FreeCAD + DESTDIR="${pkgdir}" cmake --install build - # tools - install -Dm755 FreeCAD/src/Tools/{freecad-thumbnailer,fcinfo} -t "$pkgdir/usr/bin/" + # package thumbnailer + install src/Tools/freecad-thumbnailer "${pkgdir}/usr/lib/freecad/bin/freecad-thumbnailer" + + # links for bin + mkdir -p "${pkgdir}"/usr/bin + FILES="${pkgdir}"/usr/lib/freecad/bin/* + for f in $FILES + do + ln -s '../lib/freecad/bin/'$(basename $f) "${pkgdir}"/usr/bin/$(basename $f) + done - # 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" + install -Dt "${pkgdir}/usr/share/licenses/${pkgname}" -m644 LICENSE }