From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([209.51.188.92]:41082) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1hALYF-00060x-Nl for guix-patches@gnu.org; Sat, 30 Mar 2019 17:30:09 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1hALYD-0002i4-NT for guix-patches@gnu.org; Sat, 30 Mar 2019 17:30:07 -0400 Received: from debbugs.gnu.org ([209.51.188.43]:52305) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1hALYA-0002h5-TN for guix-patches@gnu.org; Sat, 30 Mar 2019 17:30:03 -0400 Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1hALYA-0004Bv-LS for guix-patches@gnu.org; Sat, 30 Mar 2019 17:30:02 -0400 Subject: [bug#35054] [PATCH core-updates] guix: cmake-build-system: Add option '#:glib-or-gtk?'. Resent-Message-ID: Received: from eggs.gnu.org ([209.51.188.92]:40967) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1hALXL-0005uG-Ec for guix-patches@gnu.org; Sat, 30 Mar 2019 17:29:12 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1hALXK-0002OQ-6I for guix-patches@gnu.org; Sat, 30 Mar 2019 17:29:11 -0400 Received: from mout2.freenet.de ([195.4.92.92]:38158) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1hALXJ-0002N1-Tw for guix-patches@gnu.org; Sat, 30 Mar 2019 17:29:10 -0400 Received: from [195.4.92.165] (helo=mjail2.freenet.de) by mout2.freenet.de with esmtpa (ID eisenmann@fn.de) (port 25) (Exim 4.90_1 #2) id 1hALXF-0007CY-Pd for guix-patches@gnu.org; Sat, 30 Mar 2019 22:29:05 +0100 Received: from [::1] (port=49630 helo=mjail2.freenet.de) by mjail2.freenet.de with esmtpa (ID eisenmann@fn.de) (Exim 4.90_1 #2) id 1hALXF-00088W-Ms for guix-patches@gnu.org; Sat, 30 Mar 2019 22:29:05 +0100 Received: from sub3.freenet.de ([195.4.92.122]:46454) by mjail2.freenet.de with esmtpa (ID eisenmann@fn.de) (Exim 4.90_1 #2) id 1hALV8-0003y9-25 for guix-patches@gnu.org; Sat, 30 Mar 2019 22:26:54 +0100 From: Timo Eisenmann Date: Sat, 30 Mar 2019 23:26:27 +0100 Message-Id: <20190330222627.10650-1-eisenmann@fn.de> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-patches-bounces+kyle=kyleam.com@gnu.org Sender: "Guix-patches" To: 35054@debbugs.gnu.org Cc: Timo Eisenmann * 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(-) 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