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>x...@gentoo.org</email> + <name>Michael Weber</name> + </maintainer> + <upstream> + <remote-id type="sourceforge">free-cad</remote-id> + </upstream> +</pkgmetadata>