GNU bug report logs - #59800
[PATCH 0/5] Add esmini

Previous Next

Package: guix-patches;

Reported by: Liliana Marie Prikler <liliana.prikler <at> gmail.com>

Date: Sat, 3 Dec 2022 09:53:03 UTC

Severity: normal

Tags: patch

Done: Liliana Marie Prikler <liliana.prikler <at> gmail.com>

Bug is archived. No further changes may be made.

Full log


Message #11 received at 59800 <at> debbugs.gnu.org (full text, mbox):

From: Liliana Marie Prikler <liliana.prikler <at> gmail.com>
To: 59800 <at> debbugs.gnu.org
Subject: [PATCH 2/5] gnu: openscenegraph: Add output for plugins.
Date: Sat, 3 Dec 2022 09:13:50 +0100
This makes it so that other packages can find plugins via pkg-config and
link to them in the usual manner.

* gnu/packages/graphics.scm (openscenegraph)[outputs]: Add “pluginlib”.
[properties]: Add output synopsis for “pluginlib”.
[arguments]<#:modules>: Use (ice-9 regex).
<#:phases>: Add ‘copy-plugins’.
---
 gnu/packages/graphics.scm | 39 +++++++++++++++++++++++++++++++++++++--
 1 file changed, 37 insertions(+), 2 deletions(-)

diff --git a/gnu/packages/graphics.scm b/gnu/packages/graphics.scm
index 4193c2949b..b892e44f72 100644
--- a/gnu/packages/graphics.scm
+++ b/gnu/packages/graphics.scm
@@ -1289,8 +1289,10 @@ (define-public openscenegraph
         (base32 "00i14h82qg3xzcyd8p02wrarnmby3aiwmz0z43l50byc9f8i05n1"))
        (file-name (git-file-name name version))))
     (properties
-     `((upstream-name . "OpenSceneGraph")))
+     `((upstream-name . "OpenSceneGraph")
+       (output-synopsis "pluginlib" "Plugins as shared libraries")))
     (build-system cmake-build-system)
+    (outputs (list "out" "pluginlib"))
     (arguments
      (list
       #:tests? #f                      ; no test target available
@@ -1300,7 +1302,40 @@ (define-public openscenegraph
       #:configure-flags
       #~(list (string-append "-DCMAKE_INSTALL_RPATH="
                              #$output "/lib:"
-                             #$output "/lib64"))))
+                             #$output "/lib64"))
+      #:modules `((guix build cmake-build-system)
+                  (guix build utils)
+                  (ice-9 regex))
+      #:phases
+      #~(modify-phases %standard-phases
+          (add-after 'install 'copy-plugins
+            (lambda* (#:key outputs #:allow-other-keys)
+              (let ((out (assoc-ref outputs "out"))
+                    (pluginlib (assoc-ref outputs "pluginlib")))
+                (mkdir-p (string-append pluginlib "/lib/pkgconfig"))
+                (with-directory-excursion (string-append out "/lib/osgPlugins-"
+                                                         #$version)
+                  (for-each
+                   (lambda (lib)
+                     (let ((blib (basename lib))
+                           (m (string-match "([^/]*)\\.so$" lib)))
+                       (symlink (canonicalize-path lib)
+                                (string-append pluginlib "/lib/lib" blib))
+                       (call-with-output-file (string-append
+                                               pluginlib
+                                               "/lib/pkgconfig/"
+                                               (match:substring m 1) ".pc")
+                         (lambda (port)
+                           (format port "libdir=~a/lib~%" pluginlib)
+                           (newline port)
+                           (format port "Name: ~a~%" (match:substring m 1))
+                           (format port "Version: ~a~%" #$version)
+                           (display "Description: A plugin for openscenegraph\n"
+                                    port)
+                           (display "Requires: openscenegraph\n" port)
+                           (format port "Libs: -L${libdir} -l~a~%"
+                                   (match:substring m 1))))))
+                   (find-files "." "\\.so")))))))))
     (native-inputs
      (list pkg-config unzip))
     (inputs
-- 
2.38.1





This bug report was last modified 2 years and 152 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.