gnu: openscenegraph: Add output for plugins.
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’. Signed-off-by: Liliana Marie Prikler <liliana.prikler@gmail.com>
This commit is contained in:
parent
629a5936a6
commit
98b9f3a4bd
|
@ -1351,8 +1351,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
|
||||
|
@ -1362,7 +1364,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
|
||||
|
|
Loading…
Reference in a new issue