• Drew's avatar
    Add plugin support · ecca2810
    Drew authored
    We're supposed to be building simple, hackable tools but atbuild is
    becoming more of a monolithic tool.  This patch aims to change that.
    
    There are many reasons some feature should not be included in core:
    
    1.  Core needs to be minimal so we can bootstrap it on new platforms;
        every new feature is a new burden
    
    2.  Core needs to be x-platform but many features do not
        (see: xcode-emit, packageframework)
    
    3.  Features may want different release frequency (see: xcode-emit) or
        don't want to coordinate with atbuild
    
    4.  Features may be "not part of AnarchyTools" (Caroline) but still
        commonly used together
    
    5.  I'm annoyed at upstream over the static linking issue, and thinking
        of ways to keep us from being that point of central failure that annoys
        somebody else someday
    
    Therefore, we introduce the world's simplest plugin system designed to
    move code out of core, or keep code out of core that doesn't need to be.
    
    xcode-emit and Caroline will consume this API.  packageframework is a
    good candidate for a plugin that might be moved out from core.
    
    Documentation to follow
    ecca2810
Tools.swift 2.5 KB