commit:     88d595aade44b6b1dcc26ce0329bb9b4e6ddb0d3
Author:     Bernd Waibel <waebbl-gentoo <AT> posteo <DOT> net>
AuthorDate: Sun Nov 13 00:01:24 2022 +0000
Commit:     David Seifert <soap <AT> gentoo <DOT> org>
CommitDate: Sun Nov 13 00:01:24 2022 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=88d595aa

sci-libs/pcl: fix several issues

- enable cuda sandbox to avoid sandbox violation, #869674
- patch the code for several installation directories to conform to FHS. This
  is just a hack and should be done using GNUInstallDirs and provided upstream
  to solve it properly, #853886
- add a dependency on virtual/latex-base to avoid an additional QA issue
  on latex not found, because the doxyfile uses LaTeX by default. Also depend
  on doxygen[dot] to avoid a cmake warning about missing doxygen component
- change test related cmake option to new value to avoid undefined cmake
  variables, #738996
- depend on dev-python/sphinx_rtd_theme to properly build tutorial docs
  with USE=tutorials, #849002
- restrict test, because it needs the gtest sources to be provided, the
  package alone seems not be enough.
- fix hardcoded path for cmake files to be installed into /usr/share/cmake/

Closes: https://bugs.gentoo.org/869674
Closes: https://bugs.gentoo.org/853886
Closes: https://bugs.gentoo.org/738996
Closes: https://bugs.gentoo.org/849002

Signed-off-by: Bernd Waibel <waebbl-gentoo <AT> posteo.net>
Signed-off-by: David Seifert <soap <AT> gentoo.org>

 ....12.1-allow-configuration-of-install-dirs.patch | 32 +++++++++++++++++++
 ...ve-directory-of-the-installed-cmake-files.patch | 22 +++++++++++++
 .../{pcl-1.12.1-r1.ebuild => pcl-1.12.1-r2.ebuild} | 36 ++++++++++++++++++----
 3 files changed, 84 insertions(+), 6 deletions(-)

diff --git 
a/sci-libs/pcl/files/pcl-1.12.1-allow-configuration-of-install-dirs.patch 
b/sci-libs/pcl/files/pcl-1.12.1-allow-configuration-of-install-dirs.patch
new file mode 100644
index 000000000000..c9cb3e35f9d6
--- /dev/null
+++ b/sci-libs/pcl/files/pcl-1.12.1-allow-configuration-of-install-dirs.patch
@@ -0,0 +1,32 @@
+From c052f26112c17068ece2f52058e3130dd328269b Mon Sep 17 00:00:00 2001
+From: Bernd Waibel <[email protected]>
+Date: Thu, 27 Oct 2022 09:48:15 +0200
+Subject: [PATCH] allow configuration of install dirs
+
+Signed-off-by: Bernd Waibel <[email protected]>
+--- a/cmake/pcl_utils.cmake
++++ b/cmake/pcl_utils.cmake
+@@ -101,14 +101,18 @@ macro(SET_INSTALL_DIRS)
+       set(INCLUDE_INSTALL_ROOT "include") # Android, don't put into subdir
+     endif()
+     set(INCLUDE_INSTALL_DIR "${INCLUDE_INSTALL_ROOT}/pcl")
+-    set(DOC_INSTALL_DIR 
"share/doc/${PROJECT_NAME_LOWER}-${PCL_VERSION_MAJOR}.${PCL_VERSION_MINOR}")
++    if(NOT DEFINED DOC_INSTALL_DIR)
++      set(DOC_INSTALL_DIR 
"share/doc/${PROJECT_NAME_LOWER}-${PCL_VERSION_MAJOR}.${PCL_VERSION_MINOR}")
++    endif()
+     set(BIN_INSTALL_DIR "bin")
+     set(PKGCFG_INSTALL_DIR "${LIB_INSTALL_DIR}/pkgconfig")
+-    if(WIN32 AND NOT MINGW)
++    if(NOT DEFINED PCLCONFIG_INSTALL_DIR)
++      if(WIN32 AND NOT MINGW)
+         set(PCLCONFIG_INSTALL_DIR "cmake")
+       else()
+         set(PCLCONFIG_INSTALL_DIR 
"share/${PROJECT_NAME_LOWER}-${PCL_VERSION_MAJOR}.${PCL_VERSION_MINOR}")
+       endif()
++    endif()
+ endmacro()
+ 
+ 
+-- 
+2.38.1
+

diff --git 
a/sci-libs/pcl/files/pcl-1.12.1-fix-hardcoded-relative-directory-of-the-installed-cmake-files.patch
 
