• Francois-Rene Rideau's avatar
    package-system: support for quick-build style defpackage-based dependencies. · c609093c
    Francois-Rene Rideau authored
    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*