[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
12/12: build: qt-utils: Wrappers set 'QTWEBENGINEPROCESS_PATH' if needed
From: |
guix-commits |
Subject: |
12/12: build: qt-utils: Wrappers set 'QTWEBENGINEPROCESS_PATH' if needed. |
Date: |
Fri, 2 Jul 2021 16:52:53 -0400 (EDT) |
apteryx pushed a commit to branch master
in repository guix.
commit d5c9cc6d9d979bfca5f035429bcf510a0a2285a3
Author: Maxim Cournoyer <maxim.cournoyer@gmail.com>
AuthorDate: Fri Jul 2 14:05:38 2021 -0400
build: qt-utils: Wrappers set 'QTWEBENGINEPROCESS_PATH' if needed.
This reinstate commit the reverted fed28a9632ba69225151757e44a5d70e9b0652a2,
now rebased on top of conflicting changes.
* guix/build/qt-utils.scm: Remove extraneous newlines.
(variables-for-wrapping): Add comments. Define a file type entry for each
variable definition, and use it to determine if we should look for
directories
versus plain files.
<QTWEBENGINEPROCESS_PATH>: New environment variable.
(wrap-all-qt-programs): Remove trailing #t.
---
guix/build/qt-utils.scm | 54 +++++++++++++++++++++++++++++++------------------
1 file changed, 34 insertions(+), 20 deletions(-)
diff --git a/guix/build/qt-utils.scm b/guix/build/qt-utils.scm
index 9f09623..c2b80ca 100644
--- a/guix/build/qt-utils.scm
+++ b/guix/build/qt-utils.scm
@@ -3,6 +3,7 @@
;;; Copyright © 2019, 2020, 2021 Hartmut Goebel <h.goebel@crazy-compilers.com>
;;; Copyright © 2020 Jakub Kądziołka <kuba@kadziolka.net>
;;; Copyright © 2021 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2021 Maxim Cournoyer <maxim.cournoyer@gmail.com>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -37,16 +38,22 @@
;; contain any of the standard subdirectories.
(define (variables-for-wrapping base-directories output-directory)
- (define (collect-sub-dirs base-directories subdirectory selectors)
+ (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)))
@@ -54,24 +61,34 @@
(filter-map
(match-lambda
- ((variable type directory selectors ...)
- (match (collect-sub-dirs base-directories directory selectors)
+ ((variable type file-type directory selectors ...)
+ (match (collect-sub-dirs base-directories file-type directory selectors)
(()
#f)
(directories
`(,variable ,type ,directories)))))
;; These shall match the search-path-specification for Qt and KDE
;; libraries.
- (list '("XDG_DATA_DIRS" suffix "/share"
- ;; These are "selectors": consider /share if and only if at least
- ;; one of these sub-directories exist. This avoids adding
- ;; irrelevant packages to XDG_DATA_DIRS just because they have a
- ;; /share sub-directory.
- "/applications" "/cursors" "/fonts" "/icons" "/glib-2.0/schemas"
- "/mime" "/sounds" "/themes" "/wallpapers")
- '("XDG_CONFIG_DIRS" suffix "/etc/xdg")
- '("QT_PLUGIN_PATH" prefix "/lib/qt5/plugins")
- '("QML2_IMPORT_PATH" prefix "/lib/qt5/qml"))))
+ (list
+ ;; The XDG environment variables are defined with the 'suffix type, which
+ ;; allows the users to override or extend their value, so that custom icon
+ ;; themes can be honored, for example.
+ '("XDG_DATA_DIRS" suffix directory "/share"
+ ;; These are "selectors": consider /share if and only if at least
+ ;; one of these sub-directories exist. This avoids adding
+ ;; irrelevant packages to XDG_DATA_DIRS just because they have a
+ ;; /share sub-directory.
+ "/applications" "/cursors" "/fonts" "/icons" "/glib-2.0/schemas"
+ "/mime" "/sounds" "/themes" "/wallpapers")
+ '("XDG_CONFIG_DIRS" suffix directory "/etc/xdg")
+ ;; The following variables can be extended by the user, but not
+ ;; overridden, to ensure proper operation.
+ '("QT_PLUGIN_PATH" prefix directory "/lib/qt5/plugins")
+ '("QML2_IMPORT_PATH" prefix directory "/lib/qt5/qml")
+ ;; QTWEBENGINEPROCESS_PATH accepts a single value, which makes 'exact the
+ ;; most suitable environment variable type for it.
+ '("QTWEBENGINEPROCESS_PATH" = regular
+ "/lib/qt5/libexec/QtWebEngineProcess"))))
(define* (wrap-qt-program* program #:key inputs output-dir
qt-wrap-excluded-inputs)
@@ -90,7 +107,6 @@
(when (not (null? vars-to-wrap))
(apply wrap-program program vars-to-wrap))))
-
(define* (wrap-qt-program program-name #:key inputs output
(qt-wrap-excluded-inputs %qt-wrap-excluded-inputs))
"Wrap the specified programm (which must reside in the OUTPUT's \"/bin\"
@@ -102,7 +118,6 @@ is wrapped."
#:output-dir output #:inputs inputs
#:qt-wrap-excluded-inputs qt-wrap-excluded-inputs))
-
(define* (wrap-all-qt-programs #:key inputs outputs
(qt-wrap-excluded-outputs '())
(qt-wrap-excluded-inputs
%qt-wrap-excluded-inputs)
@@ -133,5 +148,4 @@ add a dependency of that output on Qt."
#:qt-wrap-excluded-inputs qt-wrap-excluded-inputs)
(find-files-to-wrap output-dir))))))
- (for-each handle-output outputs)
- #t)
+ (for-each handle-output outputs))
- 05/12: Revert "build-system/qt: Wrappers set 'QTWEBENGINEPROCESS_PATH' if needed.", (continued)
- 05/12: Revert "build-system/qt: Wrappers set 'QTWEBENGINEPROCESS_PATH' if needed.", guix-commits, 2021/07/02
- 02/12: gnu: qtbase: Specify configure flags via the #:configure-flags argument., guix-commits, 2021/07/02
- 03/12: gnu: protobuf: Update to 3.17.3., guix-commits, 2021/07/02
- 04/12: Revert "build-system/qt: Fix wrapping with QTWEBENGINEPROCESS_PATH.", guix-commits, 2021/07/02
- 07/12: guix: qt-build-system, qt-utils: Unify wrapping of qt-programs., guix-commits, 2021/07/02
- 06/12: Revert "build-system/qt: Wrappers only include relevant directories to XDG_DATA_DIRS.", guix-commits, 2021/07/02
- 11/12: build: qt-utils: Refactor the code to filter XDG_DATA_DIRS., guix-commits, 2021/07/02
- 10/12: guix: qt-utils: Don't include useless inputs in wrapped variables., guix-commits, 2021/07/02
- 08/12: guix: qt-utils: Wrapped executables honor user's envvars., guix-commits, 2021/07/02
- 09/12: build-system: qt: Exclude useless inputs from wrapped variables., guix-commits, 2021/07/02
- 12/12: build: qt-utils: Wrappers set 'QTWEBENGINEPROCESS_PATH' if needed.,
guix-commits <=