me
/
guix
Archived
1
0
Fork 0

build-system/qt: Fix wrapping with QTWEBENGINEPROCESS_PATH.

This is a follow up commit to 06eb21856f, which added QTWEBENGINEPROCESS_PATH
to the list of wrapped variables.  Unfortunately it wouldn't be set, as its
value is a plain file rather than a directory, and the code only checked for
directories.

* guix/build/qt-build-system.scm (variables-for-wrapping): Define a file type
entry for each variable definition, and use it to determine if we should look
for directories versus plain files.
master
Maxim Cournoyer 2021-04-10 00:49:04 -04:00
parent fba9e5fb54
commit fed28a9632
No known key found for this signature in database
GPG Key ID: 1260E46482E63562
1 changed files with 18 additions and 11 deletions

View File

@ -49,17 +49,23 @@
(define (variables-for-wrapping base-directories)
(define (collect-sub-dirs base-directories subdirectory
(define (collect-sub-dirs base-directories file-type subdirectory
selectors)
;; Append SUBDIRECTORY and each of BASE-DIRECTORIES, and return the subset
;; that exists and has at least one of the SELECTORS sub-directories,
;; unless SELECTORS is the empty list.
;; unless SELECTORS is the empty list. FILE-TYPE should by 'directory or
;; 'regular file. For the later, it allows searching for plain files
;; rather than directories.
(define exists? (match file-type
('directory directory-exists?)
('regular file-exists?)))
(filter-map (lambda (dir)
(let ((directory (string-append dir subdirectory)))
(and (directory-exists? directory)
(and (exists? directory)
(or (null? selectors)
(any (lambda (selector)
(directory-exists?
(exists?
(string-append directory selector)))
selectors))
directory)))
@ -67,8 +73,8 @@
(filter-map
(match-lambda
((variable directory selectors ...)
(match (collect-sub-dirs base-directories directory
((variable file-type directory selectors ...)
(match (collect-sub-dirs base-directories file-type directory
selectors)
(()
#f)
@ -77,7 +83,7 @@
;; These shall match the search-path-specification for Qt and KDE
;; libraries.
(list '("XDG_DATA_DIRS" "/share"
(list '("XDG_DATA_DIRS" directory "/share"
;; These are "selectors": consider /share if and only if at least
;; one of these sub-directories exist. This avoids adding
@ -85,10 +91,11 @@
;; /share sub-directory.
"/glib-2.0/schemas" "/sounds" "/themes"
"/cursors" "/wallpapers" "/icons" "/mime")
'("XDG_CONFIG_DIRS" "/etc/xdg")
'("QT_PLUGIN_PATH" "/lib/qt5/plugins")
'("QML2_IMPORT_PATH" "/lib/qt5/qml")
'("QTWEBENGINEPROCESS_PATH" "/lib/qt5/libexec/QtWebEngineProcess"))))
'("XDG_CONFIG_DIRS" directory "/etc/xdg")
'("QT_PLUGIN_PATH" directory "/lib/qt5/plugins")
'("QML2_IMPORT_PATH" directory "/lib/qt5/qml")
'("QTWEBENGINEPROCESS_PATH" regular
"/lib/qt5/libexec/QtWebEngineProcess"))))
(define* (wrap-all-programs #:key inputs outputs
(qt-wrap-excluded-outputs '())