Subject: [PATCH 05/22] gnu: qmk: Add many missing inputs and add more commands to PATH.

From: Maxim Cournoyer <[email-masked]>
Date: Tue, 26 Sep 2023 15:04:28 -0400

* gnu/packages/firmware.scm (qmk) [inputs]: Add bash-minimal, dfu-util,
diffutils, gawk, gnu-make, grep and python.
[arguments]: Add them to PATH in the wrapper in the wrap-path phase.  Also
capture avr-ar in the PATH.  Add CROSS_C_INCLUDE_PATH and
CROSS_LIBRARY_PATH to the wrapper.
---

 gnu/packages/firmware.scm | 24 ++++++++++++++++++++++--
 1 file changed, 22 insertions(+), 2 deletions(-)

diff --git a/gnu/packages/firmware.scm b/gnu/packages/firmware.scm
index c1f6c8ea5e2..1957fb8aac4 100644
--- a/gnu/packages/firmware.scm
+++ b/gnu/packages/firmware.scm
@@ -57,6 +57,7 @@ (define-module (gnu packages firmware)
   #:use-module (gnu packages elf)
   #:use-module (gnu packages flashing-tools)
   #:use-module (gnu packages flex)
+  #:use-module (gnu packages gawk)
   #:use-module (gnu packages gcc)
   #:use-module (gnu packages gettext)
   #:use-module (gnu packages glib)
@@ -1241,19 +1242,31 @@ (define-public qmk
       #:phases
       #~(modify-phases %standard-phases
           (add-after 'wrap 'wrap-path
+            ;; Wrap all the tools needed for the 'setup' and 'compile' actions
+            ;; (tested with the 'ergodox_ez' keyboard).
             (lambda* (#:key inputs outputs #:allow-other-keys)
               (wrap-program (search-input-file outputs "bin/qmk")
                 `("PATH" prefix
                   ,(map (compose dirname
                                  (cut search-input-file inputs <>))
-                        '("bin/avr-gcc"
+                        '("bin/avr-ar"
+                          "bin/avr-gcc"
                           "bin/avrdude"
+                          "bin/awk"
+                          "bin/cmp"
                           "bin/dfu-programmer"
+                          "bin/dfu-util"
                           "bin/git"
+                          "bin/grep"
+                          "bin/make"
+                          "bin/python3"
+                          "bin/sh"
                           ;; TODO: Remove after git is wrapped with these.
                           "bin/basename"
                           "bin/sed"
-                          "bin/uname")))))))))
+                          "bin/uname")))
+                `("CROSS_C_INCLUDE_PATH" = (,(getenv "CROSS_C_INCLUDE_PATH")))
+                `("CROSS_LIBRARY_PATH" = (,(getenv "CROSS_LIBRARY_PATH")))))))))
     ;; The inputs are not propagated since qmk is to be used strictly as a
     ;; command.
     (inputs
@@ -1261,8 +1274,15 @@ (define-public qmk
      ;; compilation errors in some firmware otherwise.
      (list (make-avr-toolchain #:xgcc gcc-8)
            avrdude
+           bash-minimal
            dfu-programmer
+           dfu-util
+           diffutils
            git-minimal                  ;for the clone action
+           gawk
+           gnu-make
+           grep
+           python
            python-dotty-dict
            python-hid
            python-hjson
-- 
2.41.0