b/sci-libs/pcl/files/pcl-1.12.1-fix-hardcoded-relative-directory-of-the-installed-cmake-files.patch
new file mode 100644
index 000000000000..fe171c0b21df
--- /dev/null
+++ 
b/sci-libs/pcl/files/pcl-1.12.1-fix-hardcoded-relative-directory-of-the-installed-cmake-files.patch
@@ -0,0 +1,22 @@
+From efb56391957ee0f64a407fe419c25122404a53e2 Mon Sep 17 00:00:00 2001
+From: Bernd Waibel <[email protected]>
+Date: Thu, 27 Oct 2022 13:59:15 +0200
+Subject: [PATCH] fix hardcoded relative directory of the installed cmake files
+
+Signed-off-by: Bernd Waibel <[email protected]>
+--- a/PCLConfig.cmake.in
++++ b/PCLConfig.cmake.in
+@@ -389,8 +389,8 @@ if(WIN32 AND NOT MINGW)
+     set(PCL_ALL_IN_ONE_INSTALLER ON)
+   endif()
+ else()
+-# PCLConfig.cmake is installed to PCL_ROOT/share/pcl-x.y
+-  get_filename_component(PCL_ROOT "${CMAKE_CURRENT_LIST_DIR}/../.." ABSOLUTE)
++# PCLConfig.cmake is installed to PCL_ROOT/share/cmake/pcl-x.y
++  get_filename_component(PCL_ROOT "${CMAKE_CURRENT_LIST_DIR}/../../.." 
ABSOLUTE)
+ endif()
+ 
+ # check whether PCLConfig.cmake is found into a PCL installation or in a 
build tree
+-- 
+2.38.1
+

diff --git a/sci-libs/pcl/pcl-1.12.1-r1.ebuild 
b/sci-libs/pcl/pcl-1.12.1-r2.ebuild
similarity index 74%
rename from sci-libs/pcl/pcl-1.12.1-r1.ebuild
rename to sci-libs/pcl/pcl-1.12.1-r2.ebuild
index 1edbb0cd7140..a1c4d5880153 100644
--- a/sci-libs/pcl/pcl-1.12.1-r1.ebuild
+++ b/sci-libs/pcl/pcl-1.12.1-r2.ebuild
@@ -9,7 +9,7 @@ if [ "${PV#9999}" != "${PV}" ] ; then
        EGIT_REPO_URI="https://github.com/PointCloudLibrary/pcl";
 fi
 
-inherit ${SCM} cmake multilib
+inherit ${SCM} cmake cuda
 
 if [ "${PV#9999}" != "${PV}" ] ; then
        SRC_URI=""
@@ -24,7 +24,8 @@ DESCRIPTION="2D/3D image and point cloud processing"
 LICENSE="BSD"
 SLOT="0/1.12"
 IUSE="cuda doc opengl openni openni2 pcap png +qhull qt5 usb vtk 
cpu_flags_x86_sse test tutorials"
-RESTRICT="!test? ( test )"
+# tests need the gtest sources to be available at build time
+RESTRICT="test"
 
 RDEPEND="
        >=sci-libs/flann-1.7.1
@@ -48,11 +49,17 @@ RDEPEND="
 "
 DEPEND="${RDEPEND}
        !!dev-cpp/metslib
-       test? ( >=dev-cpp/gtest-1.6.0 )
 "
 BDEPEND="
-       doc? ( app-doc/doxygen )
-       tutorials? ( dev-python/sphinx dev-python/sphinxcontrib-doxylink )
+       doc? (
+               app-doc/doxygen[dot]
+               virtual/latex-base
+       )
+       tutorials? (
+               dev-python/sphinx
+               dev-python/sphinx_rtd_theme
+               dev-python/sphinxcontrib-doxylink
+       )
        virtual/pkgconfig"
 
 REQUIRED_USE="
@@ -61,9 +68,25 @@ REQUIRED_USE="
        tutorials? ( doc )
 "
 
+PATCHES=(
+       "${FILESDIR}"/${PN}-1.12.1-allow-configuration-of-install-dirs.patch
+       
"${FILESDIR}"/${PN}-1.12.1-fix-hardcoded-relative-directory-of-the-installed-cmake-files.patch
+)
+
+src_prepare() {
+       if use cuda; then
+               cuda_src_prepare
+               cuda_add_sandbox -w
+       fi
+
+       cmake_src_prepare
+}
+
 src_configure() {
        local mycmakeargs=(
+               "-DDOC_INSTALL_DIR=share/doc/${PF}"
                "-DLIB_INSTALL_DIR=$(get_libdir)"
+               "-DPCLCONFIG_INSTALL_DIR=share/cmake/${PN}-$(ver_cut 1-2)"
                "-DWITH_CUDA=$(usex cuda TRUE FALSE)"
                "-DWITH_LIBUSB=$(usex usb TRUE FALSE)"
                "-DWITH_OPENGL=$(usex opengl TRUE FALSE)"
@@ -77,7 +100,8 @@ src_configure() {
                "-DPCL_ENABLE_SSE=$(usex cpu_flags_x86_sse TRUE FALSE)"
                "-DWITH_DOCS=$(usex doc TRUE FALSE)"
                "-DWITH_TUTORIALS=$(usex tutorials TRUE FALSE)"
-               "-DBUILD_TESTS=$(usex test TRUE FALSE)"
+               "-DBUILD_global_tests=FALSE"
        )
+
        cmake_src_configure
 }

Reply via email to