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