summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStefan Monnier <monnier@iro.umontreal.ca>2022-08-20 12:18:07 -0400
committerStefan Monnier <monnier@iro.umontreal.ca>2022-08-20 12:18:07 -0400
commiteb793e18ad9c9c41aa01b94592cbd51da08a3ada (patch)
treef8e8ef74be8f6be1b4eee0302e5af02d728078fe
parentc4b6bbf63829c4d0c440c3aa420cbb3003d1f958 (diff)
Consolidate small template/targets/FOO.el files into a bigger one
Same as was just done for targets/FOO.el. Leave `utils.el` alone for now, because it's also used by `target/poly-targets.el`. * targets/poly-targets.el: New file, with functions `pm--target-<FOO>` taken from file `targets/<FOO>.el`. (pm--target-checkdoc, pm--target-lint): Use `dlet` to account for the use of lexical binding in this new file. (pm--target-test): Prefer let bindings over assignments. * Makefile (EMACSTARGET): New cmd which loads `poly-target.el` (build, build-local, checkdoc, lint, melpa, start, startvs, test, test-local): Use it and adjust command to call a function instead of loading a file. * targets/checkdoc.el, targets/lint.el, targets/local.el: * targets/melpa-init.el, targets/melpa.el: Delete files. Move contents to corresponding function in `targets/poly-targets.el`.
-rw-r--r--template/Makefile24
-rw-r--r--template/targets/checkdoc.el9
-rw-r--r--template/targets/lint.el15
-rw-r--r--template/targets/local.el2
-rw-r--r--template/targets/melpa-init.el8
-rw-r--r--template/targets/melpa.el3
-rw-r--r--template/targets/poly-targets.el87
-rw-r--r--template/targets/test.el13
8 files changed, 98 insertions, 63 deletions
diff --git a/template/Makefile b/template/Makefile
index 4847be1..df8d554 100644
--- a/template/Makefile
+++ b/template/Makefile
@@ -4,6 +4,7 @@ EMACS_VERSION = $(shell ${EMACS} -Q --batch --eval "(princ emacs-version)")
ELPA_DIR := .ELPA/$(EMACS_VERSION)
EMACSRUN = $(EMACS) -Q -L . -L modes -L tests -L $(ELPA_DIR)
EMACSBATCH = $(EMACSRUN) --batch
+EMACSTARGET = $(EMACSBATCH) -l targets/poly-targets.el
ELS = $(wildcard *.el)
OBJECTS = $(ELS:.el=.elc)
@@ -17,18 +18,18 @@ all: build checkdoc test
build: version clean
@echo "******************* BUILDING $(MODULE) *************************"
- $(EMACSBATCH) --load targets/melpa-init.el --funcall batch-byte-compile *.el
+ $(EMACSTARGET) -f pm--target-melpa-init -f batch-byte-compile *.el
build-local: version clean
@echo "******************* BUILDING $(MODULE) *************************"
- $(EMACSBATCH) --load targets/local.el --funcall batch-byte-compile *.el
+ $(EMACSTARGET) -f pm--target-local --funcall batch-byte-compile *.el
checkdoc: version
@echo "******************* CHECKDOC $(MODULE) *************************"
- $(EMACSBATCH) --load targets/checkdoc.el
+ $(EMACSTARGET) -f pm--target-checkdoc
lint: version
- @$(EMACSBATCH) --load targets/melpa-init.el --load targets/lint.el $(LINTELS)
+ @$(EMACSTARGET) -f pm--target-melpa-init -f pm--target-lint $(LINTELS)
clean:
rm -f $(OBJECTS)
@@ -37,27 +38,24 @@ cleanall: clean
rm -rf $(ELPA_DIR) *autoloads.el
melpa: version
- $(EMACSBATCH) --load targets/melpa.el
+ $(EMACSTARGET) -f pm--target-melpa
elpa: melpa
start: version melpa
- $(EMACSRUN) -L . \
- --load targets/melpa-init.el \
- --load tests/*.el
+ $(EMACSTARGET) -L . -f pm--target-melpa-init --load tests/*.el
startvs: version
- $(EMACSRUN) -L . \
- --load targets/local.el \
- --load tests/*.el --load ~/.eBasic.el
+ $(EMACSTARGET) -L . -f pm--target-local \
+ --load tests/*.el --load ~/.eBasic.el
test: build version
@echo "******************* Testing $(MODULE) ***************************"
- $(EMACSBATCH) --load targets/melpa-init.el --load targets/test.el
+ $(EMACSTARGET) -f pm--target-melpa-init -f pm--target-test
test-local: version
@echo "******************* Testing $(MODULE) ***************************"
- $(EMACSBATCH) --load targets/local.el --load targets/test.el
+ $(EMACSTARGET) -f pm--target-local -f pm--target-test
version:
@echo "EMACS VERSION: $(EMACS_VERSION)"
diff --git a/template/targets/checkdoc.el b/template/targets/checkdoc.el
deleted file mode 100644
index a7446bb..0000000
--- a/template/targets/checkdoc.el
+++ /dev/null
@@ -1,9 +0,0 @@
-
-(let ((sentence-end-double-space)
- (checkdoc-arguments-in-order-flag)
- (checkdoc-verb-check-experimental-flag)
- (checkdoc-force-docstrings-flag))
- (let ((files (directory-files default-directory nil "^[^.].*el$")))
- (dolist (f files)
- (unless (member f '("__MODULE__-autoloads.el"))
- (checkdoc-file f)))))
diff --git a/template/targets/lint.el b/template/targets/lint.el
deleted file mode 100644
index b9f9dce..0000000
--- a/template/targets/lint.el
+++ /dev/null
@@ -1,15 +0,0 @@
-
-(require 'checkdoc)
-(require 'elisp-lint)
-
-(let ((sentence-end-double-space)
- (checkdoc-arguments-in-order-flag)
- (checkdoc-verb-check-experimental-flag)
- (checkdoc-force-docstrings-flag)
- (elisp-lint-indent-specs
- '((pm-test-run-on-file . 2)
- (pm-test-run-on-string . 1)
- (pm-test-poly-lock . 2)))
- (elisp-lint-ignored-validators '("package-format" "indent-character" "fill-column")))
-
- (elisp-lint-files-batch))
diff --git a/template/targets/local.el b/template/targets/local.el
deleted file mode 100644
index 58e67d8..0000000
--- a/template/targets/local.el
+++ /dev/null
@@ -1,2 +0,0 @@
-(load-file "targets/utils.el")
-(polymode-add-deps-to-load-path "__MODULE__.el")
diff --git a/template/targets/melpa-init.el b/template/targets/melpa-init.el
deleted file mode 100644
index 0400291..0000000
--- a/template/targets/melpa-init.el
+++ /dev/null
@@ -1,8 +0,0 @@
-
-(require 'package)
-
-(setq package-user-dir (expand-file-name (format ".ELPA/%s" emacs-version))
- package-archives '(("gnu" . "https://elpa.gnu.org/packages/")
- ("melpa" . "https://melpa.org/packages/")))
-
-(package-initialize)
diff --git a/template/targets/melpa.el b/template/targets/melpa.el
deleted file mode 100644
index 7c84a4d..0000000
--- a/template/targets/melpa.el
+++ /dev/null
@@ -1,3 +0,0 @@
-
-(load-file "targets/utils.el")
-(polymode-install-packages "__MODULE__.el")
diff --git a/template/targets/poly-targets.el b/template/targets/poly-targets.el
new file mode 100644
index 0000000..601739a
--- /dev/null
+++ b/template/targets/poly-targets.el
@@ -0,0 +1,87 @@
+;;; poly-targets.el --- Makefile targets for maintenance of Polymode module -*- lexical-binding: t; -*-
+
+;; Copyright (C) 2022 Free Software Foundation, Inc.
+
+;; Author: Vitalie Spinu
+;; Keywords:
+
+;; This program is free software; you can redistribute it and/or modify
+;; it under the terms of the GNU General Public License as published by
+;; the Free Software Foundation, either version 3 of the License, or
+;; (at your option) any later version.
+
+;; This program is distributed in the hope that it will be useful,
+;; but WITHOUT ANY WARRANTY; without even the implied warranty of
+;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+;; GNU General Public License for more details.
+
+;; You should have received a copy of the GNU General Public License
+;; along with this program. If not, see <https://www.gnu.org/licenses/>.
+
+;;; Commentary:
+
+;; FIXME: This file should be merged with polymode/targets/poly-targets.el
+
+;;; Code:
+
+(defun pm--target-checkdoc ()
+ (dlet ((sentence-end-double-space)
+ (checkdoc-arguments-in-order-flag)
+ (checkdoc-verb-check-experimental-flag)
+ (checkdoc-force-docstrings-flag))
+ (let ((files (directory-files default-directory nil "^[^.].*el\\'")))
+ (dolist (f files)
+ (unless (member f '("__MODULE__-autoloads.el"))
+ (checkdoc-file f))))))
+
+(defun pm--target-lint ()
+ (require 'checkdoc)
+ (require 'elisp-lint)
+
+ (dlet ((sentence-end-double-space)
+ (checkdoc-arguments-in-order-flag)
+ (checkdoc-verb-check-experimental-flag)
+ (checkdoc-force-docstrings-flag)
+ (elisp-lint-indent-specs
+ '((pm-test-run-on-file . 2)
+ (pm-test-run-on-string . 1)
+ (pm-test-poly-lock . 2)))
+ (elisp-lint-ignored-validators
+ '("package-format" "indent-character" "fill-column")))
+
+ (elisp-lint-files-batch)))
+
+(defun pm--target-local ()
+ (load-file "targets/utils.el")
+ (polymode-add-deps-to-load-path "__MODULE__.el"))
+
+(defun pm--target-melpa-init ()
+ (require 'package)
+
+ (setq package-user-dir (expand-file-name (format ".ELPA/%s" emacs-version))
+ package-archives '(("gnu" . "https://elpa.gnu.org/packages/")
+ ("melpa" . "https://melpa.org/packages/")))
+
+ (package-initialize))
+
+(defun pm--target-melpa ()
+ (load-file "targets/utils.el")
+ (polymode-install-packages "__MODULE__.el"))
+
+(defun pm--target-test ()
+ (let ((polymode-test-dir (expand-file-name "tests/")))
+ (add-to-list 'load-path polymode-test-dir)
+ (dolist (f (directory-files polymode-test-dir t ".*el$"))
+ (load f)))
+
+ (dlet ((pm-verbose (getenv "PM_VERBOSE"))
+ (ert-batch-backtrace-right-margin 2000)
+ (ert-batch-print-level nil)
+ (ert-batch-print-length nil)
+
+ (debug-on-error t))
+
+ (ert-run-tests-batch-and-exit t)))
+
+(provide 'poly-targets)
+;;; poly-targets.el ends here
diff --git a/template/targets/test.el b/template/targets/test.el
deleted file mode 100644
index c04c4ee..0000000
--- a/template/targets/test.el
+++ /dev/null
@@ -1,13 +0,0 @@
-
-(setq polymode-test-dir (expand-file-name "tests/"))
-(add-to-list 'load-path polymode-test-dir)
-(dolist (f (directory-files polymode-test-dir t ".*el$"))
- (load f))
-
-(setq pm-verbose (getenv "PM_VERBOSE")
- ert-batch-backtrace-right-margin 200
- ert-batch-print-level nil
- ert-batch-print-length nil)
-
-(toggle-debug-on-error)
-(ert-run-tests-batch-and-exit t)