commit:     96605bdaf660d468681de469406ab6f663d5df72
Author:     Paul Zander <negril.nx+gentoo <AT> gmail <DOT> com>
AuthorDate: Sat Jan 20 21:08:52 2024 +0000
Commit:     Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Sun Jan 21 03:58:41 2024 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=96605bda

dev-cpp/eigen: bugfix & improvement

Fix llvm_pkg_setup failure when llvm isn't installed.
Refactor src_configure to reduce detection steps when not building tests.

Signed-off-by: Paul Zander <negril.nx+gentoo <AT> gmail.com>
Closes: https://github.com/gentoo/gentoo/pull/34927
Signed-off-by: Sam James <sam <AT> gentoo.org>

 dev-cpp/eigen/eigen-3.4.0-r2.ebuild | 61 ++++++++++++++++++++++++++-----------
 dev-cpp/eigen/eigen-3.4.9999.ebuild | 61 +++++++++++++++++++++++++------------
 dev-cpp/eigen/eigen-9999.ebuild     | 61 +++++++++++++++++++++++++------------
 dev-cpp/eigen/metadata.xml          |  1 +
 4 files changed, 128 insertions(+), 56 deletions(-)

diff --git a/dev-cpp/eigen/eigen-3.4.0-r2.ebuild 
b/dev-cpp/eigen/eigen-3.4.0-r2.ebuild
index 3ecf3d7a3bf7..04a52fe2d8ea 100644
--- a/dev-cpp/eigen/eigen-3.4.0-r2.ebuild
+++ b/dev-cpp/eigen/eigen-3.4.0-r2.ebuild
@@ -58,11 +58,11 @@ X86_CPU_FEATURES=(
 # )
 
 CPU_FEATURES_MAP=(
-       ${ARM_CPU_FEATURES[@]/#/cpu_flags_arm_}
-       ${PPC_CPU_FEATURES[@]/#/cpu_flags_ppc_}
-       ${X86_CPU_FEATURES[@]/#/cpu_flags_x86_}
-       # ${MIPS_CPU_FEATURES[@]/#/cpu_flags_mips_}
-       # ${S390_CPU_FEATURES[@]/#/cpu_flags_s390_}
+       "${ARM_CPU_FEATURES[@]/#/cpu_flags_arm_}"
+       "${PPC_CPU_FEATURES[@]/#/cpu_flags_ppc_}"
+       "${X86_CPU_FEATURES[@]/#/cpu_flags_x86_}"
+       # "${MIPS_CPU_FEATURES[@]/#/cpu_flags_mips_}"
+       # "${S390_CPU_FEATURES[@]/#/cpu_flags_s390_}"
 )
 
 IUSE_TEST_BACKENDS=(
@@ -80,7 +80,7 @@ IUSE_TEST_BACKENDS=(
        "umfpack"
 )
 
-IUSE="${CPU_FEATURES_MAP[*]%:*} clang cuda hip debug doc lapack test 
${IUSE_TEST_BACKENDS[*]}" #zvector
+IUSE="${CPU_FEATURES_MAP[*]%:*} clang cuda hip debug doc lapack mathjax test 
${IUSE_TEST_BACKENDS[*]}" #zvector
 
 # Tests failing again because of compiler issues
 RESTRICT="!test? ( test )"
@@ -93,6 +93,7 @@ BDEPEND="
                dev-texlive/texlive-fontutils
                dev-texlive/texlive-latex
                dev-texlive/texlive-latexextra
+               mathjax? ( dev-libs/mathjax )
        )
        test? ( virtual/pkgconfig )
 "
@@ -186,6 +187,10 @@ cuda_set_CUDAHOSTCXX() {
        export CUDAHOSTCXX
 }
 
+pkg_setup() {
+       use test && use cuda && use clang && llvm_pkg_setup
+}
+
 src_unpack() {
        if [[ ${PV} = *9999* ]] ; then
                git-r3_src_unpack
@@ -202,18 +207,44 @@ src_unpack() {
 src_prepare() {
        cmake_src_prepare
 
-       cmake_comment_add_subdirectory demos
+       sed \
+               -e "/add_subdirectory(bench\/spbench/s/^/#DONOTCOMPILE /g" \
+               -e "/add_subdirectory(demos/s/^/#DONOTCOMPILE /g" \
+               -i CMakeLists.txt || die
 
        if ! use test; then
-               sed -e "/add_subdirectory(test/s/^/#DONOTCOMPILE /g" \
+               sed \
+                       -e "/add_subdirectory(test/s/^/#DONOTCOMPILE /g" \
+                       -e "/add_subdirectory(scripts/s/^/#DONOTCOMPILE /g" \
+                       -e "/add_subdirectory(failtest/s/^/#DONOTCOMPILE /g" \
                        -e "/add_subdirectory(blas/s/^/#DONOTCOMPILE /g" \
                        -e "/add_subdirectory(lapack/s/^/#DONOTCOMPILE /g" \
                        -i CMakeLists.txt || die
        fi
-
 }
 
 src_configure() {
+       local mycmakeargs=(
+               -DBUILD_SHARED_LIBS="yes"
+               -DBUILD_TESTING="$(usex test)"
+
+               -DEIGEN_BUILD_DOC="$(usex doc)" # Enable creation of Eigen 
documentation
+               -DEIGEN_BUILD_PKGCONFIG="yes" # Build pkg-config .pc file for 
Eigen
+       )
+       if use doc || use test; then
+               mycmakeargs+=(
+                       # needs Qt4
+                       -DEIGEN_TEST_NOQT="yes" # Disable Qt support in unit 
tests
+               )
+       fi
+
+       if use doc; then
+               mycmakeargs+=(
+                       -DEIGEN_DOC_USE_MATHJAX="$(usex mathjax)" # Use MathJax 
for rendering math in HTML docs
+                       -DEIGEN_INTERNAL_DOCUMENTATION=no # Build internal 
documentation
+               )
+       fi
+
        if use test; then
                mycmakeargs+=(
                        # the OpenGL testsuite is extremely brittle, bug #712808
@@ -221,9 +252,6 @@ src_configure() {
                        -DEIGEN_TEST_OPENGL="$(usex opengl)" # Enable OpenGL 
support in unit tests
                        -DEIGEN_TEST_OPENMP="$(usex openmp)" # Enable/Disable 
OpenMP in tests/examples
 
-                       # needs Qt4
-                       -DEIGEN_TEST_NOQT=yes # Disable Qt support in unit tests
-
                        -DCMAKE_DISABLE_FIND_PACKAGE_MPREAL=ON
 
                        -DEIGEN_TEST_CXX11=yes
@@ -234,11 +262,6 @@ src_configure() {
 
                        # -DEIGEN_BUILD_BTL=yes # Build benchmark suite
 
-                       # -DEIGEN_INTERNAL_DOCUMENTATION=no # Build internal 
documentation
-                       # -DEIGEN_BUILD_DOC=yes # Enable creation of Eigen 
documentation
-                       # -DEIGEN_BUILD_PKGCONFIG=yes # Build pkg-config .pc 
file for Eigen
-                       # -DEIGEN_DOC_USE_MATHJAX=yes # Use MathJax for 
rendering math in HTML docs
-
                        -DEIGEN_TEST_BUILD_DOCUMENTATION="$(usex doc)" # Test 
building the doxygen documentation
 
                        # -DEIGEN_COVERAGE_TESTING=no # Enable/disable gcov
@@ -341,12 +364,12 @@ src_configure() {
 
                if use cuda; then
                        cuda_add_sandbox -w
-                       export CUDAFLAGS="${NVCCFLAGS}"
                        if use clang; then
                                local llvm_prefix
                                llvm_prefix="$(get_llvm_prefix -b)"
                                export CC="${llvm_prefix}/bin/clang"
                                export CXX="${llvm_prefix}/bin/clang++"
+                               export 
LIBRARY_PATH="${ESYSROOT}/usr/$(get_libdir)"
                        else
                                cuda_set_CUDAHOSTCXX
                                mycmakeargs+=(
@@ -360,6 +383,8 @@ src_configure() {
                                NVCCFLAGS+=" -v"
                        fi
 
+                       export CUDAFLAGS="${NVCCFLAGS}"
+
                        [[ -z "${CUDAARCHS}" ]] && einfo "trying to determine 
host CUDAARCHS"
                        : "${CUDAARCHS:=$(__nvcc_device_query)}"
                        export CUDAARCHS

diff --git a/dev-cpp/eigen/eigen-3.4.9999.ebuild 
b/dev-cpp/eigen/eigen-3.4.9999.ebuild
index 223638535893..e4f1e0613661 100644
--- a/dev-cpp/eigen/eigen-3.4.9999.ebuild
+++ b/dev-cpp/eigen/eigen-3.4.9999.ebuild
@@ -58,11 +58,11 @@ X86_CPU_FEATURES=(
 # )
 
 CPU_FEATURES_MAP=(
-       ${ARM_CPU_FEATURES[@]/#/cpu_flags_arm_}
-       ${PPC_CPU_FEATURES[@]/#/cpu_flags_ppc_}
-       ${X86_CPU_FEATURES[@]/#/cpu_flags_x86_}
-       # ${MIPS_CPU_FEATURES[@]/#/cpu_flags_mips_}
-       # ${S390_CPU_FEATURES[@]/#/cpu_flags_s390_}
+       "${ARM_CPU_FEATURES[@]/#/cpu_flags_arm_}"
+       "${PPC_CPU_FEATURES[@]/#/cpu_flags_ppc_}"
+       "${X86_CPU_FEATURES[@]/#/cpu_flags_x86_}"
+       # "${MIPS_CPU_FEATURES[@]/#/cpu_flags_mips_}"
+       # "${S390_CPU_FEATURES[@]/#/cpu_flags_s390_}"
 )
 
 IUSE_TEST_BACKENDS=(
@@ -80,7 +80,7 @@ IUSE_TEST_BACKENDS=(
        "umfpack"
 )
 
-IUSE="benchmark ${CPU_FEATURES_MAP[*]%:*} clang cuda hip debug doc lapack test 
${IUSE_TEST_BACKENDS[*]}" #zvector
+IUSE="benchmark ${CPU_FEATURES_MAP[*]%:*} clang cuda hip debug doc lapack 
mathjax test ${IUSE_TEST_BACKENDS[*]}" #zvector
 
 # Tests failing again because of compiler issues
 RESTRICT="!test? ( test )"
@@ -93,6 +93,7 @@ BDEPEND="
                dev-texlive/texlive-fontutils
                dev-texlive/texlive-latex
                dev-texlive/texlive-latexextra
+               mathjax? ( dev-libs/mathjax )
        )
        test? ( virtual/pkgconfig )
 "
@@ -185,6 +186,10 @@ cuda_set_CUDAHOSTCXX() {
        export CUDAHOSTCXX
 }
 
+pkg_setup() {
+       use test && use cuda && use clang && llvm_pkg_setup
+}
+
 src_unpack() {
        if [[ ${PV} = *9999* ]] ; then
                git-r3_src_unpack
@@ -201,21 +206,45 @@ src_unpack() {
 src_prepare() {
        cmake_src_prepare
 
-       cmake_comment_add_subdirectory demos
+       sed \
+               -e "/add_subdirectory(bench\/spbench/s/^/#DONOTCOMPILE /g" \
+               -e "/add_subdirectory(demos/s/^/#DONOTCOMPILE /g" \
+               -i CMakeLists.txt || die
 
        if ! use test; then
-               sed -e "/add_subdirectory(test/s/^/#DONOTCOMPILE /g" \
+               sed \
+                       -e "/add_subdirectory(test/s/^/#DONOTCOMPILE /g" \
+                       -e "/add_subdirectory(scripts/s/^/#DONOTCOMPILE /g" \
+                       -e "/add_subdirectory(failtest/s/^/#DONOTCOMPILE /g" \
                        -e "/add_subdirectory(blas/s/^/#DONOTCOMPILE /g" \
                        -e "/add_subdirectory(lapack/s/^/#DONOTCOMPILE /g" \
                        -i CMakeLists.txt || die
        fi
-
 }
 
 src_configure() {
        local mycmakeargs=(
-               -DEIGEN_BUILD_BTL="$(usex benchmark)"
+               -DBUILD_SHARED_LIBS="yes"
+               -DBUILD_TESTING="$(usex test)"
+
+               -DEIGEN_BUILD_BTL="$(usex benchmark)" # Build benchmark suite
+               -DEIGEN_BUILD_DOC="$(usex doc)" # Enable creation of Eigen 
documentation
+               -DEIGEN_BUILD_PKGCONFIG="yes" # Build pkg-config .pc file for 
Eigen
        )
+       if use doc || use test; then
+               mycmakeargs+=(
+                       # needs Qt4
+                       -DEIGEN_TEST_NOQT="yes" # Disable Qt support in unit 
tests
+               )
+       fi
+
+       if use doc; then
+               mycmakeargs+=(
+                       -DEIGEN_DOC_USE_MATHJAX="$(usex mathjax)" # Use MathJax 
for rendering math in HTML docs
+                       -DEIGEN_INTERNAL_DOCUMENTATION=no # Build internal 
documentation
+               )
+       fi
+
        if use test; then
                mycmakeargs+=(
                        # the OpenGL testsuite is extremely brittle, bug #712808
@@ -223,9 +252,6 @@ src_configure() {
                        -DEIGEN_TEST_OPENGL="$(usex opengl)" # Enable OpenGL 
support in unit tests
                        -DEIGEN_TEST_OPENMP="$(usex openmp)" # Enable/Disable 
OpenMP in tests/examples
 
-                       # needs Qt4
-                       -DEIGEN_TEST_NOQT=yes # Disable Qt support in unit tests
-
                        -DCMAKE_DISABLE_FIND_PACKAGE_MPREAL=ON
 
                        -DEIGEN_TEST_CXX11=yes
@@ -236,11 +262,6 @@ src_configure() {
 
                        # -DEIGEN_BUILD_BTL=yes # Build benchmark suite
 
-                       # -DEIGEN_INTERNAL_DOCUMENTATION=no # Build internal 
documentation
-                       # -DEIGEN_BUILD_DOC=yes # Enable creation of Eigen 
documentation
-                       # -DEIGEN_BUILD_PKGCONFIG=yes # Build pkg-config .pc 
file for Eigen
-                       # -DEIGEN_DOC_USE_MATHJAX=yes # Use MathJax for 
rendering math in HTML docs
-
                        -DEIGEN_TEST_BUILD_DOCUMENTATION="$(usex doc)" # Test 
building the doxygen documentation
 
                        # -DEIGEN_COVERAGE_TESTING=no # Enable/disable gcov
@@ -343,12 +364,12 @@ src_configure() {
 
                if use cuda; then
                        cuda_add_sandbox -w
-                       export CUDAFLAGS="${NVCCFLAGS}"
                        if use clang; then
                                local llvm_prefix
                                llvm_prefix="$(get_llvm_prefix -b)"
                                export CC="${llvm_prefix}/bin/clang"
                                export CXX="${llvm_prefix}/bin/clang++"
+                               export 
LIBRARY_PATH="${ESYSROOT}/usr/$(get_libdir)"
                        else
                                cuda_set_CUDAHOSTCXX
                                mycmakeargs+=(
@@ -362,6 +383,8 @@ src_configure() {
                                NVCCFLAGS+=" -v"
                        fi
 
+                       export CUDAFLAGS="${NVCCFLAGS}"
+
                        [[ -z "${CUDAARCHS}" ]] && einfo "trying to determine 
host CUDAARCHS"
                        : "${CUDAARCHS:=$(__nvcc_device_query)}"
                        export CUDAARCHS

diff --git a/dev-cpp/eigen/eigen-9999.ebuild b/dev-cpp/eigen/eigen-9999.ebuild
index 6e17f2f00d02..219f6dba7d1c 100644
--- a/dev-cpp/eigen/eigen-9999.ebuild
+++ b/dev-cpp/eigen/eigen-9999.ebuild
@@ -58,11 +58,11 @@ X86_CPU_FEATURES=(
 # )
 
 CPU_FEATURES_MAP=(
-       ${ARM_CPU_FEATURES[@]/#/cpu_flags_arm_}
-       ${PPC_CPU_FEATURES[@]/#/cpu_flags_ppc_}
-       ${X86_CPU_FEATURES[@]/#/cpu_flags_x86_}
-       # ${MIPS_CPU_FEATURES[@]/#/cpu_flags_mips_}
-       # ${S390_CPU_FEATURES[@]/#/cpu_flags_s390_}
+       "${ARM_CPU_FEATURES[@]/#/cpu_flags_arm_}"
+       "${PPC_CPU_FEATURES[@]/#/cpu_flags_ppc_}"
+       "${X86_CPU_FEATURES[@]/#/cpu_flags_x86_}"
+       # "${MIPS_CPU_FEATURES[@]/#/cpu_flags_mips_}"
+       # "${S390_CPU_FEATURES[@]/#/cpu_flags_s390_}"
 )
 
 IUSE_TEST_BACKENDS=(
@@ -80,7 +80,7 @@ IUSE_TEST_BACKENDS=(
        "umfpack"
 )
 
-IUSE="benchmark ${CPU_FEATURES_MAP[*]%:*} clang cuda hip debug doc lapack test 
${IUSE_TEST_BACKENDS[*]}" #zvector
+IUSE="benchmark ${CPU_FEATURES_MAP[*]%:*} clang cuda hip debug doc lapack 
mathjax test ${IUSE_TEST_BACKENDS[*]}" #zvector
 
 # Tests failing again because of compiler issues
 RESTRICT="!test? ( test )"
@@ -93,6 +93,7 @@ BDEPEND="
                dev-texlive/texlive-fontutils
                dev-texlive/texlive-latex
                dev-texlive/texlive-latexextra
+               mathjax? ( dev-libs/mathjax )
        )
        test? ( virtual/pkgconfig )
 "
@@ -183,6 +184,10 @@ cuda_set_CUDAHOSTCXX() {
        export CUDAHOSTCXX
 }
 
+pkg_setup() {
+       use test && use cuda && use clang && llvm_pkg_setup
+}
+
 src_unpack() {
        if [[ ${PV} = *9999* ]] ; then
                git-r3_src_unpack
@@ -199,21 +204,45 @@ src_unpack() {
 src_prepare() {
        cmake_src_prepare
 
-       cmake_comment_add_subdirectory demos
+       sed \
+               -e "/add_subdirectory(bench\/spbench/s/^/#DONOTCOMPILE /g" \
+               -e "/add_subdirectory(demos/s/^/#DONOTCOMPILE /g" \
+               -i CMakeLists.txt || die
 
        if ! use test; then
-               sed -e "/add_subdirectory(test/s/^/#DONOTCOMPILE /g" \
+               sed \
+                       -e "/add_subdirectory(test/s/^/#DONOTCOMPILE /g" \
+                       -e "/add_subdirectory(scripts/s/^/#DONOTCOMPILE /g" \
+                       -e "/add_subdirectory(failtest/s/^/#DONOTCOMPILE /g" \
                        -e "/add_subdirectory(blas/s/^/#DONOTCOMPILE /g" \
                        -e "/add_subdirectory(lapack/s/^/#DONOTCOMPILE /g" \
                        -i CMakeLists.txt || die
        fi
-
 }
 
 src_configure() {
        local mycmakeargs=(
-               -DEIGEN_BUILD_BTL="$(usex benchmark)"
+               -DBUILD_SHARED_LIBS="yes"
+               -DBUILD_TESTING="$(usex test)"
+
+               -DEIGEN_BUILD_BTL="$(usex benchmark)" # Build benchmark suite
+               -DEIGEN_BUILD_DOC="$(usex doc)" # Enable creation of Eigen 
documentation
+               -DEIGEN_BUILD_PKGCONFIG="yes" # Build pkg-config .pc file for 
Eigen
        )
+       if use doc || use test; then
+               mycmakeargs+=(
+                       # needs Qt4
+                       -DEIGEN_TEST_NOQT="yes" # Disable Qt support in unit 
tests
+               )
+       fi
+
+       if use doc; then
+               mycmakeargs+=(
+                       -DEIGEN_DOC_USE_MATHJAX="$(usex mathjax)" # Use MathJax 
for rendering math in HTML docs
+                       -DEIGEN_INTERNAL_DOCUMENTATION=no # Build internal 
documentation
+               )
+       fi
+
        if use test; then
                mycmakeargs+=(
                        # the OpenGL testsuite is extremely brittle, bug #712808
@@ -221,9 +250,6 @@ src_configure() {
                        -DEIGEN_TEST_OPENGL="$(usex opengl)" # Enable OpenGL 
support in unit tests
                        -DEIGEN_TEST_OPENMP="$(usex openmp)" # Enable/Disable 
OpenMP in tests/examples
 
-                       # needs Qt4
-                       -DEIGEN_TEST_NOQT=yes # Disable Qt support in unit tests
-
                        -DCMAKE_DISABLE_FIND_PACKAGE_MPREAL=ON
 
                        # -DEIGEN_TEST_CUSTOM_CXX_FLAGS= # Additional compiler 
flags when compiling unit tests.
@@ -232,11 +258,6 @@ src_configure() {
 
                        # -DEIGEN_BUILD_BTL=yes # Build benchmark suite
 
-                       # -DEIGEN_INTERNAL_DOCUMENTATION=no # Build internal 
documentation
-                       # -DEIGEN_BUILD_DOC=yes # Enable creation of Eigen 
documentation
-                       # -DEIGEN_BUILD_PKGCONFIG=yes # Build pkg-config .pc 
file for Eigen
-                       # -DEIGEN_DOC_USE_MATHJAX=yes # Use MathJax for 
rendering math in HTML docs
-
                        -DEIGEN_TEST_BUILD_DOCUMENTATION="$(usex doc)" # Test 
building the doxygen documentation
 
                        # -DEIGEN_COVERAGE_TESTING=no # Enable/disable gcov
@@ -339,12 +360,12 @@ src_configure() {
 
                if use cuda; then
                        cuda_add_sandbox -w
-                       export CUDAFLAGS="${NVCCFLAGS}"
                        if use clang; then
                                local llvm_prefix
                                llvm_prefix="$(get_llvm_prefix -b)"
                                export CC="${llvm_prefix}/bin/clang"
                                export CXX="${llvm_prefix}/bin/clang++"
+                               export 
LIBRARY_PATH="${ESYSROOT}/usr/$(get_libdir)"
                        else
                                cuda_set_CUDAHOSTCXX
                                mycmakeargs+=(
@@ -358,6 +379,8 @@ src_configure() {
                                NVCCFLAGS+=" -v"
                        fi
 
+                       export CUDAFLAGS="${NVCCFLAGS}"
+
                        [[ -z "${CUDAARCHS}" ]] && einfo "trying to determine 
host CUDAARCHS"
                        : "${CUDAARCHS:=$(__nvcc_device_query)}"
                        export CUDAARCHS

diff --git a/dev-cpp/eigen/metadata.xml b/dev-cpp/eigen/metadata.xml
index 57571f41d055..6a83729afd0b 100644
--- a/dev-cpp/eigen/metadata.xml
+++ b/dev-cpp/eigen/metadata.xml
@@ -25,6 +25,7 @@
                <flag name="cholmod">Add test support for CHOLMOD 
(<pkg>sci-libs/cholmod</pkg>)</flag>
                <flag name="fftw">Add test support for fftw 
(<pkg>sci-libs/fftw</pkg>)</flag>
                <flag name="klu">Add test support for KLU 
(<pkg>sci-libs/klu</pkg>)</flag>
+               <flag name="mathjax">Use MathJax for rendering math in HTML 
docs (dev-libs/mathjax)</flag>
                <flag name="opengl">Add test support for OpenGL</flag>
                <flag name="openmp">Add test support for the OpenMP (support 
parallel computing)</flag>
                <flag name="pastix">Add test support for PaStiX 
(<pkg>sci-libs/pastix</pkg>)</flag>

Reply via email to