source: trunk/abcl/contrib/abcl-asdf/asdf-mvn-module.lisp

Last change on this file was 15118, checked in by Mark Evenson, 7 years ago

mvn-module: stop complaining about not loading a file named the module name

Merges <https://github.com/armedbear/abcl/pull/78>

File size: 1.4 KB
Line 
1(in-package :asdf)
2
3 ;; dependencies: a list of maven artifacts. color or slash separated
4 ;;   components groupid:artifactid:versionid
5
6 ;; managed-dependencies: a list of maven artifacts. If an dependency
7 ;;   with same groupid and artifactid are encountered, the version
8 ;;   specified here overrides.
9
10 ;; exclusions: a list of partial maven artifacts
11 ;;   groupid:artifactid. Dependencies with same groupid and artifactid are
12 ;;   exluded
13
14(defclass mvn-module (component) 
15  ((depends :initarg :dependencies :initform nil :accessor mvn-module-depends)
16   (excludes :initarg :exclusions :initform nil :accessor mvn-module-excludes)
17   (managed :initarg :managed-dependencies :initform nil :accessor mvn-module-managed)))
18
19(defmethod component-children ((c mvn-module))
20  nil)
21
22;;; ASDF problems: method is deprecated.  How do we define MVN-MODULE,
23;;; a subclass of ASDF:COMPONENT, which has no corresponding pathname?
24(defmethod source-file-type ((c mvn-module) (system parent-component))  :directory)
25
26(defmethod perform ((op compile-op) (c mvn-module)))
27
28(defmethod perform ((op prepare-op) (c mvn-module)))
29
30(defmethod perform ((operation load-op) (c mvn-module))
31  (loop for path in (abcl-asdf:resolve-multiple-maven-dependencies
32                     (mvn-module-depends c) (mvn-module-managed c) (mvn-module-excludes c))
33  do
34     (unless (member path abcl-asdf::*added-to-classpath* :test 'equalp)
35       (jss::add-to-classpath  path))))
36
Note: See TracBrowser for help on using the repository browser.