diff options
| author | Stefan Monnier <monnier@iro.umontreal.ca> | 2022-08-20 12:18:07 -0400 |
|---|---|---|
| committer | Stefan Monnier <monnier@iro.umontreal.ca> | 2022-08-20 12:18:07 -0400 |
| commit | eb793e18ad9c9c41aa01b94592cbd51da08a3ada (patch) | |
| tree | f8e8ef74be8f6be1b4eee0302e5af02d728078fe | |
| parent | c4b6bbf63829c4d0c440c3aa420cbb3003d1f958 (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/Makefile | 24 | ||||
| -rw-r--r-- | template/targets/checkdoc.el | 9 | ||||
| -rw-r--r-- | template/targets/lint.el | 15 | ||||
| -rw-r--r-- | template/targets/local.el | 2 | ||||
| -rw-r--r-- | template/targets/melpa-init.el | 8 | ||||
| -rw-r--r-- | template/targets/melpa.el | 3 | ||||
| -rw-r--r-- | template/targets/poly-targets.el | 87 | ||||
| -rw-r--r-- | template/targets/test.el | 13 |
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) |
