commit:     b83b3eaf0c8423672624c1cb06cc0ff5bc4aa360
Author:     Bernd Waibel <waebbl-gentoo <AT> posteo <DOT> net>
AuthorDate: Tue May 18 18:40:01 2021 +0000
Commit:     Alexey Shvetsov <alexxy <AT> gentoo <DOT> org>
CommitDate: Mon May 31 19:26:02 2021 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=b83b3eaf

media-gfx/freecad: fix opencascade issue

Fix an issue with sci-libs/opencascade:7.4.0, where a wrong options
has been passed to cmake.
Additionally improves testing which version of opencascade has been
installed and adds some guards to select correct options.

Closes: https://bugs.gentoo.org/789705
Package-Manager: Portage-3.0.18, Repoman-3.0.3
Signed-off-by: Bernd Waibel <waebbl-gentoo <AT> posteo.net>
Signed-off-by: Alexey Shvetsov <alexxy <AT> gentoo.org>

 media-gfx/freecad/freecad-0.19.2.ebuild | 27 +++++++++++++++++++--------
 1 file changed, 19 insertions(+), 8 deletions(-)

diff --git a/media-gfx/freecad/freecad-0.19.2.ebuild 
b/media-gfx/freecad/freecad-0.19.2.ebuild
index 7e191a22a02..4719298feb3 100644
--- a/media-gfx/freecad/freecad-0.19.2.ebuild
+++ b/media-gfx/freecad/freecad-0.19.2.ebuild
@@ -141,11 +141,20 @@ src_prepare() {
        rm "${S}/cMake/FindCoin3D.cmake" || die
 
        # Fix OpenCASCADE lookup
-       # TODO: check this for opencascade-7.5.1 locations, which have
-       # changed since 7.4.0 after that package has merged
-       sed -e 's|/usr/include/opencascade|${CASROOT}/include/opencascade|' \
-               -e 's|/usr/lib|${CASROOT}/'$(get_libdir)' NO_DEFAULT_PATH|' \
-               -i cMake/FindOpenCasCade.cmake || die
+       local OCC_P=$(best_version sci-libs/opencascade[vtk])
+       OCC_P=${OCC_P#sci-libs/}
+       local OCC_PV=${OCC_P#opencascade-}
+       OCC_PV=$(ver_cut 1-2 ${OCC_PV})
+       # check for CASROOT needed to ensure occ-7.5 is eselected and profile 
resourced
+       if [[ ${OCC_PV} = 7.5 && ${CASROOT} = "/usr" ]]; then
+               sed -e 
's|/usr/include/opencascade|'${CASROOT}'/include/'${OCC_P}'|' \
+                       -e 's|/usr/lib|'${CASROOT}'/'$(get_libdir)'/'${OCC_P}' 
NO_DEFAULT_PATH|' \
+                       -i cMake/FindOpenCasCade.cmake || die
+       else
+               sed -e 
's|/usr/include/opencascade|${CASROOT}/include/opencascade|' \
+                       -e 's|/usr/lib|${CASROOT}/'$(get_libdir)' 
NO_DEFAULT_PATH|' \
+                       -i cMake/FindOpenCasCade.cmake || die
+       fi
 
        # Fix desktop file
        sed -e 's/Exec=FreeCAD/Exec=freecad/' -i 
src/XDGData/org.freecadweb.FreeCAD.desktop || die
@@ -227,14 +236,16 @@ src_configure() {
 
        if has_version ">=sci-libs/opencascade-7.5"; then
                # bug https://bugs.gentoo.org/788274
+               local OCC_P=$(best_version sci-libs/opencascade[vtk])
+               OCC_P=${OCC_P#sci-libs/}
                mycmakeargs+=(
-                       -DOCC_INCLUDE_DIR="${CASROOT}"/include/opencascade-7.5.1
-                       
-DOCC_LIBRARY_DIR="${CASROOT}"/$(get_libdir)/opencascade-7.5.1
+                       -DOCC_INCLUDE_DIR="${CASROOT}"/include/${OCC_P}
+                       -DOCC_LIBRARY_DIR="${CASROOT}"/$(get_libdir)/${OCC_P}
                )
        else
                # <occ-7.5 uses different layout
                mycmakeargs+=(
-                       -DOCC_INCLUDEDIR="${CASROOT}"/include/opencascade
+                       -DOCC_INCLUDE_DIR="${CASROOT}"/include/opencascade
                        -DOCC_LIBRARY_DIR="${CASROOT}"/$(get_libdir)
                )
        fi

Reply via email to