diff options
author | Miroslav Šulc <fordfrog@gentoo.org> | 2017-11-23 19:17:06 +0100 |
---|---|---|
committer | Miroslav Šulc <fordfrog@gentoo.org> | 2017-11-23 19:17:06 +0100 |
commit | d61503ff077c4982d45dde2020a9e43769be954b (patch) | |
tree | de3b264b7096775f7002338877f2ce60b474d4c5 | |
parent | sci-libs/libmed: removed cmake patch (diff) | |
download | fordfrog-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/Manifest | 4 | ||||
-rw-r--r-- | media-gfx/freecad/files/freecad-0.14.3702-install-paths.patch | 21 | ||||
-rw-r--r-- | media-gfx/freecad/files/freecad.sharedmimeinfo | 8 | ||||
-rw-r--r-- | media-gfx/freecad/freecad-9999.ebuild | 231 | ||||
-rw-r--r-- | media-gfx/freecad/metadata.xml | 11 |
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> |