Skip to content
Snippets Groups Projects
Commit c609093c authored by Francois-Rene Rideau's avatar Francois-Rene Rideau
Browse files

package-system: support for quick-build style defpackage-based dependencies.

This is quick-build compatible and fixes lp#1230368.

To use package-system, just have foo.asd containing
	(defsystem foo :class package-system)
at the top of your quick-build hierarchy $FOODIR
for packages whose name start with "FOO/"
and ASDF will thereafter look for system "foo/bar/baz" in $FOODIR/bar/baz.lisp.

Such a file will implicitly have its own system defined;
its dependencies are computed by scanning the file,
extracting its first defpackage form,
and using the packages it uses or imports from
as a as a specification of what systems it depends on.

You can register packages as belonging to a system with
	(asdf:register-system-packages my-system '(package1 package2))
Using or importing from a package registered to a given system
will generate a dependency to the registered system.
Using or importing from a packages registered to the constant symbol T
will not generate any dependency.
Using or importing from a packages that is not registered will generate
a dependency on a system the name of which is the package name downcased.
All packages that exist at the time ASDF is initially loaded
are registered to constant symbol T.

Also, for convenience, introduce :use-reexport and :mix-reexport in
uiop/package.lisp (of course, no one can rely on it until it's mainstream,
but better late than never).

To use this style in a way compatible with older versions of ASDF 3,
you may use the asdf-package-system extension.
See lisp-interface-library for a system that uses this style this way.

Push :asdf-package-system to *features*
parent ba8308da
No related branches found
No related tags found
Loading
Loading
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment