# -*- coding: utf-8 -*-
#
# michael a.g. aïvázis <michael.aivazis@para-sim.com>
# (c) 1998-2021 all rights reserved


# support
import merlin


# the manager of intermediate and final build products
class PrefixLayout(merlin.protocol, family="merlin.layouts.prefix"):
    """
    The manager of the all build products, both final and intermediate disposables
    """


    # required state
    bin = merlin.properties.path()
    bin.doc = "the location of executables"

    config = merlin.properties.path()
    config.doc = "global package configuration files"

    doc = merlin.properties.path()
    doc.doc = "package documentation"

    etc = merlin.properties.path()
    etc.doc = "host specific files"

    include = merlin.properties.path()
    include.doc = "library header files"

    lib = merlin.properties.path()
    lib.doc = "libraries"

    libexec = merlin.properties.path()
    libexec.doc = "binaries that are meant to be used by other packages"

    share = merlin.properties.path()
    share.doc = "architecture independent package files"

    var = merlin.properties.path()
    var.doc = "runtime files"


    # framework hooks
    @classmethod
    def pyre_default(cls, **kwds):
        """
        Specify the default implementation
        """
        # choose the default implementer
        return merlin.components.fhs


# end of file

[((400, 424), 'merlin.properties.path', 'merlin.properties.path', ([], {}), '()\n', (422, 424), False, 'import merlin\n'), ((483, 507), 'merlin.properties.path', 'merlin.properties.path', ([], {}), '()\n', (505, 507), False, 'import merlin\n'), ((573, 597), 'merlin.properties.path', 'merlin.properties.path', ([], {}), '()\n', (595, 597), False, 'import merlin\n'), ((647, 671), 'merlin.properties.path', 'merlin.properties.path', ([], {}), '()\n', (669, 671), False, 'import merlin\n'), ((723, 747), 'merlin.properties.path', 'merlin.properties.path', ([], {}), '()\n', (745, 747), False, 'import merlin\n'), ((800, 824), 'merlin.properties.path', 'merlin.properties.path', ([], {}), '()\n', (822, 824), False, 'import merlin\n'), ((866, 890), 'merlin.properties.path', 'merlin.properties.path', ([], {}), '()\n', (888, 890), False, 'import merlin\n'), ((977, 1001), 'merlin.properties.path', 'merlin.properties.path', ([], {}), '()\n', (999, 1001), False, 'import merlin\n'), ((1070, 1094), 'merlin.properties.path', 'merlin.properties.path', ([], {}), '()\n', (1092, 1094), False, 'import merlin\n')]