gnu: qt-creator: Patch file names of demangling libraries.

* gnu/packages/qt.scm (qt-creator)
[phases] {patch-perfparser}: New phase.

Change-Id: I65f84158af05ae866680b21e2e9b8e24a2b71bc2
This commit is contained in:
Maxim Cournoyer 2024-04-02 13:53:28 -04:00
parent 4a8f265b17
commit f83bdd7e00
No known key found for this signature in database
GPG key ID: 1260E46482E63562

View file

@ -5164,6 +5164,32 @@ (define-public qt-creator
#$output "/lib/qtcreator"))
#:phases
#~(modify-phases %standard-phases
(add-after 'unpack 'patch-perfparser
;; XXX: The 'patch-perfparser' phase is also used by the 'hotspot'
;; package; keep its copy in sync.
(lambda* (#:key inputs #:allow-other-keys)
;; perfparser attempts to dynamically load the demangle
;; libraries; use their absolute file name to avoid having to
;; set LD_LIBRARY_PATH.
(let ((librustc_demangle.so
(with-exception-handler (lambda (ex)
(if (search-error? ex)
#f
(raise-exception ex)))
(lambda ()
(search-input-file inputs "lib/librustc_demangle.so"))
#:unwind? #t)))
(substitute* "3rdparty/perfparser/app/demangler.cpp"
(("loadDemangleLib\\(QStringLiteral\\(\"rustc_demangle\")"
all)
(if librustc_demangle.so
(format #f "loadDemangleLib(QStringLiteral(~s)"
librustc_demangle.so)
all)) ;no rustc_demangle; leave unchanged
(("loadDemangleLib\\(QStringLiteral\\(\"d_demangle\")")
(format #f "loadDemangleLib(QStringLiteral(~s)"
(search-input-file inputs
"lib/libd_demangle.so")))))))
(add-after 'unpack 'patch-paths
(lambda* (#:key inputs #:allow-other-keys)
(substitute* '("src/libs/utils/commandline.cpp"