From 3d06ffb910d778aaed96ab40efa50bae7fe8d09b Mon Sep 17 00:00:00 2001 From: Francois-Rene Rideau <fare@tunes.org> Date: Tue, 7 Jun 2011 01:13:46 -0400 Subject: [PATCH] 2.015.12: Make defsystem-depends-on useful by allowing to use system classes defined therein. Tested with the XCVB bridge. --- asdf.asd | 2 +- asdf.lisp | 11 ++++++----- 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/asdf.asd b/asdf.asd index 690e6ad2..951b51d3 100644 --- a/asdf.asd +++ b/asdf.asd @@ -12,7 +12,7 @@ :licence "MIT" :description "Another System Definition Facility" :long-description "ASDF builds Common Lisp software organized into defined systems." - :version "2.015.11" ;; to be automatically updated by bin/bump-revision + :version "2.015.12" ;; to be automatically updated by bin/bump-revision :depends-on () :components ((:file "asdf") diff --git a/asdf.lisp b/asdf.lisp index 53cc0f82..e9eed425 100755 --- a/asdf.lisp +++ b/asdf.lisp @@ -1,5 +1,5 @@ ;;; -*- mode: common-lisp; Base: 10 ; Syntax: ANSI-Common-Lisp -*- -;;; This is ASDF 2.015.11: Another System Definition Facility. +;;; This is ASDF 2.015.12: Another System Definition Facility. ;;; ;;; Feedback, bug reports, and patches are all welcome: ;;; please mail to <asdf-devel@common-lisp.net>. @@ -106,7 +106,7 @@ ;; "2.345.6" would be a development version in the official upstream ;; "2.345.0.7" would be your seventh local modification of official release 2.345 ;; "2.345.6.7" would be your seventh local modification of development version 2.345.6 - (asdf-version "2.015.11") + (asdf-version "2.015.12") (existing-asdf (find-class 'component nil)) (existing-version *asdf-version*) (already-there (equal asdf-version existing-version))) @@ -2511,7 +2511,7 @@ details." class (find-class 'component))) :return class) (and (eq type :file) - (or (module-default-component-class parent) + (or (and parent (module-default-component-class parent)) (find-class *default-component-class*))) (sysdef-error "don't recognize component type ~A" type))) @@ -2690,8 +2690,9 @@ Returns the new tree (which probably shares structure with the old one)" (map () 'load-system defsystem-depends-on) ;; We change-class (when necessary) AFTER we load the defsystem-dep's ;; since the class might not be defined as part of those. - (unless (eq (type-of system) class) - (change-class system class)) + (let ((class (class-for-type nil class))) + (unless (eq (type-of system) class) + (change-class system class))) (parse-component-form nil (list* :module name -- GitLab