aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--guix/build/qt-build-system.scm29
1 files changed, 18 insertions, 11 deletions
diff --git a/guix/build/qt-build-system.scm b/guix/build/qt-build-system.scm
index bd8e694209..f59b0c420f 100644
--- a/guix/build/qt-build-system.scm
+++ b/guix/build/qt-build-system.scm
@@ -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 '())