branch: externals-release/gnat-compiler commit 49774d33dc26ee75944a7380180cd748881e3a3f Author: Stephen Leake <stephen_le...@stephe-leake.org> Commit: Stephen Leake <stephen_le...@stephe-leake.org>
* gnat-alire.el (create-alire-prj): Better error message on missing alire.toml * NEWS: Version 1.0.2. * gnat-compiler.el: --- NEWS | 5 +++++ gnat-alire.el | 53 ++++++++++++++++++++++++++++------------------------- gnat-compiler.el | 2 +- 3 files changed, 34 insertions(+), 26 deletions(-) diff --git a/NEWS b/NEWS index 87fbbcd962..46d88237f6 100644 --- a/NEWS +++ b/NEWS @@ -6,6 +6,11 @@ Please send gnat-compiler bug reports to bug-gnu-em...@gnu.org, with 'gnat-compiler' in the subject. If possible, use M-x report-emacs-bug. +* gnat compiler 1.0.2 +24 Jan 2023 + +** Improve error message in create-alire-prj. + * gnat compiler 1.0.1 ** Rename create-alire-project to create-alire-prj. diff --git a/gnat-alire.el b/gnat-alire.el index fac90efe71..6be083e2c5 100644 --- a/gnat-alire.el +++ b/gnat-alire.el @@ -98,31 +98,34 @@ ;; it is only used for casing. We get GPR_PROJECT_PATH from the ;; Alire environment. "Return an initial wisi project for the current Alire workspace." - (let* ((default-directory (locate-dominating-file default-directory "alire.toml")) - (abs-gpr-file (expand-file-name gpr-file)) - (project (make-alire-prj :name name - :compile-env compile-env - :file-env file-env - :xref-label xref-label))) - - (alire-get-env project) - - ;; We need a gnat-compiler to set compilation-search-path; this - ;; must run after alire-get-env because it uses GPR_PROJECT_PATH. - (setf (wisi-prj-compiler project) - (create-gnat-compiler - :gpr-file abs-gpr-file - :run-buffer-name (gnat-run-buffer-name abs-gpr-file))) - - (when (null xref-label) - (user-error "create-alire-prj: no xref backend specified; add :xref-label")) - (setf (wisi-prj-xref project) - (funcall (intern (format "create-%s-xref" (symbol-name xref-label))))) - - (wisi-compiler-parse-one (wisi-prj-compiler project) project "gpr_file" abs-gpr-file) - (wisi-xref-parse-one (wisi-prj-xref project) project "gpr_file" abs-gpr-file) - - project)) + (let ((temp (locate-dominating-file default-directory "alire.toml"))) + (when (null temp) + (user-error "no alire.toml found in or above %s" default-directory)) + (let* ((default-directory temp) + (abs-gpr-file (expand-file-name gpr-file)) + (project (make-alire-prj :name name + :compile-env compile-env + :file-env file-env + :xref-label xref-label))) + + (alire-get-env project) + + ;; We need a gnat-compiler to set compilation-search-path; this + ;; must run after alire-get-env because it uses GPR_PROJECT_PATH. + (setf (wisi-prj-compiler project) + (create-gnat-compiler + :gpr-file abs-gpr-file + :run-buffer-name (gnat-run-buffer-name abs-gpr-file))) + + (when (null xref-label) + (user-error "create-alire-prj: no xref backend specified; add :xref-label")) + (setf (wisi-prj-xref project) + (funcall (intern (format "create-%s-xref" (symbol-name xref-label))))) + + (wisi-compiler-parse-one (wisi-prj-compiler project) project "gpr_file" abs-gpr-file) + (wisi-xref-parse-one (wisi-prj-xref project) project "gpr_file" abs-gpr-file) + + project))) (cl-defmethod wisi-prj-default ((project alire-prj)) (let* ((gpr-file (gnat-compiler-gpr-file (wisi-prj-compiler project))) diff --git a/gnat-compiler.el b/gnat-compiler.el index 9b9f6d1ffe..2326b68650 100644 --- a/gnat-compiler.el +++ b/gnat-compiler.el @@ -6,7 +6,7 @@ ;; ;; Author: Stephen Leake <stephen_le...@member.fsf.org> ;; Maintainer: Stephen Leake <stephen_le...@member.fsf.org> -;; Version: 1.0.1 +;; Version: 1.0.2 ;; package-requires: ((emacs "25.3") (wisi "4.2.0")) ;; ;; This file is part of GNU Emacs.