summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMiroslav Šulc <fordfrog@gentoo.org>2017-11-23 19:17:06 +0100
committerMiroslav Šulc <fordfrog@gentoo.org>2017-11-23 19:17:06 +0100
commitd61503ff077c4982d45dde2020a9e43769be954b (patch)
treede3b264b7096775f7002338877f2ce60b474d4c5
parentsci-libs/libmed: removed cmake patch (diff)
downloadfordfrog-d61503ff077c4982d45dde2020a9e43769be954b.tar.gz
fordfrog-d61503ff077c4982d45dde2020a9e43769be954b.tar.bz2
fordfrog-d61503ff077c4982d45dde2020a9e43769be954b.zip
media-gfx/freecad: rewrote the original 9999 ebuild to enable qt5 support and make it modular (still wip)
Package-Manager: Portage-2.3.16, Repoman-2.3.6 RepoMan-Options: --force
-rw-r--r--media-gfx/freecad/Manifest4
-rw-r--r--media-gfx/freecad/files/freecad-0.14.3702-install-paths.patch21
-rw-r--r--media-gfx/freecad/files/freecad.sharedmimeinfo8
-rw-r--r--media-gfx/freecad/freecad-9999.ebuild231
-rw-r--r--media-gfx/freecad/metadata.xml11
5 files changed, 275 insertions, 0 deletions
diff --git a/media-gfx/freecad/Manifest b/media-gfx/freecad/Manifest
new file mode 100644
index 000000000..eb3cadeab
--- /dev/null
+++ b/media-gfx/freecad/Manifest
@@ -0,0 +1,4 @@
+AUX freecad-0.14.3702-install-paths.patch 1143 SHA256 3a16c5568f88e5a92a0b4d3c567a4851a9411b402ee6008443db371afd3f9270 SHA512 12181e4b48e4fb6284b574cb9872af713323d8f229a6c1746424968b0d22300bd6ada6437854a730dd4c5310eb36ebb06a35375ab012d36e9d3af4fb4271d884 WHIRLPOOL e4b7a3e3522929102c8658b0fabdeb571b2c9fec720f11923a5b327d6ef7b85a0dc20e958dce1d1caa1b49e228136cc7f7816d026750cdedbdd9ef8d63e500dd
+AUX freecad.sharedmimeinfo 312 SHA256 269e6b38d4a5f4e593e9e1e911ccd0185a1cb7a0250ae2a308cfc482e56615f1 SHA512 bb55cad8387032af0e06ce7f1b4cab4354a34a915b9f550de25e05bf24d4161d9ea152d5692d65df4b362622f76a11d78894deaf7fee60c7a3fc0bfec38fa10c WHIRLPOOL e4185b2d067d5e9b7a0b065b5cc6a92da055f96b610bdee5aecd28f379abe2a31feddccc5ccc6222978d5fbf73a7734a880cfd1f62a8383fa828d90147856081
+EBUILD freecad-9999.ebuild 6000 SHA256 fade2037025191b7b32ccbb2f0b0710b9293162370c7d985c5cdd3d1c6725d74 SHA512 9520e6bfed08031e5e79e75a9201f2386cb3f34675c6fbe50018edb665053cda553d943ab3d92e60e7a5477e507e628a732a5e358faac305bd11aec1690ac79a WHIRLPOOL 1a2bad80719e19f7200744977dba7b893c867f3cf4e0602ba74478e1616c703605b250b148ae70e14add518349267fb71021fa8c021a62b15176370f4da30242
+MISC metadata.xml 321 SHA256 6396e579e1ac8fc9bbea8da55d71a0c003fb00cd745aef13e55ef840edfbd554 SHA512 ce78f0668f984b3ee878a3a9a5adb03dde8a188f266885ca9e1ef9bb7a3111d0a30056c9716196c80af2b186950e9b7d9211e30c1e95697e2c7edf0404ec9ed6 WHIRLPOOL 241239acd423245a77851d2242609cabe9f5db252a9ff51f82d8bbdbaff2199557b74473f61418fc64d2b2dad460e875bfe73c48c2a5757031f737cd80f0a85e
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 000000000..d042695e8
--- /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 000000000..6d5e93e7d
--- /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-9999.ebuild b/media-gfx/freecad/freecad-9999.ebuild
new file mode 100644
index 000000000..c1b8f4b02
--- /dev/null
+++ b/media-gfx/freecad/freecad-9999.ebuild
@@ -0,0 +1,231 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+
+PYTHON_COMPAT=( python3_{4,5,6} )
+
+inherit cmake-utils eutils xdg-utils gnome2-utils fortran-2 python-single-r1
+
+DESCRIPTION="QT based Computer Aided Design application"
+HOMEPAGE="http://www.freecadweb.org/"
+
+if [[ ${PV} == *9999 ]]; then
+ inherit git-r3
+ EGIT_REPO_URI="https://github.com/FreeCAD/FreeCAD.git"
+else
+ SRC_URI="https://github.com/FreeCAD/FreeCAD/archive/${PV}.tar.gz -> ${P}.tar.gz"
+ KEYWORDS="~amd64 ~x86"
+fi
+
+LICENSE="GPL-2"
+SLOT="0"
+
+# Takem from CMakeLists.txt
+# TODO:
+# vr: needs a rift package
+IUSE_FREECAD_MODULES="
+ +freecad_modules_addonmgr
+ +freecad_modules_arch
+ freecad_modules_assembly
+ +freecad_modules_complete
+ +freecad_modules_draft
+ +freecad_modules_drawing
+ +freecad_modules_fem
+ +freecad_modules_idf
+ +freecad_modules_image
+ +freecad_modules_import
+ +freecad_modules_inspection
+ freecad_modules_jtreader
+ +freecad_modules_material
+ +freecad_modules_mesh
+ +freecad_modules_mesh_part
+ +freecad_modules_openscad
+ +freecad_modules_part
+ +freecad_modules_part_design
+ +freecad_modules_path
+ +freecad_modules_plot
+ +freecad_modules_points
+ +freecad_modules_raytracing
+ +freecad_modules_reverseengineering
+ +freecad_modules_robot
+ freecad_modules_sandbox
+ +freecad_modules_ship
+ +freecad_modules_show
+ +freecad_modules_sketcher
+ freecad_modules_smesh
+ +freecad_modules_spreadsheet
+ +freecad_modules_start
+ +freecad_modules_surface
+ +freecad_modules_techdraw
+ freecad_modules_template
+ +freecad_modules_test
+ +freecad_modules_tux
+ +freecad_modules_web"
+IUSE="eigen3 +freetype +qt5 swig ${IUSE_FREECAD_MODULES}"
+
+# TODO:
+# DEPEND and RDEPEND:
+# salomesmesh - science overlay
+# zipio++ - not in portage yet
+COMMON_DEPEND="
+ ${PYTHON_DEPS}
+ dev-java/xerces
+ dev-libs/boost:=[python,${PYTHON_USEDEP}]
+ dev-libs/xerces-c[icu]
+ dev-python/pyside:2[${PYTHON_USEDEP}]
+ dev-python/shiboken:2[${PYTHON_USEDEP}]
+ sci-libs/orocos_kdl
+ sci-libs/opencascade[vtk(+)]
+ sys-libs/zlib
+ virtual/glu
+ eigen3? ( dev-cpp/eigen:3 )
+ freecad_modules_draft? ( dev-python/pyside:2[svg,${PYTHON_USEDEP}] )
+ freecad_modules_plot? ( dev-python/matplotlib[${PYTHON_USEDEP}] )
+ freecad_modules_smesh? (
+ sci-libs/hdf5
+ sci-libs/libmed[${PYTHON_USEDEP}]
+ sys-cluster/openmpi[cxx]
+ )
+ freetype? ( media-libs/freetype )
+ qt5? (
+ dev-libs/libspnav
+ dev-python/pyside[${PYTHON_USEDEP}]
+ dev-python/pyside-tools[${PYTHON_USEDEP}]
+ dev-qt/qtconcurrent:5
+ dev-qt/qtcore:5
+ dev-qt/qtnetwork:5
+ dev-qt/qtopengl:5
+ dev-qt/qtprintsupport:5
+ dev-qt/qtsvg:5
+ dev-qt/qtxml:5
+ dev-qt/qtwebkit:5
+ media-libs/coin
+ )
+ !qt5? ( dev-python/shiboken[${PYTHON_USEDEP}] )
+ swig? ( dev-lang/swig:= )"
+RDEPEND="${COMMON_DEPEND}"
+DEPEND="${COMMON_DEPEND}"
+
+REQUIRED_USE="${PYTHON_REQUIRED_USE}"
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-0.14.3702-install-paths.patch
+)
+
+# https://bugs.gentoo.org/show_bug.cgi?id=352435
+# https://www.gentoo.org/foundation/en/minutes/2011/20110220_trustees.meeting_log.txt
+RESTRICT="mirror"
+
+DOCS=( README.md ChangeLog.txt )
+
+enable_module() {
+ local module=${1}
+ local value=${2}
+
+ if [ -z "${value}" ]; then
+ value=$(use freecad_modules_${module} && echo ON || echo OFF)
+ fi
+
+ echo "-DBUILD_${module^^}=${value}"
+}
+
+pkg_setup() {
+ fortran-2_pkg_setup
+ python-single-r1_pkg_setup
+
+ [[ -z ${CASROOT} ]] && die "empty \$CASROOT, run eselect opencascade set or define otherwise"
+}
+
+src_configure() {
+ # TODO
+ # FREECAD_USE_EXTERNAL_ZIPIOS="ON": needs zipois++ which is not in tree yet
+ # FREECAD_USE_EXTERNAL_SMESH="ON": needs salome-smash which is not in tree yet
+ #-DOCC_* defined with cMake/FindOpenCasCade.cmake
+ # VR module not included here as we do not support it
+ local mycmakeargs=(
+ -DOCC_INCLUDE_DIR="${CASROOT}"/inc
+ -DOCC_LIBRARY_DIR="${CASROOT}"/$(get_libdir)
+ -DCMAKE_INSTALL_DATADIR=/usr/share/${P}
+ -DCMAKE_INSTALL_DOCDIR=/usr/share/doc/${PF}
+ -DCMAKE_INSTALL_INCLUDEDIR=/usr/include/${P}
+ -DFREECAD_USE_EXTERNAL_KDL="ON"
+ -DBUILD_QT5="$(usex qt5)"
+ -DBUILD_GUI="$(usex qt5)"
+ -DBUILD_FREETYPE="$(usex freetype)"
+ $(enable_module addonmgr)
+ $(enable_module arch)
+ $(enable_module assembly)
+ $(enable_module complete)
+ $(enable_module draft)
+ $(enable_module drawing)
+ $(enable_module fem)
+ $(enable_module idf)
+ $(enable_module image)
+ $(enable_module import)
+ $(enable_module inspection)
+ $(enable_module jtreader)
+ $(enable_module material)
+ $(enable_module mesh)
+ $(enable_module mesh_part)
+ $(enable_module openscad)
+ $(enable_module part)
+ $(enable_module part_design)
+ $(enable_module path)
+ $(enable_module plot)
+ $(enable_module points)
+ $(enable_module raytracing)
+ $(enable_module reverseengineering)
+ $(enable_module robot)
+ $(enable_module sandbox)
+ $(enable_module ship)
+ $(enable_module show)
+ $(enable_module sketcher)
+ $(enable_module smesh)
+ $(enable_module spreadsheet)
+ $(enable_module start)
+ $(enable_module surface)
+ $(enable_module techdraw)
+ $(enable_module template)
+ $(enable_module test)
+ $(enable_module tux)
+ $(enable_module web)
+ )
+
+ cmake-utils_src_configure
+ einfo "${P} will be built against opencascade version ${CASROOT}"
+}
+
+src_install() {
+ cmake-utils_src_install
+
+ 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} || die
+ local size
+ 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 || die
+
+ python_optimize "${ED%/}"/usr/{,share/${P}/}Mod/
+}
+
+pkg_postinst() {
+ gnome2_icon_cache_update
+ xdg_desktop_database_update
+ xdg_mimeinfo_database_update
+}
+
+pkg_postrm() {
+ xdg_mimeinfo_database_update
+ xdg_desktop_database_update
+ gnome2_icon_cache_update
+}
diff --git a/media-gfx/freecad/metadata.xml b/media-gfx/freecad/metadata.xml
new file mode 100644
index 000000000..a957e8bfa
--- /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>xmw@gentoo.org</email>
+ <name>Michael Weber</name>
+ </maintainer>
+ <upstream>
+ <remote-id type="sourceforge">free-cad</remote-id>
+ </upstream>
+</pkgmetadata>