app-editors/kakoune: drop old 0_pre20160620
[gentoo.git] / sci-libs / opencascade / opencascade-6.9.1-r2.ebuild
1 # Copyright 1999-2017 Gentoo Foundation
2 # Distributed under the terms of the GNU General Public License v2
3
4 EAPI=6
5
6 inherit autotools eutils check-reqs multilib java-pkg-opt-2 flag-o-matic versionator
7
8 DESCRIPTION="Development platform for CAD/CAE, 3D surface/solid modeling and data exchange"
9 HOMEPAGE="http://www.opencascade.org/"
10 SRC_URI="http://www.opencascade.com/sites/default/files/private/occt/OCC_${PV}_release/opencascade-${PV}.tgz"
11
12 LICENSE="|| ( Open-CASCADE-LGPL-2.1-Exception-1.0 LGPL-2.1 )"
13 SLOT="${PV}"
14 KEYWORDS="~amd64 ~x86"
15 IUSE="debug doc examples freeimage gl2ps java +tbb +vtk"
16
17 DEPEND="
18         app-eselect/eselect-opencascade
19         dev-lang/tcl:0=
20         dev-lang/tk:0=
21         dev-tcltk/itcl
22         dev-tcltk/itk
23         dev-tcltk/tix
24         media-libs/ftgl
25         virtual/glu
26         virtual/opengl
27         x11-libs/libXmu
28         freeimage? ( media-libs/freeimage )
29         gl2ps? ( x11-libs/gl2ps )
30         java? ( >=virtual/jdk-0:= )
31         tbb? ( dev-cpp/tbb )
32         vtk? ( || ( sci-libs/vtk[imaging] sci-libs/vtk[rendering] sci-libs/vtk[views] sci-libs/vtk[all-modules] ) )"
33 RDEPEND="${DEPEND}"
34
35 CHECKREQS_MEMORY="256M"
36 CHECKREQS_DISK_BUILD="3584M"
37
38 PATCHES=(
39         "${FILESDIR}"/${PN}-6.8.0-fixed-DESTDIR.patch
40         "${FILESDIR}"/${PN}-6.9.1-vtk-configure.patch
41 )
42
43 pkg_setup() {
44         check-reqs_pkg_setup
45         java-pkg-opt-2_pkg_setup
46 }
47
48 src_prepare() {
49         default
50
51         MY_VTK_P=$(best_version sci-libs/vtk)
52         MY_VTK_PV=${MY_VTK_P/sci-libs\/vtk-}
53         MY_VTK_SUB=vtk-$(get_version_component_range 1-2 ${MY_VTK_PV})
54         if has_version ">=sci-libs/vtk-6.3" ; then #bug 605304
55                 epatch "${FILESDIR}"/${PN}-6.9.1-vtk-6.3.patch
56         fi
57
58         java-pkg-opt-2_src_prepare
59
60         # Feed environment variables used by Opencascade compilation
61         my_install_dir=${EROOT}usr/$(get_libdir)/${P}/ros
62         local my_env_install="#!/bin/sh -f
63 if [ -z \"\$PATH\" ]; then
64         export PATH=VAR_CASROOT/Linux/bin
65 else
66         export PATH=VAR_CASROOT/Linux/bin:\$PATH
67 fi
68 if [ -z \"\$LD_LIBRARY_PATH\" ]; then
69         export LD_LIBRARY_PATH=VAR_CASROOT/Linux/lib
70 else
71         export LD_LIBRARY_PATH=VAR_CASROOT/Linux/lib:\$LD_LIBRARY_PATH
72 fi"
73         local my_sys_lib=${EROOT}usr/$(get_libdir)
74         local my_env="CASROOT=VAR_CASROOT
75 CSF_MDTVFontDirectory=VAR_CASROOT/src/FontMFT
76 CSF_LANGUAGE=us
77 MMGT_CLEAR=1
78 CSF_EXCEPTION_PROMPT=1
79 CSF_SHMessage=VAR_CASROOT/src/SHMessage
80 CSF_MDTVTexturesDirectory=VAR_CASROOT/src/Textures
81 CSF_XSMessage=VAR_CASROOT/src/XSMessage
82 CSF_StandardDefaults=VAR_CASROOT/src/StdResource
83 CSF_PluginDefaults=VAR_CASROOT/src/StdResource
84 CSF_XCAFDefaults=VAR_CASROOT/src/StdResource
85 CSF_StandardLiteDefaults=VAR_CASROOT/src/StdResource
86 CSF_GraphicShr=VAR_CASROOT/Linux/lib/libTKOpenGl.so
87 CSF_UnitsLexicon=VAR_CASROOT/src/UnitsAPI/Lexi_Expr.dat
88 CSF_UnitsDefinition=VAR_CASROOT/src/UnitsAPI/Units.dat
89 CSF_IGESDefaults=VAR_CASROOT/src/XSTEPResource
90 CSF_STEPDefaults=VAR_CASROOT/src/XSTEPResource
91 CSF_XmlOcafResource=VAR_CASROOT/src/XmlOcafResource
92 CSF_MIGRATION_TYPES=VAR_CASROOT/src/StdResource/MigrationSheet.txt
93 TCLHOME=${EROOT}usr/bin
94 TCLLIBPATH=${my_sys_lib}
95 ITK_LIBRARY=${my_sys_lib}/itk$(grep ITK_VER /usr/include/itk.h | sed 's/^.*"\(.*\)".*/\1/')
96 ITCL_LIBRARY=${my_sys_lib}/itcl$(grep ITCL_VER /usr/include/itcl.h | sed 's/^.*"\(.*\)".*/\1/')
97 TIX_LIBRARY=${my_sys_lib}/tix$(grep TIX_VER /usr/include/tix.h | sed 's/^.*"\(.*\)".*/\1/')
98 TK_LIBRARY=${my_sys_lib}/tk$(grep TK_VER /usr/include/tk.h | sed 's/^.*"\(.*\)".*/\1/')
99 TCL_LIBRARY=${my_sys_lib}/tcl$(grep TCL_VER /usr/include/tcl.h | sed 's/^.*"\(.*\)".*/\1/')"
100
101         (       echo "${my_env_install}"
102                 echo "${my_env}" | sed -e "s:^:export :" ) \
103         | sed -e "s:VAR_CASROOT:${S}:g" > env.sh || die
104         source env.sh
105
106         (       echo "PATH=${my_install_dir}/lin/bin"
107                 echo "LDPATH=${my_install_dir}/lin/$(get_libdir)"
108                 echo "${my_env}" | sed \
109                         -e "s:VAR_CASROOT:${my_install_dir}/lin:g" \
110                         -e "s:/Linux/lib/:/$(get_libdir)/:g" || die
111         ) > 50${PN}
112
113         append-cxxflags "-fpermissive"
114
115         sed -e "/^AM_C_PROTOTYPES$/d" \
116                 -e "s/AM_CONFIG_HEADER/AC_CONFIG_HEADERS/" \
117                 -e "/\$qt directory is not exists/s/AC_MSG_ERROR/AC_MSG_NOTICE/" \
118                 -i configure.ac || die
119
120         eautoreconf
121 }
122
123 src_configure() {
124         econf \
125                 --prefix=${my_install_dir}/lin --exec-prefix=${my_install_dir}/lin \
126                 --with-tcl="${EROOT}usr/$(get_libdir)" --with-tk="${EROOT}usr/$(get_libdir)" \
127                 --with-freetype="${EROOT}usr" \
128                 --with-ftgl="${EROOT}usr" \
129                 --without-qt \
130                 $(usex freeimage "--with-freeimage=${EROOT}usr" "") \
131                 $(usex gl2ps "--with-gl2ps=${EROOT}usr" "") \
132                 $(usex tbb "--with-tbb-include=${EROOT}usr" "") \
133                 $(usex tbb "--with-tbb-library=${EROOT}usr" "") \
134                 $(use java && echo "--with-java-include=$(java-config -O)/include" || echo "--without-java-include") \
135                 $(usex vtk "--with-vtk-include=${EROOT}usr/include/${MY_VTK_SUB}" "") \
136                 $(usex vtk "--with-vtk-library=${EROOT}usr/$(get_libdir)" "") \
137                 $(use_enable debug) \
138                 $(use_enable !debug production)
139 }
140
141 src_install() {
142         emake DESTDIR="${D}" install
143
144         prune_libtool_files
145
146         # Symlinks for keeping original OpenCascade folder structure and
147         # add a link lib to $(get_libdir)  if we are e.g. on amd64 multilib
148         if [ "$(get_libdir)" != "lib" ]; then
149                 dosym "$(get_libdir)" "${my_install_dir}/lin/lib"
150         fi
151
152         insinto /etc/env.d/${PN}
153         newins 50${PN} ${PV}
154
155         if use examples ; then
156                 insinto /usr/share/doc/${PF}/examples
157                 doins -r data
158                 doins -r samples
159         fi
160         if use doc; then
161                 insinto /usr/share/doc/${PF}
162                 doins -r doc/{overview,pdf,refman}
163         fi
164 }
165
166 pkg_postinst() {
167         eselect ${PN} set ${PV}
168         elog "After upgrading OpenCASCADE you may have to rebuild packages depending on it."
169         elog "You get a list by running \"equery depends sci-libs/opencascade\""
170         elog "revdep-rebuild does NOT suffice."
171 }