Gentoo Archives: gentoo-commits

From: "Tiziano Müller" <dev-zero@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] dev/dev-zero:master commit in: media-gfx/freecad/, media-gfx/freecad/files/
Date: Thu, 07 Jul 2016 09:04:46
Message-Id: 1467879625.d581c744afb66e29dbd4daa01ca0dcc4911e5836.dev-zero@gentoo
1 commit: d581c744afb66e29dbd4daa01ca0dcc4911e5836
2 Author: Tiziano Müller <dev-zero <AT> gentoo <DOT> org>
3 AuthorDate: Thu Jul 7 08:20:25 2016 +0000
4 Commit: Tiziano Müller <dev-zero <AT> gentoo <DOT> org>
5 CommitDate: Thu Jul 7 08:20:25 2016 +0000
6 URL: https://gitweb.gentoo.org/dev/dev-zero.git/commit/?id=d581c744
7
8 media-gfx/freecad: add netgen/pcl support
9
10 media-gfx/freecad/Manifest | 1 +
11 .../files/freecad-0.14.3702-install-paths.patch | 21 +++
12 media-gfx/freecad/files/freecad.sharedmimeinfo | 8 ++
13 media-gfx/freecad/freecad-0.16.ebuild | 148 +++++++++++++++++++++
14 media-gfx/freecad/metadata.xml | 11 ++
15 5 files changed, 189 insertions(+)
16
17 diff --git a/media-gfx/freecad/Manifest b/media-gfx/freecad/Manifest
18 new file mode 100644
19 index 0000000..c524d57
20 --- /dev/null
21 +++ b/media-gfx/freecad/Manifest
22 @@ -0,0 +1 @@
23 +DIST freecad-0.16.tar.gz 111706127 SHA256 6cc71ab4b0dc60b493d3aaa4b42f1ce1af9d4fcd539309ab0792804579e18e09 SHA512 bc9dc8122cabd9a84f2b955746818e0d77ae90e68747ec96521099472b7803df9ff794ed823d6eb29352bd0538b8f01cf81c306ff427f1af2ee049f8f7096dbb WHIRLPOOL 8d90a4213808dcd7ce7adeaeac8a30351e06b217e31326817cb034ec02dcfe7be0ea71cb5bf297e1bab3a8a6c6ac24848f51a0453f9bf09162e700bc52f9cf4d
24
25 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
26 new file mode 100644
27 index 0000000..d042695
28 --- /dev/null
29 +++ b/media-gfx/freecad/files/freecad-0.14.3702-install-paths.patch
30 @@ -0,0 +1,21 @@
31 +--- freecad-0.14.3702/CMakeLists.txt
32 ++++ freecad-0.14.3702/CMakeLists.txt
33 +@@ -69,9 +69,15 @@
34 + SET(CMAKE_INSTALL_PREFIX "/usr/lib${LIB_SUFFIX}/freecad" CACHE PATH "Installation root directory")
35 + endif(WIN32)
36 +
37 +-SET(CMAKE_INSTALL_DATADIR data CACHE PATH "Output directory for data and resource files")
38 +-SET(CMAKE_INSTALL_INCLUDEDIR include CACHE PATH "Output directory for header files")
39 +-SET(CMAKE_INSTALL_DOCDIR doc CACHE PATH "Output directory for documentation and license files")
40 ++if(NOT CMAKE_INSTALL_DATADIR)
41 ++ SET(CMAKE_INSTALL_DATADIR data CACHE PATH "Output directory for data and resource files")
42 ++endif(NOT CMAKE_INSTALL_DATADIR)
43 ++if(NOT CMAKE_INSTALL_INCLUDEDIR)
44 ++ SET(CMAKE_INSTALL_INCLUDEDIR include CACHE PATH "Output directory for header files")
45 ++endif(NOT CMAKE_INSTALL_INCLUDEDIR)
46 ++if(NOT CMAKE_INSTALL_DOCDIR)
47 ++ SET(CMAKE_INSTALL_DOCDIR doc CACHE PATH "Output directory for documentation and license files")
48 ++endif(NOT CMAKE_INSTALL_DOCDIR)
49 + # Don't set it without manual adaption of LibDir variable in src/App/FreeCADInit.py
50 + SET(CMAKE_INSTALL_LIBDIR lib CACHE PATH "Output directory for libraries")
51 +
52
53 diff --git a/media-gfx/freecad/files/freecad.sharedmimeinfo b/media-gfx/freecad/files/freecad.sharedmimeinfo
54 new file mode 100644
55 index 0000000..6d5e93e
56 --- /dev/null
57 +++ b/media-gfx/freecad/files/freecad.sharedmimeinfo
58 @@ -0,0 +1,8 @@
59 +<?xml version="1.0" encoding="UTF-8"?>
60 +<mime-info xmlns='http://www.freedesktop.org/standards/shared-mime-info'>
61 + <mime-type type="application/x-extension-fcstd">
62 + <!-- <sub-class-of type="application/zip"/> -->
63 + <comment>FreeCAD document files</comment>
64 + <glob pattern="*.fcstd"/>
65 + </mime-type>
66 +</mime-info>
67
68 diff --git a/media-gfx/freecad/freecad-0.16.ebuild b/media-gfx/freecad/freecad-0.16.ebuild
69 new file mode 100644
70 index 0000000..ce8a0dc
71 --- /dev/null
72 +++ b/media-gfx/freecad/freecad-0.16.ebuild
73 @@ -0,0 +1,148 @@
74 +# Copyright 1999-2016 Gentoo Foundation
75 +# Distributed under the terms of the GNU General Public License v2
76 +# $Id$
77 +
78 +EAPI=6
79 +
80 +PYTHON_COMPAT=( python2_7 )
81 +
82 +inherit cmake-utils eutils fortran-2 multilib python-single-r1 fdo-mime toolchain-funcs
83 +
84 +DESCRIPTION="QT based Computer Aided Design application"
85 +HOMEPAGE="http://www.freecadweb.org/"
86 +SRC_URI="https://github.com/FreeCAD/FreeCAD/archive/${PV}.tar.gz -> ${P}.tar.gz"
87 +
88 +LICENSE="GPL-2"
89 +SLOT="0"
90 +KEYWORDS="~amd64 ~x86"
91 +IUSE="netgen pcl"
92 +
93 +COMMON_DEPEND="dev-cpp/eigen:3
94 + dev-libs/boost
95 + dev-libs/xerces-c[icu]
96 + dev-python/matplotlib
97 + dev-python/pyside[X]
98 + dev-python/shiboken
99 + dev-qt/designer:4
100 + dev-qt/qtgui:4
101 + dev-qt/qtopengl:4
102 + dev-qt/qtsvg:4
103 + dev-qt/qtwebkit:4
104 + media-libs/coin
105 + || ( sci-libs/opencascade:6.9.0[vtk] sci-libs/opencascade:6.8.0 sci-libs/opencascade:6.7.1 )
106 + netgen? ( =sci-mathematics/netgen-5*:=[source] )
107 + pcl? ( sci-libs/pcl:= )
108 + sys-libs/zlib
109 + virtual/glu
110 + ${PYTHON_DEPS}"
111 +RDEPEND="${COMMON_DEPEND}
112 + dev-qt/assistant:4
113 + dev-python/pivy
114 + dev-python/numpy"
115 +DEPEND="${COMMON_DEPEND}
116 + dev-python/pyside-tools
117 + >=dev-lang/swig-2.0.4-r1:0"
118 +
119 +# https://bugs.gentoo.org/show_bug.cgi?id=352435
120 +# https://www.gentoo.org/foundation/en/minutes/2011/20110220_trustees.meeting_log.txt
121 +RESTRICT="bindist mirror"
122 +
123 +# TODO:
124 +# DEPEND and RDEPEND:
125 +# salome-smesh - science overlay
126 +# zipio++ - not in portage yet
127 +
128 +S="${WORKDIR}/FreeCAD-${PV}"
129 +
130 +DOCS=(README.md ChangeLog.txt)
131 +
132 +pkg_setup() {
133 + fortran-2_pkg_setup
134 + python-single-r1_pkg_setup
135 +
136 + [ -z "${CASROOT}" ] && die "empty \$CASROOT, run eselect opencascade set or define otherwise"
137 +}
138 +
139 +src_prepare() {
140 + epatch \
141 + "${FILESDIR}"/${PN}-0.14.3702-install-paths.patch
142 +
143 + #bug 518996
144 + sed -e "/LibDir = /s:'lib':'"$(get_libdir)"':g" \
145 + -i src/App/FreeCADInit.py || die
146 +
147 + # if we are building with netgen support, we have netgen v5
148 + append-cppflags "-DNETGEN_V5"
149 +}
150 +
151 +src_configure() {
152 + local mycmakeargs=(
153 + -DOCC_INCLUDE_DIR="${CASROOT}"/inc
154 + -DOCC_INCLUDE_PATH="${CASROOT}"/inc
155 + -DOCC_LIBRARY="${CASROOT}"/lib/libTKernel.so
156 + -DOCC_LIBRARY_DIR="${CASROOT}"/lib
157 + -DOCC_LIB_PATH="${CASROOT}"/lib
158 + -DCOIN3D_INCLUDE_DIR="${EROOT}"usr/include/coin
159 + -DCOIN3D_LIBRARY="${EROOT}"usr/$(get_libdir)/libCoin.so
160 + -DSOQT_LIBRARY="${EROOT}"usr/$(get_libdir)/libSoQt.so
161 + -DSOQT_INCLUDE_PATH="${EROOT}"usr/include/coin
162 + -DCMAKE_INSTALL_PREFIX="${EROOT}"usr/$(get_libdir)/${P}
163 + -DCMAKE_INSTALL_DATADIR="${EROOT}"usr/share/${P}/
164 + -DCMAKE_INSTALL_DOCDIR="${EROOT}"usr/share/doc/${P}/
165 + -DCMAKE_INSTALL_INCLUDEDIR="${EROOT}"usr/include/${P}/
166 + -DBUILD_FEM_NETGEN="$(usex netgen)"
167 + -DFREECAD_USE_PCL="$(usex pcl)"
168 + )
169 +
170 + # TODO to remove embedded dependencies:
171 + #
172 + # -DFREECAD_USE_EXTERNAL_ZIPIOS="ON" -- this option needs zipios++ but it's not yet in portage so the embedded zipios++
173 + # (under src/zipios++) will be used
174 + # salomesmesh is in 3rdparty but upstream's find_package function is not complete yet to compile against external version
175 + # (external salomesmesh is available in "science" overlay)
176 +
177 + cmake-utils_src_configure
178 + ewarn "${P} will be built against opencascade version ${CASROOT}"
179 +}
180 +
181 +src_install() {
182 + cmake-utils_src_install
183 +
184 + prune_libtool_files
185 +
186 + make_wrapper FreeCAD \
187 + "${EROOT}"usr/$(get_libdir)/${P}/bin/FreeCAD \
188 + "" "${EROOT}"usr/$(get_libdir)/${P}/lib
189 + make_wrapper FreeCADCmd \
190 + "${EROOT}"usr/$(get_libdir)/${P}/bin/FreeCADCmd \
191 + "" "${EROOT}"usr/$(get_libdir)/${P}/lib
192 +
193 + make_desktop_entry FreeCAD "FreeCAD" "" "" "MimeType=application/x-extension-fcstd;"
194 +
195 + # install mimetype for FreeCAD files
196 + insinto /usr/share/mime/packages
197 + newins "${FILESDIR}"/${PN}.sharedmimeinfo "${PN}.xml"
198 +
199 + # install icons to correct place rather than /usr/share/freecad
200 + pushd "${ED}/usr/share/${P}"
201 + for size in 16 32 48 64; do
202 + newicon -s ${size} freecad-icon-${size}.png freecad.png
203 + done
204 + doicon -s scalable freecad.svg
205 + newicon -s 64 -c mimetypes freecad-doc.png application-x-extension-fcstd.png
206 + popd
207 +
208 + # disable compression of QT assistant help files
209 + >> "${ED}"usr/share/doc/${P}/freecad.qhc.ecompress.skip
210 + >> "${ED}"usr/share/doc/${P}/freecad.qch.ecompress.skip
211 +
212 + python_optimize "${ED}"usr/{$(get_libdir),share}/${P}/Mod/
213 +}
214 +
215 +pkg_postinst() {
216 + fdo-mime_mime_database_update
217 +}
218 +
219 +pkg_postrm() {
220 + fdo-mime_mime_database_update
221 +}
222
223 diff --git a/media-gfx/freecad/metadata.xml b/media-gfx/freecad/metadata.xml
224 new file mode 100644
225 index 0000000..a957e8b
226 --- /dev/null
227 +++ b/media-gfx/freecad/metadata.xml
228 @@ -0,0 +1,11 @@
229 +<?xml version="1.0" encoding="UTF-8"?>
230 +<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
231 +<pkgmetadata>
232 + <maintainer type="person">
233 + <email>xmw@g.o</email>
234 + <name>Michael Weber</name>
235 + </maintainer>
236 + <upstream>
237 + <remote-id type="sourceforge">free-cad</remote-id>
238 + </upstream>
239 +</pkgmetadata>