[PATCH core-updates] guix: cmake-build-system: Add option '#:glib-or-gtk?'.

  • Done
  • quality assurance status badge
Details
2 participants
  • Timo Eisenmann
  • zimoun
Owner
unassigned
Submitted by
Timo Eisenmann
Severity
normal
T
T
Timo Eisenmann wrote on 30 Mar 2019 23:26
(address . guix-patches@gnu.org)(name . Timo Eisenmann)(address . eisenmann@fn.de)
20190330222627.10650-1-eisenmann@fn.de
* guix/build-system/cmake.scm (%cmake-build-system-modules): Use
%gnu-build-system-modules instead of %glib-or-gtk-build-system-modules.
(lower): Add key 'glib-or-gtk?', defaulting to #f.
(cmake-build): Same.
[builder]: If 'glib-or-gtk?' is #f, remove phases 'glib-or-gtk-compile-schemas'
and 'glib-or-gtk-wrap'.
* guix/build/cmake-build-system.scm (%standard-phases): Use %standard-phases
from 'glib-or-gtk-build-system' instead of 'gnu-build-system'.
* doc/guix.texi (Build Systems): Document it.
---
doc/guix.texi | 5 +++++
guix/build-system/cmake.scm | 16 ++++++++++++----
guix/build/cmake-build-system.scm | 7 +++++--
3 files changed, 22 insertions(+), 6 deletions(-)

