From f607be020b5d5ebbca5a5b8a2cea2e234cace966 Mon Sep 17 00:00:00 2001 From: Clément Pit--Claudel Date: Sat, 25 Feb 2017 14:10:53 -0500 Subject: elpa: Add a package file and a package.el-friendly init script --- pg-init.el | 56 ++++++++++++++++++++++++++++++++++++++++++++++++++++ proof-general-pkg.el | 2 ++ 2 files changed, 58 insertions(+) create mode 100644 pg-init.el create mode 100644 proof-general-pkg.el diff --git a/pg-init.el b/pg-init.el new file mode 100644 index 00000000..8f2fab4c --- /dev/null +++ b/pg-init.el @@ -0,0 +1,56 @@ +;;; pg-init.el --- Init file used for compatibility with package.el and ELPA -*- lexical-binding: t; -*- + +;; Copyright (C) 2017 Clément Pit-Claudel + +;; Author: Clément Pit-Claudel + +;; 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 . + +;;; Commentary: + +;; Proof General's initialization code (in generic/proof-site) is relatively +;; complex, in part because it was written before package.el existed, and in +;; part because package.el still doesn't look for autoloads in subdirectories. +;; This file is a thin, package.el-friendly wrapper around generic/proof-site, +;; suitable for execution on Emacs start-up. It serves two purposes: +;; +;; * Setting up the load path when byte-compiling PG. +;; * Loading a minimal PG setup on startup (not all of Proof General, of course; +;; mostly mode hooks and autoloads). + +;;; Code: + +;;;###autoload +(eval-and-compile + (defvar pg-init--script-full-path + (or (and load-in-progress load-file-name) + (bound-and-true-p byte-compile-current-file) + (buffer-file-name))) + (defvar pg-init--pg-root + (file-name-directory pg-init--script-full-path))) + +;;;###autoload +(unless (bound-and-true-p byte-compile-current-file) + ;; This require breaks compilation, so it must only run when loading the package. + (require 'proof-site (expand-file-name "generic/proof-site" pg-init--pg-root))) + +(eval-when-compile + (let ((byte-compile-directories + '("contrib/mmm" "generic" "lib" + "coq" "easycrypt" "pghaskell" "pgocaml" "pgshell"))) + (dolist (dir byte-compile-directories) + (add-to-list 'load-path (expand-file-name dir pg-init--pg-root))))) + +(provide 'pg-init) +;;; pg-init.el ends here diff --git a/proof-general-pkg.el b/proof-general-pkg.el new file mode 100644 index 00000000..489731e9 --- /dev/null +++ b/proof-general-pkg.el @@ -0,0 +1,2 @@ +(define-package "proof-general" "4.4.1~pre" "A generic front-end for proof assistants (interactive theorem provers)" + '((emacs "24.4"))) -- cgit v1.2.3