Subject: [bug#75159] [PATCH v1 1/5] guix: qt: add inputs and outputs build variables in qt-build

From: Zheng Junjie <[email-masked]>
Date: Mon, 30 Dec 2024 15:03:47 +0800

Ashvith Shetty <[email-masked]> writes:

> From: Rutherther <[email-masked]>
>
> Qt build doesn't provide build-variables of inputs and outputs,
> so it's not possible to refer to %outputs in arguments of
> a package that uses qt-build-system. This patch unifies
> qt-build-system's behavior with other build systems like
> cmake-build-system or gnu-build-system.
>

This patch will cause all qt packages to be rebuilt, and the future
should be to remove cmake-build-system, gnu-build-system's %outputs, use
gexp. so this patch will not be merged.

> * guix/build-system/qt.scm (qt-build): Wrap with with-build-variables to
> provide variables to arguments
>
> Change-Id: I65853a5831ce7b5dc7ebe10807c6e61bb89cab36
> ---
>  guix/build-system/qt.scm | 54 +++++++++++++++++++++-------------------
>  1 file changed, 28 insertions(+), 26 deletions(-)
>
> diff --git a/guix/build-system/qt.scm b/guix/build-system/qt.scm
> index d1f721c54e..5f9a5019ae 100644
> --- a/guix/build-system/qt.scm
> +++ b/guix/build-system/qt.scm
> @@ -152,32 +152,34 @@ (define builder
>      (with-imported-modules imported-modules
>        #~(begin
>            (use-modules #$@(sexp->gexp modules))
> -          (qt-build #:source #+source
> -                    #:system #$system
> -                    #:outputs #$(outputs->gexp outputs)
> -                    #:inputs #$(input-tuples->gexp inputs)
> -                    #:search-paths '#$(sexp->gexp
> -                                       (map search-path-specification->sexp
> -                                            search-paths))
> -                    #:phases #$(if (pair? phases)
> -                                   (sexp->gexp phases)
> -                                   phases)
> -                    #:qtbase #+qtbase
> -                    #:qt-wrap-excluded-outputs #$qt-wrap-excluded-outputs
> -                    #:qt-wrap-excluded-inputs #$qt-wrap-excluded-inputs
> -                    #:configure-flags #$configure-flags
> -                    #:make-flags #$make-flags
> -                    #:out-of-source? #$out-of-source?
> -                    #:build-type #$build-type
> -                    #:tests? #$tests?
> -                    #:test-target #$test-target
> -                    #:parallel-build? #$parallel-build?
> -                    #:parallel-tests? #$parallel-tests?
> -                    #:validate-runpath? #$validate-runpath?
> -                    #:patch-shebangs? #$patch-shebangs?
> -                    #:strip-binaries? #$strip-binaries?
> -                    #:strip-flags #$strip-flags
> -                    #:strip-directories #$strip-directories))))
> +
> +          #$(with-build-variables inputs outputs
> +              #~(qt-build #:source #+source
> +                          #:system #$system
> +                          #:outputs %outputs
> +                          #:inputs %build-inputs
> +                          #:search-paths '#$(sexp->gexp
> +                                             (map search-path-specification->sexp
> +                                                  search-paths))
> +                          #:phases #$(if (pair? phases)
> +                                         (sexp->gexp phases)
> +                                         phases)
> +                          #:qtbase #+qtbase
> +                          #:qt-wrap-excluded-outputs #$qt-wrap-excluded-outputs
> +                          #:qt-wrap-excluded-inputs #$qt-wrap-excluded-inputs
> +                          #:configure-flags #$configure-flags
> +                          #:make-flags #$make-flags
> +                          #:out-of-source? #$out-of-source?
> +                          #:build-type #$build-type
> +                          #:tests? #$tests?
> +                          #:test-target #$test-target
> +                          #:parallel-build? #$parallel-build?
> +                          #:parallel-tests? #$parallel-tests?
> +                          #:validate-runpath? #$validate-runpath?
> +                          #:patch-shebangs? #$patch-shebangs?
> +                          #:strip-binaries? #$strip-binaries?
> +                          #:strip-flags #$strip-flags
> +                          #:strip-directories #$strip-directories)))))
>  
>    (mlet %store-monad ((guile (package->derivation (or guile (default-guile))
>                                                    system #:graft? #f)))