def main()

in Legacy/PlaygroundLogger/build.py [0:0]


def main():
    colorama.init()
    parser = argparse.ArgumentParser(formatter_class=argparse.RawDescriptionHelpFormatter,
                                     description="Build %s" % PROJECT_NAME)
    parser.add_argument("--swiftc",
                        help="path to the swift compiler",
                        metavar="PATH",
                        action="store",
                        dest="swiftc",
                        required=True,
                        default=None)
    parser.add_argument("--foundation",
                        help="path to the Foundation build",
                        metavar="PATH",
                        action="store",
                        dest="foundation",
                        required=False,
                        default=None)
    parser.add_argument("--build-dir",
                        help="path to the output build directory",
                        metavar="PATH",
                        action="store",
                        dest="build_dir",
                        required=False,
                        default=None)
    parser.add_argument("--swift-build-dir",
                        help="path to the swift build directory",
                        metavar="PATH",
                        action="store",
                        dest="swift_build_dir",
                        required=False,
                        default=None)
    parser.add_argument("--module-install-path",
                        help="location to install module files",
                        metavar="PATH",
                        action="store",
                        dest="module_path",
                        default=None)
    parser.add_argument("--library-install-path",
                        help="location to install shared library files",
                        metavar="PATH",
                        action="store",
                        dest="lib_path",
                        default=None)
    parser.add_argument("--debug",
                        help="builds for debug (the default)",
                        action="store_const",
                        dest="build_style",
                        const="debug",
                        default="debug")
    parser.add_argument("--release",
                        help="builds for release",
                        action="store_const",
                        dest="build_style",
                        const="release",
                        default="debug")
    args = parser.parse_args()

    SETTINGS.parse(args)
    print SETTINGS
    
    TARGETS.append(CreateBuildDirectory)
    TARGETS.append(GenerateBOM)
    TARGETS.append(BuildObjectFile)
    TARGETS.append(CreateAutolinkExtractFile)
    TARGETS.append(CreateModulewrapObjectFile)
    TARGETS.append(LinkDynamicLibrary)
    TARGETS.append(BuildTestDriver)
    TARGETS.append(RunTestDriver)
    TARGETS.append(Install)

    for ctarget in TARGETS:
        target = ctarget(SETTINGS)
        note("building '%s'" % target.description())
        try:
            status = target.build()
        except BuildError as b:
            status = b
        except Exception as e:
            status = UncaughtExceptionBuildError(e)
        if status or (status is None):
            note('built successfully')
        else:
            error('build error: %s' % status)
            sys.exit(1)