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