# Copyright 1999-2007 Gentoo Foundation # Distributed under the terms of the GNU General Public License v2 inherit autotools distutils eutils flag-o-matic toolchain-funcs versionator python DESCRIPTION="SALOME : The Open Source Integration Platform for Numerical Simulation" HOMEPAGE="http://www.salome-platform.org" SRC_URI="salome-3.2.6.tar.gz" LICENSE="GPL-2" KEYWORDS="~amd64 ~x86" SLOT="0" IUSE="doc corba opengl openpbs mpi X debug" RESTRICT="fetch" RDEPEND="doc? ( app-doc/doxygen media-gfx/graphviz ) opengl? ( virtual/opengl ) mpi? ( sys-cluster/mpich ) openpbs? ( sys-cluster/openpbs ) debug? ( dev-util/cppunit )" DEPEND="${RDEPEND} sys-devel/bison sys-devel/flex sci-libs/hdf5 >=dev-python/PyQt-3.13 >=dev-python/sip-4.1.3 >=dev-lang/python-2.3 dev-python/omniorbpy dev-python/numeric dev-python/docutils dev-lang/swig dev-libs/boost x11-libs/qwt >=x11-libs/qt-3.3.3 dev-lang/tk dev-lang/tcl sci-libs/vtk net-misc/omniORB >=sci-libs/opencascade-6.1 sys-devel/autoconf sys-devel/automake sys-devel/libtool sci-misc/netgen =sci-misc/salome-kernel-3.2.6" MODULE_NAME="GUI" MY_S="${WORKDIR}/src${PV}/GUI_SRC_${PV}" MY_W="${WORKDIR}/build" pkg_nofetch() { einfo "You have to download manually the source code. You can download it from :" einfo " http://www.salome-platform.org/download/dl326" einfo "" einfo "Put the archive in the \"/usr/portage/distfile\" directory and rename it \"salome-3.2.6.tar.gz\"" } src_unpack() { unpack ${A} cd ${WORKDIR}/src${PV} epatch ${FILESDIR}/salome-gui-3.2.6.patch # If vtk-5.O is used, include directory is named vtk-5.0 and not vtk if has_version ">=sci-libs/vtk-5.0"; then einfo "vtk version 5 detected" append-flags -I/usr/include/vtk-5.0 epatch ${FILESDIR}/salome-gui-vtk-5.0.patch else einfo "vtk version 4 or prior detected"; fi mkdir $MY_W } src_compile() { local myconf cd "${MY_S}" rm -r -f autom4te.cache ewarn "The 'threads' flag MUST be ON and boost (at least) must be rebuild with this flag on" ./build_configure # CXXFLAGS are slightly modified to allow the compilation of # salome-gui with OpenCascade and gcc-4.1.x if version_is_at_least "4.1" $(gcc-version) ; then append-flags -ffriend-injection -fpermissive fi # Fix a bug # # Fix a bug concerning a missing header append-flags -I${MY_S}/../KERNEL_SRC_${PV}/src/Basics/Test # Fix a bug # # There is a missing new line at the end of the file # "adm_local/unix/config_files/check_vtk.m4". echo -e "\n" >> adm_local/unix/config_files/check_vtk.m4 # # Configuration # if use opengl && use !X; then ewarn "OpenGL functionnalities imply X support! Check your USE flags configuration." die fi myconf="--with-kernel=${KERNEL_ROOT_DIR}" myconf="${myconf} --prefix=${D}opt/salome-${PV}/GUI" if use X; then myconf="${myconf} --with-x --with-xmu-include=/usr/include --with-xmu-library=/usr/lib" if use opengl; then myconf="${myconf} --with-gl-include=/usr/include --with-gl-library=/usr/lib" else myconf="${myconf} --without-opengl" fi else myconf="${myconf} --without-x --without-gl --without-xmu" fi if use !debug; then myconf="${myconf} --disable-debug --enable-production --without-cppunit" else myconf="${myconf} --enable-debug" fi # if use !mpi; then # myconf="${myconf} --without-mpi --without-mpich" # fi if use !openpbs; then myconf="${myconf} --without-openpbs" fi cd ${MY_W} ${MY_S}/configure ${myconf} || die "econf failed" # Fix a bug # # Compilation failed the first time when use sip-4.1.7. A generated file needs to be patched make -j1 if [ -f ${MY_W}/src/SALOME_PYQT/SalomePyQt/sipSalomePyQtcmodule.cc ] then echo " enum MenuName { File = 1, View = 2, Edit = 3, Preferences = 4, Tools = 5, Window = 6, Help = 7 }; enum WindowType { WT_ObjectBrowser, WT_PyConsole, WT_LogWindow, WT_User }; enum PrefType { PT_Space, PT_Bool, PT_Color, PT_String, PT_Selector, PT_DblSpin, PT_IntSpin, PT_Double, PT_Integer, PT_GroupBox, PT_Font, PT_DirList, PT_File, PT_User };" > patch.h cat ${MY_W}/src/SALOME_PYQT/SalomePyQt/sipSalomePyQtcmodule.cc >> patch.h cp patch.h ${MY_W}/src/SALOME_PYQT/SalomePyQt/sipSalomePyQtcmodule.cc else die "First compilation failed" fi make -j1 || die "Second compilation failed" } src_install() { cd ${MY_W} mkdir ${D}opt/salome-${PV}/GUI -p make install || dies "install failed" echo "${MODULE_NAME}_ROOT_DIR=/opt/salome-${PV}/${MODULE_NAME}" > ${D}/etc/env.d/90salome-gui # # Checking for relocation # cd ${D}opt/salome-${PV}/GUI FileList="bin/salome/supervisionexample.py lib/salome/libLightApp.la lib/salome/libSVTK.la lib/salome/libToolsGUI.la lib/salome/libSPlot2d.la lib/salome/libSalomeStyle.la lib/salome/libqtx.la lib/salome/libSalomePrs.la lib/salome/libPlot2d.la lib/salome/libstd.la lib/salome/libSalomeAppTest.la lib/salome/libSalomeObject.la lib/salome/libGLViewer.la lib/salome/libSUITApp.la lib/salome/libSalomePy.la lib/salome/libLogWindow.la lib/salome/libCAM.la lib/salome/libDDS.la lib/salome/libVTKViewer.la lib/salome/libPythonConsole.la lib/salome/libSalomePyQtGUI.la lib/salome/libSUPERVGraph.la lib/salome/libQDS.la lib/salome/libPyInterp.la lib/salome/libRegistryDisplay.la lib/salome/libSalomeSession.la lib/salome/libOCCViewer.la lib/salome/libSOCC.la lib/salome/libSALOME_Swigcmodule.la lib/salome/libEvent.la lib/salome/libcaf.la lib/salome/libSalomeApp.la lib/salome/libObjBrowser.la lib/salome/libsuit.la salome_adm/unix/make_commence" for i in $FileList do einfo "Relocation : $i" sed -i "s@${D}@@g" $i done }