commit: d581c744afb66e29dbd4daa01ca0dcc4911e5836
Author: Tiziano Müller <dev-zero <AT> gentoo <DOT> org>
AuthorDate: Thu Jul 7 08:20:25 2016 +0000
Commit: Tiziano Müller <dev-zero <AT> gentoo <DOT> org>
CommitDate: Thu Jul 7 08:20:25 2016 +0000
URL: https://gitweb.gentoo.org/dev/dev-zero.git/commit/?id=d581c744
media-gfx/freecad: add netgen/pcl support
media-gfx/freecad/Manifest | 1 +
.../files/freecad-0.14.3702-install-paths.patch | 21 +++
media-gfx/freecad/files/freecad.sharedmimeinfo | 8 ++
media-gfx/freecad/freecad-0.16.ebuild | 148 +++++++++++++++++++++
media-gfx/freecad/metadata.xml | 11 ++
5 files changed, 189 insertions(+)
diff --git a/media-gfx/freecad/Manifest b/media-gfx/freecad/Manifest
new file mode 100644
index 0000000..c524d57
--- /dev/null
+++ b/media-gfx/freecad/Manifest
@@ -0,0 +1 @@
+DIST freecad-0.16.tar.gz 111706127 SHA256
6cc71ab4b0dc60b493d3aaa4b42f1ce1af9d4fcd539309ab0792804579e18e09 SHA512
bc9dc8122cabd9a84f2b955746818e0d77ae90e68747ec96521099472b7803df9ff794ed823d6eb29352bd0538b8f01cf81c306ff427f1af2ee049f8f7096dbb
WHIRLPOOL
8d90a4213808dcd7ce7adeaeac8a30351e06b217e31326817cb034ec02dcfe7be0ea71cb5bf297e1bab3a8a6c6ac24848f51a0453f9bf09162e700bc52f9cf4d
diff --git a/media-gfx/freecad/files/freecad-0.14.3702-install-paths.patch
b/media-gfx/freecad/files/freecad-0.14.3702-install-paths.patch
new file mode 100644
index 0000000..d042695
--- /dev/null
+++ b/media-gfx/freecad/files/freecad-0.14.3702-install-paths.patch
@@ -0,0 +1,21 @@
+--- freecad-0.14.3702/CMakeLists.txt
++++ freecad-0.14.3702/CMakeLists.txt
+@@ -69,9 +69,15 @@
+ SET(CMAKE_INSTALL_PREFIX "/usr/lib${LIB_SUFFIX}/freecad" CACHE PATH
"Installation root directory")
+ endif(WIN32)
+
+-SET(CMAKE_INSTALL_DATADIR data CACHE PATH "Output directory for data and
resource files")
+-SET(CMAKE_INSTALL_INCLUDEDIR include CACHE PATH "Output directory for header
files")
+-SET(CMAKE_INSTALL_DOCDIR doc CACHE PATH "Output directory for documentation
and license files")
++if(NOT CMAKE_INSTALL_DATADIR)
++ SET(CMAKE_INSTALL_DATADIR data CACHE PATH "Output directory for data
and resource files")
++endif(NOT CMAKE_INSTALL_DATADIR)
++if(NOT CMAKE_INSTALL_INCLUDEDIR)
++ SET(CMAKE_INSTALL_INCLUDEDIR include CACHE PATH "Output directory for
header files")
++endif(NOT CMAKE_INSTALL_INCLUDEDIR)
++if(NOT CMAKE_INSTALL_DOCDIR)
++ SET(CMAKE_INSTALL_DOCDIR doc CACHE PATH "Output directory for
documentation and license files")
++endif(NOT CMAKE_INSTALL_DOCDIR)
+ # Don't set it without manual adaption of LibDir variable in
src/App/FreeCADInit.py
+ SET(CMAKE_INSTALL_LIBDIR lib CACHE PATH "Output directory for libraries")
+
diff --git a/media-gfx/freecad/files/freecad.sharedmimeinfo
b/media-gfx/freecad/files/freecad.sharedmimeinfo
new file mode 100644
index 0000000..6d5e93e
--- /dev/null
+++ b/media-gfx/freecad/files/freecad.sharedmimeinfo
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<mime-info xmlns='http://www.freedesktop.org/standards/shared-mime-info'>
+ <mime-type type="application/x-extension-fcstd">
+ <!-- <sub-class-of type="application/zip"/> -->
+ <comment>FreeCAD document files</comment>
+ <glob pattern="*.fcstd"/>
+ </mime-type>
+</mime-info>
diff --git a/media-gfx/freecad/freecad-0.16.ebuild
b/media-gfx/freecad/freecad-0.16.ebuild
new file mode 100644
index 0000000..ce8a0dc
--- /dev/null
+++ b/media-gfx/freecad/freecad-0.16.ebuild
@@ -0,0 +1,148 @@
+# Copyright 1999-2016 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=6
+
+PYTHON_COMPAT=( python2_7 )
+
+inherit cmake-utils eutils fortran-2 multilib python-single-r1 fdo-mime
toolchain-funcs
+
+DESCRIPTION="QT based Computer Aided Design application"
+HOMEPAGE="http://www.freecadweb.org/"
+SRC_URI="https://github.com/FreeCAD/FreeCAD/archive/${PV}.tar.gz ->
${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="netgen pcl"
+
+COMMON_DEPEND="dev-cpp/eigen:3
+ dev-libs/boost
+ dev-libs/xerces-c[icu]
+ dev-python/matplotlib
+ dev-python/pyside[X]
+ dev-python/shiboken
+ dev-qt/designer:4
+ dev-qt/qtgui:4
+ dev-qt/qtopengl:4
+ dev-qt/qtsvg:4
+ dev-qt/qtwebkit:4
+ media-libs/coin
+ || ( sci-libs/opencascade:6.9.0[vtk] sci-libs/opencascade:6.8.0
sci-libs/opencascade:6.7.1 )
+ netgen? ( =sci-mathematics/netgen-5*:=[source] )
+ pcl? ( sci-libs/pcl:= )
+ sys-libs/zlib
+ virtual/glu
+ ${PYTHON_DEPS}"
+RDEPEND="${COMMON_DEPEND}
+ dev-qt/assistant:4
+ dev-python/pivy
+ dev-python/numpy"
+DEPEND="${COMMON_DEPEND}
+ dev-python/pyside-tools
+ >=dev-lang/swig-2.0.4-r1:0"
+
+# https://bugs.gentoo.org/show_bug.cgi?id=352435
+#
https://www.gentoo.org/foundation/en/minutes/2011/20110220_trustees.meeting_log.txt
+RESTRICT="bindist mirror"
+
+# TODO:
+# DEPEND and RDEPEND:
+# salome-smesh - science overlay
+# zipio++ - not in portage yet
+
+S="${WORKDIR}/FreeCAD-${PV}"
+
+DOCS=(README.md ChangeLog.txt)
+
+pkg_setup() {
+ fortran-2_pkg_setup
+ python-single-r1_pkg_setup
+
+ [ -z "${CASROOT}" ] && die "empty \$CASROOT, run eselect opencascade
set or define otherwise"
+}
+
+src_prepare() {
+ epatch \
+ "${FILESDIR}"/${PN}-0.14.3702-install-paths.patch
+
+ #bug 518996
+ sed -e "/LibDir = /s:'lib':'"$(get_libdir)"':g" \
+ -i src/App/FreeCADInit.py || die
+
+ # if we are building with netgen support, we have netgen v5
+ append-cppflags "-DNETGEN_V5"
+}
+
+src_configure() {
+ local mycmakeargs=(
+ -DOCC_INCLUDE_DIR="${CASROOT}"/inc
+ -DOCC_INCLUDE_PATH="${CASROOT}"/inc
+ -DOCC_LIBRARY="${CASROOT}"/lib/libTKernel.so
+ -DOCC_LIBRARY_DIR="${CASROOT}"/lib
+ -DOCC_LIB_PATH="${CASROOT}"/lib
+ -DCOIN3D_INCLUDE_DIR="${EROOT}"usr/include/coin
+ -DCOIN3D_LIBRARY="${EROOT}"usr/$(get_libdir)/libCoin.so
+ -DSOQT_LIBRARY="${EROOT}"usr/$(get_libdir)/libSoQt.so
+ -DSOQT_INCLUDE_PATH="${EROOT}"usr/include/coin
+ -DCMAKE_INSTALL_PREFIX="${EROOT}"usr/$(get_libdir)/${P}
+ -DCMAKE_INSTALL_DATADIR="${EROOT}"usr/share/${P}/
+ -DCMAKE_INSTALL_DOCDIR="${EROOT}"usr/share/doc/${P}/
+ -DCMAKE_INSTALL_INCLUDEDIR="${EROOT}"usr/include/${P}/
+ -DBUILD_FEM_NETGEN="$(usex netgen)"
+ -DFREECAD_USE_PCL="$(usex pcl)"
+ )
+
+ # TODO to remove embedded dependencies:
+ #
+ # -DFREECAD_USE_EXTERNAL_ZIPIOS="ON" -- this option needs
zipios++ but it's not yet in portage so the embedded zipios++
+ # (under src/zipios++) will be used
+ # salomesmesh is in 3rdparty but upstream's find_package function
is not complete yet to compile against external version
+ # (external salomesmesh is available in "science"
overlay)
+
+ cmake-utils_src_configure
+ ewarn "${P} will be built against opencascade version ${CASROOT}"
+}
+
+src_install() {
+ cmake-utils_src_install
+
+ prune_libtool_files
+
+ make_wrapper FreeCAD \
+ "${EROOT}"usr/$(get_libdir)/${P}/bin/FreeCAD \
+ "" "${EROOT}"usr/$(get_libdir)/${P}/lib
+ make_wrapper FreeCADCmd \
+ "${EROOT}"usr/$(get_libdir)/${P}/bin/FreeCADCmd \
+ "" "${EROOT}"usr/$(get_libdir)/${P}/lib
+
+ make_desktop_entry FreeCAD "FreeCAD" "" ""
"MimeType=application/x-extension-fcstd;"
+
+ # install mimetype for FreeCAD files
+ insinto /usr/share/mime/packages
+ newins "${FILESDIR}"/${PN}.sharedmimeinfo "${PN}.xml"
+
+ # install icons to correct place rather than /usr/share/freecad
+ pushd "${ED}/usr/share/${P}"
+ for size in 16 32 48 64; do
+ newicon -s ${size} freecad-icon-${size}.png freecad.png
+ done
+ doicon -s scalable freecad.svg
+ newicon -s 64 -c mimetypes freecad-doc.png
application-x-extension-fcstd.png
+ popd
+
+ # disable compression of QT assistant help files
+ >> "${ED}"usr/share/doc/${P}/freecad.qhc.ecompress.skip
+ >> "${ED}"usr/share/doc/${P}/freecad.qch.ecompress.skip
+
+ python_optimize "${ED}"usr/{$(get_libdir),share}/${P}/Mod/
+}
+
+pkg_postinst() {
+ fdo-mime_mime_database_update
+}
+
+pkg_postrm() {
+ fdo-mime_mime_database_update
+}
diff --git a/media-gfx/freecad/metadata.xml b/media-gfx/freecad/metadata.xml
new file mode 100644
index 0000000..a957e8b
--- /dev/null
+++ b/media-gfx/freecad/metadata.xml
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="person">
+ <email>[email protected]</email>
+ <name>Michael Weber</name>
+ </maintainer>
+ <upstream>
+ <remote-id type="sourceforge">free-cad</remote-id>
+ </upstream>
+</pkgmetadata>