Toggle diff (118 lines)
diff --git a/doc/guix.texi b/doc/guix.texi
index 3afdccac75..3025c3c1e1 100644
--- a/doc/guix.texi
+++ b/doc/guix.texi
@@ -58,6 +58,7 @@ Copyright @copyright{} 2018 Gábor Boskovits@*
Copyright @copyright{} 2018 Florian Pelz@*
Copyright @copyright{} 2018 Laura Lazzati@*
Copyright @copyright{} 2018 Alex Vong@*
+Copyright @copyright{} 2019 Timo Eisenmann@*
Permission is granted to copy, distribute and/or modify this document
under the terms of the GNU Free Documentation License, Version 1.3 or
@@ -5795,6 +5796,10 @@ parameter specifies in abstract terms the flags passed to the compiler;
it defaults to @code{"RelWithDebInfo"} (short for ``release mode with
debugging information''), which roughly means that code is compiled with
@code{-O2 -g}, as is the case for Autoconf-based packages by default.
+
+The @code{#:glib-or-gtk?} parameter, when set to @code{#t}, adds the phases
+@code{glib-or-gtk-wrap} and @code{glib-or-gtk-compile-schemas} for packages
+making use of GLib or GTK+. It defaults to @code{#f}.
@end defvr
@defvr {Scheme Variable} dune-build-system
diff --git a/guix/build-system/cmake.scm b/guix/build-system/cmake.scm
index ca88fadddf..f9aee3a46e 100644
--- a/guix/build-system/cmake.scm
+++ b/guix/build-system/cmake.scm
@@ -25,6 +25,7 @@
#:use-module (guix search-paths)
#:use-module (guix build-system)
#:use-module (guix build-system gnu)
+ #:use-module (guix build-system glib-or-gtk)
#:use-module (guix packages)
#:use-module (ice-9 match)
#:export (%cmake-build-system-modules
@@ -34,14 +35,15 @@
;; Commentary:
;;
;; Standard build procedure for packages using CMake. This is implemented as an
-;; extension of `gnu-build-system'.
+;; extension of `gnu-build-system', with the option to turn on the glib/gtk
+;; phases from `glib-or-gtk-build-system'.
;;
;; Code:
(define %cmake-build-system-modules
;; Build-side modules imported by default.
`((guix build cmake-build-system)
- ,@%gnu-build-system-modules))
+ ,@%glib-or-gtk-build-system-modules))
(define (default-cmake)
"Return the default CMake package."
@@ -53,6 +55,7 @@
(define* (lower name
#:key source inputs native-inputs outputs system target
(cmake (default-cmake))
+ (glib-or-gtk? #f)
#:allow-other-keys
#:rest arguments)
"Return a bag for NAME."
@@ -99,6 +102,7 @@
(build-type "RelWithDebInfo")
(tests? #t)
(test-target "test")
+ (glib-or-gtk? #f)
(parallel-build? #t) (parallel-tests? #f)
(validate-runpath? #t)
(patch-shebangs? #t)
@@ -115,7 +119,11 @@
"Build SOURCE using CMAKE, and with INPUTS. This assumes that SOURCE
provides a 'CMakeLists.txt' file as its build system."
(define builder
- `(begin
+ `(let ((build-phases (if ,glib-or-gtk?
+ ,phases
+ (modify-phases ,phases
+ (delete 'glib-or-gtk-compile-schemas)
+ (delete 'glib-or-gtk-wrap)))))
(use-modules ,@modules)
(cmake-build #:source ,(match (assoc-ref inputs "source")
(((? derivation? source))
@@ -129,7 +137,7 @@ provides a 'CMakeLists.txt' file as its build system."
#:inputs %build-inputs
#:search-paths ',(map search-path-specification->sexp
search-paths)
- #:phases ,phases
+ #:phases build-phases
#:configure-flags ,configure-flags
#:make-flags ,make-flags
#:out-of-source? ,out-of-source?
diff --git a/guix/build/cmake-build-system.scm b/guix/build/cmake-build-system.scm
index 9b1112f2d6..17b671fc70 100644
--- a/guix/build/cmake-build-system.scm
+++ b/guix/build/cmake-build-system.scm
@@ -21,6 +21,7 @@
(define-module (guix build cmake-build-system)
#:use-module ((guix build gnu-build-system) #:prefix gnu:)
+ #:use-module ((guix build glib-or-gtk-build-system) #:prefix glib-or-gtk:)
#:use-module (guix build utils)
#:use-module (ice-9 match)
#:export (%standard-phases
@@ -84,8 +85,10 @@
(define %standard-phases
;; Everything is as with the GNU Build System except for the `configure'
- ;; and 'check' phases.
- (modify-phases gnu:%standard-phases
+ ;; and 'check' phases. Also, there are some extra phases for packages
+ ;; making use of GLib or GTK+, which will be removed if the glib-or-gtk? key
+ ;; is #f (the default).
+ (modify-phases glib-or-gtk:%standard-phases
(delete 'bootstrap)
(replace 'check check)
(replace 'configure configure)))
--
2.21.0
Z
Z
zimoun wrote on 7 Apr 2022 14:38
(name . Timo Eisenmann)(address . eisenmann@fn.de)(address . 35054@debbugs.gnu.org)
86fsmp2hn5.fsf@gmail.com
Hi,

Thank you for your contribution [1]. It appears that it fell into the
crack. Sorry for that.



On Sat, 30 Mar 2019 at 23:26, Timo Eisenmann <eisenmann@fn.de> wrote:
Toggle quote (10 lines)
> * guix/build-system/cmake.scm (%cmake-build-system-modules): Use
> %gnu-build-system-modules instead of %glib-or-gtk-build-system-modules.
> (lower): Add key 'glib-or-gtk?', defaulting to #f.
> (cmake-build): Same.
> [builder]: If 'glib-or-gtk?' is #f, remove phases 'glib-or-gtk-compile-schemas'
> and 'glib-or-gtk-wrap'.
> * guix/build/cmake-build-system.scm (%standard-phases): Use %standard-phases
> from 'glib-or-gtk-build-system' instead of 'gnu-build-system'.
> * doc/guix.texi (Build Systems): Document it.

What is the rationale for this change?


Cheers,
simon
T
T
Timo Eisenmann wrote on 9 Apr 2022 06:44
(name . zimoun)(address . zimon.toutoune@gmail.com)(address . 35054@debbugs.gnu.org)
20220409044431.9nuT5%eisenmann@fn.de
Hello,

Toggle quote (2 lines)
> Thank you for your contribution [1]. It appears that it fell into the
> crack. Sorry for that.
No problem.

Toggle quote (1 lines)
> What is the rationale for this change?
I don't remember. Seems like I just sent it without any explanation.
Sorry about that.

Please feel free to close this.

Regards,
Timo Eisenmann
Z
Z
zimoun wrote on 12 Apr 2022 19:17
(name . Timo Eisenmann)(address . eisenmann@fn.de)(address . 35054-done@debbugs.gnu.org)
86pmlm1arf.fsf@gmail.com
Hi,

On Sat, 09 Apr 2022 at 06:44, Timo Eisenmann <eisenmann@fn.de> wrote:

Toggle quote (2 lines)
> Please feel free to close this.

Thanks. Done.


Cheers,
simon
Closed
?
Your comment

This issue is archived.

To comment on this conversation send an email to 35054@debbugs.gnu.org

To respond to this issue using the mumi CLI, first switch to it
mumi current 35054
Then, you may apply the latest patchset in this issue (with sign off)
mumi am -- -s
Or, compose a reply to this issue
mumi compose
Or, send patches to this issue
mumi send-email *.patch