def CreateCleanMethod(compiler_type):

    # ----------------------------------------------------------------------
    @CommandLine.EntryPoint
    @CommandLine.Constraints(
        output_dir=CommandLine.DirectoryTypeInfo(),
        output_stream=None,
    )
    def Clean(
        output_dir,
        output_stream=sys.stdout,
    ):
        """Cleans previously compiled output."""
        return CommandLineClean(output_dir, output_stream)

    # ----------------------------------------------------------------------

    return Clean
    filter_unsupported_extensions=CommandLine.EntryPoint.Parameter(
        "Ignore extensions that aren't supported; by default, unsupported extensions will generate an error"
    ),
    filter_unsupported_attributes=CommandLine.EntryPoint.Parameter(
        "Ignore element attributes that aren't supported; by default, unsupported attributes will generate an error"
    ),
    plugin_arg=CommandLine.EntryPoint.Parameter(
        "Argument passes directly to the plugin"),
    force=CommandLine.EntryPoint.Parameter("Force generation"),
    verbose=CommandLine.EntryPoint.Parameter(
        "Generate verbose output during generation"),
)
@CommandLine.Constraints(
    plugin=_PluginTypeInfo,
    output_name=CommandLine.StringTypeInfo(),
    output_dir=CommandLine.DirectoryTypeInfo(ensure_exists=False, ),
    input=CommandLine.FilenameTypeInfo(
        match_any=True,
        arity="+",
    ),
    include=CommandLine.StringTypeInfo(arity="*", ),
    exclude=CommandLine.StringTypeInfo(arity="*", ),
    output_data_filename_prefix=CommandLine.StringTypeInfo(arity="?", ),
    plugin_arg=CommandLine.DictTypeInfo(
        require_exact_match=False,
        arity="*",
    ),
    output_stream=None,
)
def Generate(
    plugin,
Example #3
0
inflect                                     = inflect_mod.engine()

# ----------------------------------------------------------------------

BUILD_FILENAME                              = "Build.py"
BUILD_FILENAME_IGNORE                       = "{}-ignore".format(BUILD_FILENAME)

BUILD_LOG_TEMPLATE                          = "Build.{mode}.log"

COMPLETE_CONFIGURATION_NAME                 = "Complete"

# ----------------------------------------------------------------------
@CommandLine.EntryPoint( mode=CommandLine.EntryPoint.Parameter('Defaults to [ "clean", "build", ]'),
                       )
@CommandLine.Constraints( root_dir=CommandLine.DirectoryTypeInfo(),
                          output_dir=CommandLine.DirectoryTypeInfo(ensure_exists=False),
                          mode=CommandLine.StringTypeInfo(arity='*'),
                          output_stream=None,
                        )
def Execute( root_dir,
             output_dir,
             mode=None,
             debug_only=False,
             release_only=False,
             output_stream=sys.stdout,
             verbose=False,
           ):
    """Recursively calls Build files with the desired mode(s)"""

    assert os.path.isdir(root_dir), root_dir
from CommonEnvironment.StreamDecorator import StreamDecorator
from CommonEnvironment import StringHelpers

# ----------------------------------------------------------------------
_script_fullpath = os.path.abspath(
    __file__) if "python" in sys.executable.lower() else sys.executable
_script_dir, _script_name = os.path.split(_script_fullpath)
# ----------------------------------------------------------------------

inflect = inflect_mod.engine()


# ----------------------------------------------------------------------
@CommandLine.EntryPoint
@CommandLine.Constraints(
    root_dir=CommandLine.DirectoryTypeInfo(),
    output_stream=None,
)
def EntryPoint(
    root_dir,
    output_stream=sys.stdout,
):
    with StreamDecorator(output_stream).DoneManager(
            line_prefix='',
            prefix="\nResults: ",
            suffix='\n',
    ) as dm:
        repositories = []

        dm.stream.write(
            "\nSearching for repositories in '{}'...".format(root_dir))
Example #5
0
from CommonEnvironment.StreamDecorator import StreamDecorator

# ----------------------------------------------------------------------
_script_fullpath                            = CommonEnvironment.ThisFullpath()
_script_dir, _script_name                   = os.path.split(_script_fullpath)
# ----------------------------------------------------------------------

CONFIGURATIONS                              = ["Debug", "Release"]
JSON_FILENAME                               = "Microsoft MLFeaturizers.FileAttributes.json"

# ----------------------------------------------------------------------
@CommandLine.EntryPoint
@CommandLine.Constraints(
    configuration=CommandLine.EnumTypeInfo(CONFIGURATIONS),
    output_dir=CommandLine.DirectoryTypeInfo(
        ensure_exists=False,
    ),
    prerelease_build_name=CommandLine.StringTypeInfo(
        arity="?",
    ),
    cmake_generator=CommandLine.StringTypeInfo(
        arity="?",
    ),
    output_stream=None,
)
def Build(
    configuration,
    output_dir,
    release_build=False,
    prerelease_build_name=None,
    no_build_info=False,
from CommonEnvironment.StreamDecorator import StreamDecorator
from CommonEnvironment import TaskPool

# ----------------------------------------------------------------------
_script_fullpath                            = CommonEnvironment.ThisFullpath()
_script_dir, _script_name                   = os.path.split(_script_fullpath)
# ----------------------------------------------------------------------


@CommandLine.EntryPoint
@CommandLine.Constraints(
    generator=CommandLine.StringTypeInfo(
        arity="?",
    ),
    working_dir=CommandLine.DirectoryTypeInfo(
        arity="?",
    ),
    cmake_param=CommandLine.StringTypeInfo(
        arity="*",
    ),
    output_stream=None,
)
def Generate(
    working_dir=os.getcwd(),
    generator=(
        None
        if os.getenv("DEVELOPMENT_ENVIRONMENT_CPP_USE_DEFAULT_CMAKE_GENERATOR")
        else "Ninja"
    ),
    cmake_param=None,
    force=False,
def CreateCompileMethod(compiler_type):

    # ----------------------------------------------------------------------
    @CommandLine.EntryPoint
    @CommandLine.Constraints(
        input=CommandLine.FilenameTypeInfo(arity='+'),
        output_dir=CommandLine.DirectoryTypeInfo(ensure_exists=False),
        output_name=CommandLine.StringTypeInfo(arity='?'),
        build_type=CommandLine.EnumTypeInfo([
            "console",
            "windows",
        ],
                                            arity='?'),
        manifest_filename=CommandLine.FilenameTypeInfo(arity='?'),
        icon_filename=CommandLine.FilenameTypeInfo(arity='?'),
        path=CommandLine.DirectoryTypeInfo(arity='*'),
        include_module=CommandLine.StringTypeInfo(arity='*'),
        exclude_module=CommandLine.StringTypeInfo(arity='*'),
        package=CommandLine.StringTypeInfo(arity='*'),
        distutil_arg=CommandLine.StringTypeInfo(arity='*'),
        comments=CommandLine.StringTypeInfo(arity='?'),
        company_name=CommandLine.StringTypeInfo(arity='?'),
        file_description=CommandLine.StringTypeInfo(arity='?'),
        internal_name=CommandLine.StringTypeInfo(arity='?'),
        copyright=CommandLine.StringTypeInfo(arity='?'),
        trademark=CommandLine.StringTypeInfo(arity='?'),
        name=CommandLine.StringTypeInfo(arity='?'),
        version=CommandLine.StringTypeInfo(arity='?'),
        output_stream=None,
    )
    def Compile(
        input,
        output_dir,
        output_name=None,
        build_type="console",
        include_tcl=False,
        no_optimize=False,
        no_bundle=False,
        manifest_filename=None,
        icon_filename=None,
        path=None,
        include_module=None,
        exclude_module=None,
        package=None,
        distutil_arg=None,
        comments=None,
        company_name=None,
        file_description=None,
        internal_name=None,
        trademark=None,
        copyright=None,
        name=None,
        version=None,
        preserve_temp_dir=False,
        output_stream=sys.stdout,
        no_verbose=False,
    ):
        """Creates an executable from one or more python files."""

        if build_type == "console":
            build_type = DistutilsCompilerImpl.BuildType_Console
        elif build_type == "windows":
            build_type = DistutilsCompilerImpl.BuildType_Windows
        else:
            assert False, build_type

        return CommandLineCompile(
            compiler_type,
            input,
            output_stream,
            verbose=not no_verbose,

            # Generate compiler options
            output_dir=output_dir,

            # This compiler options
            preserve_temp_dir=preserve_temp_dir,
            build_type=build_type,
            include_tcl=include_tcl,
            no_optimize=no_optimize,
            no_bundle=no_bundle,
            manifest_filename=manifest_filename,
            icon_filename=icon_filename,
            paths=path,
            includes=include_module,
            excludes=exclude_module,
            packages=package,
            distutil_args=distutil_arg,
            output_name=output_name,
            comments=comments,
            company_name=company_name,
            file_description=file_description,
            internal_name=internal_name,
            copyright=copyright,
            trademark=trademark,
            name=name,
            version=version,
        )

    # ----------------------------------------------------------------------

    return Compile
def _GenerateRebuild(build_func, clean_func, config):
    assert build_func
    assert clean_func
    assert config

    # ----------------------------------------------------------------------
    def Impl(configuration, output_dir, build_func, clean_func):
        result = clean_func(configuration, output_dir)
        if result is not None and result != 0:
            return result

        if config.RequiresOutputDir and not os.path.isdir(output_dir):
            os.makedirs(output_dir)

        result = build_func(configuration, output_dir)
        if result is not None and result != 0:
            return result

        return 0

    # ----------------------------------------------------------------------

    if config.Configurations:
        if config.RequiresOutputDir:
            # ----------------------------------------------------------------------
            @CommandLine.EntryPoint
            @CommandLine.Constraints( configuration=CommandLine.EnumTypeInfo(config.Configurations),
                                      output_dir=CommandLine.DirectoryTypeInfo(ensure_exists=False),
                                    )
            def Rebuild(configuration, output_dir):
                return Impl(configuration, output_dir, build_func, clean_func)

            # ----------------------------------------------------------------------
        else:
            # ----------------------------------------------------------------------
            @CommandLine.EntryPoint
            @CommandLine.Constraints( configuration=CommandLine.EnumTypeInfo(config.Configurations),
                                    )
            def Rebuild(configuration):
                return Impl( configuration,
                             None,
                             lambda cfg, output_dir: build_func(cfg),
                             lambda cfg, output_dir: clean_func(cfg),
                           )

            # ----------------------------------------------------------------------

    else:
        if config.RequiresOutputDir:
            # ----------------------------------------------------------------------
            @CommandLine.EntryPoint
            @CommandLine.Constraints( output_dir=CommandLine.DirectoryTypeInfo(ensure_exists=False),
                                    )
            def Rebuild(output_dir):
                return Impl( None,
                             output_dir,
                             lambda cfg, output_dir: build_func(output_dir),
                             lambda cfg, output_dir: clean_func(output_dir),
                           )

            # ----------------------------------------------------------------------
        else:
            # ----------------------------------------------------------------------
            @CommandLine.EntryPoint
            def Rebuild():
                return Impl( None,
                             None,
                             lambda cfg, output_dir: build_func(),
                             lambda cfg, output_dir: clean_func(),
                           )

            # ----------------------------------------------------------------------

    return Rebuild
from CommonEnvironment import Process
from CommonEnvironment.Shell.All import CurrentShell
from CommonEnvironment.StreamDecorator import StreamDecorator

# ----------------------------------------------------------------------
_script_fullpath                            = CommonEnvironment.ThisFullpath()
_script_dir, _script_name                   = os.path.split(_script_fullpath)
# ----------------------------------------------------------------------

inflect                                     = inflect_mod.engine()

# ----------------------------------------------------------------------
@CommandLine.EntryPoint()
@CommandLine.Constraints(
    bin_dir=CommandLine.DirectoryTypeInfo(
        arity="*",
    ),
    output_dir=CommandLine.DirectoryTypeInfo(
        ensure_exists=False,
        arity="?",
    ),
    output_filename=CommandLine.StringTypeInfo(
        arity="?",
    ),
    type=CommandLine.StringTypeInfo(
        arity="?",
    ),
    output_stream=None,
)
def Lcov(
    bin_dir=None,