guix_mirror_bot pushed a commit to branch add-muon
in repository guix.

commit 8b1c0b4774801d91dd0af93cee2239472bb6762f
Author: Maxim Cournoyer <[email protected]>
AuthorDate: Fri May 23 08:08:22 2025 +0900

    gnu: Add muon.
    
    * gnu/packages/build-tools.scm (muon): New variable.
    
    Change-Id: I482fdbf5196ec6b23232b85febfa34ffb43fe912
---
 gnu/packages/build-tools.scm | 51 +++++++++++++++++++++++++++++++++++++++++++-
 1 file changed, 50 insertions(+), 1 deletion(-)

diff --git a/gnu/packages/build-tools.scm b/gnu/packages/build-tools.scm
index 1335989bb2..6e4b06b0e0 100644
--- a/gnu/packages/build-tools.scm
+++ b/gnu/packages/build-tools.scm
@@ -13,7 +13,7 @@
 ;;; Copyright © 2020 Jakub Kądziołka <[email protected]>
 ;;; Copyright © 2020, 2023 Efraim Flashner <[email protected]>
 ;;; Copyright © 2021 qblade <[email protected]>
-;;; Copyright © 2021, 2023, 2024 Maxim Cournoyer <[email protected]>
+;;; Copyright © 2021, 2023, 2024, 2025 Maxim Cournoyer 
<[email protected]>
 ;;; Copyright © 2022, 2023 Juliana Sims <[email protected]>
 ;;; Copyright © 2024 Evgeny Pisemsky <[email protected]>
 ;;;
@@ -44,6 +44,7 @@
   #:use-module (guix build-system copy)
   #:use-module (guix build-system guile)
   #:use-module (guix modules)
+  #:use-module (guix search-paths)
   #:use-module (gnu packages)
   #:use-module (gnu packages adns)
   #:use-module (gnu packages autotools)
@@ -82,6 +83,7 @@
   #:use-module (gnu packages version-control)
   #:use-module (gnu packages xml)
   #:use-module (guix build-system gnu)
+  #:use-module (guix build-system meson)
   #:use-module (guix build-system pyproject)
   #:use-module (guix build-system python))
 
@@ -374,6 +376,53 @@ resembles Python.")
     (description "Meson-python is a PEP 517 build backend for Meson projects.")
     (license license:expat)))
 
+(define-public muon
+  (package
+    (name "muon")
+    (version "0.4.0")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/muon-build/muon";)
+                    (commit version)))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "137rrsp5r31pv5sdccfcnaic0sbd9j88qqy8d1mqvvrdmyl74dy5"))))
+    (build-system meson-build-system)
+    (arguments
+     (list #:meson (computed-file "null-package" #~(mkdir #$output))
+           #:ninja samu-as-ninja-wrapper
+           #:configure-flags #~(list "-Dsamurai=disabled")
+           #:tests? #f                  ;to avoid extra dependencies
+           #:phases
+           #~(modify-phases %standard-phases
+               (add-after 'unpack 'patch-/bin/sh
+                 (lambda* (#:key inputs #:allow-other-keys)
+                   (substitute* "tools/generate_test_check_script.py"
+                     (("#!/bin/sh")
+                      (string-append "#!" (search-input-file inputs
+                                                             "bin/sh"))))))
+               (add-after 'patch-source-shebangs 'build-muon-bootstrap
+                 (lambda _
+                   (setenv "CC" #$(cc-for-target))
+                   (setenv "CFLAGS" "-DBOOTSTRAP_NO_SAMU")
+                   (invoke "./bootstrap.sh" "build")))
+               (add-after 'build-muon-bootstrap 'setup-muon-bootstrap-as-meson
+                 (lambda _
+                   (mkdir "bin")
+                   (symlink "../build/muon-bootstrap" "bin/meson")
+                   (setenv  "PATH" (string-append (getcwd) "/bin:"
+                                                  (getenv "PATH"))))))))
+    (native-inputs (list samurai))
+    (inputs (list bash-minimal pkgconf))
+    (native-search-paths (list $PKG_CONFIG_PATH))
+    (home-page "https://muon.build/";)
+    (synopsis "Meson build system alternative implementation in C99")
+    (description "Muon is an implementation of the meson build system in c99
+with minimal dependencies.")
+    (license license:gpl3)))            ;for the combined work
+
 (define-public premake4
   (package
     (name "premake")

Reply via email to