[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[bug#57280] [PATCH 0/3] Add documentation-files argument to emacs build
From: |
Andrew Tropin |
Subject: |
[bug#57280] [PATCH 0/3] Add documentation-files argument to emacs build system. |
Date: |
Thu, 18 Aug 2022 21:35:02 +0300 |
This patch adds a handy way for generating info documentation for emacs
packages from texinfo or org files.
Andrew Tropin (3):
build-system: emacs: Add documentation-files argument.
gnu: emacs-orderless: Use documentation-files argument.
gnu: emacs-consult: Use documentation-files argument.
gnu/packages/emacs-xyz.scm | 11 +++--------
guix/build-system/emacs.scm | 11 +++++++++++
guix/build/emacs-build-system.scm | 17 +++++++++++++++++
3 files changed, 31 insertions(+), 8 deletions(-)
--
2.37.1
>From 74b671b94d16db2f21c1df02672fef0b5228a08a Mon Sep 17 00:00:00 2001
From: Andrew Tropin <andrew@trop.in>
Date: Thu, 18 Aug 2022 17:43:14 +0300
Subject: [PATCH 1/3] build-system: emacs: Add documentation-files argument.
Allows to build info files from texinfo or org.
* guix/build-system/emacs.scm (default-texinfo): New variable.
* guix/build-system/emacs.scm (lower): New arguments.
* guix/build/emacs-build-system.scm (generate-docs): New variable.
---
guix/build-system/emacs.scm | 11 +++++++++++
guix/build/emacs-build-system.scm | 17 +++++++++++++++++
2 files changed, 28 insertions(+)
diff --git a/guix/build-system/emacs.scm b/guix/build-system/emacs.scm
index 3df68789ff..632ba2ddb3 100644
--- a/guix/build-system/emacs.scm
+++ b/guix/build-system/emacs.scm
@@ -56,8 +56,16 @@ (define (default-emacs)
(let ((emacs-mod (resolve-interface '(gnu packages emacs))))
(module-ref emacs-mod 'emacs-minimal)))
+(define (default-texinfo)
+ "Return the default texinfo package."
+ ;; Lazily resolve the binding to avoid a circular dependency.
+ (let ((texinfo-mod (resolve-interface '(gnu packages texinfo))))
+ (module-ref texinfo-mod 'texinfo)))
+
(define* (lower name
#:key source inputs native-inputs outputs system target
+ documentation-files
+ (texinfo (default-texinfo))
(emacs (default-emacs))
#:allow-other-keys
#:rest arguments)
@@ -77,6 +85,7 @@ (define private-keywords
;; Keep the standard inputs of 'gnu-build-system'.
,@(standard-packages)))
(build-inputs `(("emacs" ,emacs)
+ ,@(if (null? documentation-files) '() `(("texinfo"
,texinfo)))
,@native-inputs))
(outputs outputs)
(build emacs-build)
@@ -87,6 +96,7 @@ (define* (emacs-build name inputs
(tests? #f)
(parallel-tests? #t)
(test-command ''("make" "check"))
+ (documentation-files ''())
(phases '%standard-phases)
(outputs '("out"))
(include (quote %default-include))
@@ -109,6 +119,7 @@ (define builder
#:test-command #$test-command
#:tests? #$tests?
#:parallel-tests? #$parallel-tests?
+ #:documentation-files #$documentation-files
#:phases #$phases
#:outputs #$(outputs->gexp outputs)
#:include #$include
diff --git a/guix/build/emacs-build-system.scm
b/guix/build/emacs-build-system.scm
index 6a6918bfdd..08c61ddfd8 100644
--- a/guix/build/emacs-build-system.scm
+++ b/guix/build/emacs-build-system.scm
@@ -274,6 +274,22 @@ (define (match-stripped-file action regex)
(install-file? file stat #:verbose? #t)))
#f))))
+(define* (generate-docs #:key outputs documentation-files #:allow-other-keys)
+ "Convert texinfo or org files specified in DOCUMENTATION-FILES argument to
+info files."
+ (map
+ (lambda (path)
+ (if (or (string-suffix? ".texi" path)
+ (string-suffix? ".texinfo" path)
+ (string-suffix? ".txi" path))
+ (invoke "makeinfo" path)
+ (emacs-batch-script ; else org file
+ `(progn
+ (require 'ox-texinfo)
+ (find-file ,path)
+ (org-texinfo-export-to-info)))))
+ documentation-files))
+
(define* (move-doc #:key outputs #:allow-other-keys)
"Move info files from the ELPA package directory to the info directory."
(let* ((out (assoc-ref outputs "out"))
@@ -343,6 +359,7 @@ (define %standard-phases
(modify-phases gnu:%standard-phases
(replace 'unpack unpack)
(add-after 'unpack 'expand-load-path expand-load-path)
+ (add-after 'expand-load-path 'generate-docs generate-docs)
(delete 'bootstrap)
(delete 'configure)
(delete 'build)
--
2.37.1
0002-gnu-emacs-orderless-Use-documentation-files-argument.patch
Description: Text Data
0003-gnu-emacs-consult-Use-documentation-files-argument.patch
Description: Text Data
signature.asc
Description: PGP signature
- [bug#57280] [PATCH 0/3] Add documentation-files argument to emacs build system.,
Andrew Tropin <=
- [bug#57280] [PATCH 0/3] Add documentation-files argument to emacs build system., Andrew Tropin, 2022/08/18
- [bug#57280] [PATCH 0/3] Add documentation-files argument to emacs build system., Liliana Marie Prikler, 2022/08/19
- [bug#57280] [PATCH 0/3] Add documentation-files argument to emacs build system., Andrew Tropin, 2022/08/19
- [bug#57280] [PATCH 0/3] Add documentation-files argument to emacs build system., Liliana Marie Prikler, 2022/08/19
- [bug#57280] [PATCH 0/3] Add documentation-files argument to emacs build system., Andrew Tropin, 2022/08/26
- [bug#57280] [PATCH 0/3] Add documentation-files argument to emacs build system., Liliana Marie Prikler, 2022/08/29
- [bug#57280] [PATCH 0/3] Add documentation-files argument to emacs build system., Andrew Tropin, 2022/08/30
- [bug#57280] [PATCH 0/3] Add documentation-files argument to emacs build system., Liliana Marie Prikler, 2022/08/30
- [bug#57280] [PATCH 0/3] Add documentation-files argument to emacs build system., Andrew Tropin, 2022/08/31