(env: 'Environment',
                    for_machine: 'MachineChoice',
                    kwargs: T.Dict[str, T.Any],
                    methods: T.List[DependencyMethods])
return candidates
Custom DependencyFactory for ShaderC.

    ShaderC's odd you get three different libraries from the same build
    thing are just easier to represent as a separate function than
    twisting DependencyFactory even more.
Custom DependencyFactory for ShaderC.
Custom DependencyFactory for ShaderC .
def shaderc_factory(env: 'Environment',
                    for_machine: 'MachineChoice',
                    kwargs: T.Dict[str, T.Any],
                    methods: T.List[DependencyMethods]) -> T.List['DependencyGenerator']:
    """Custom DependencyFactory for ShaderC.

    ShaderC's odd you get three different libraries from the same build
    thing are just easier to represent as a separate function than
    twisting DependencyFactory even more.
    """
    candidates: T.List['DependencyGenerator'] = []

    if DependencyMethods.PKGCONFIG in methods:
        # ShaderC packages their shared and static libs together
        # and provides different pkg-config files for each one. We
        # smooth over this difference by handling the static
        # keyword before handing off to the pkg-config handler.
        shared_libs = ['shaderc']
        static_libs = ['shaderc_combined', 'shaderc_static']

        if kwargs.get('static', False):
            c = [functools.partial(PkgConfigDependency, name, env, kwargs)
                 for name in static_libs + shared_libs]
        else:
            c = [functools.partial(PkgConfigDependency, name, env, kwargs)
                 for name in shared_libs + static_libs]
        candidates.extend(c)

    if DependencyMethods.SYSTEM in methods:
        candidates.append(functools.partial(ShadercDependency, env, kwargs))

    return candidates
def shaderc_factory ( env : 'Environment' , for_machine : 'MachineChoice' , kwargs : T . Dict [ str , T . Any ] , methods : T . List [ DependencyMethods ] ) -> T . List [ 'DependencyGenerator' ] : candidates : T . List [ 'DependencyGenerator' ] = [ ] if DependencyMethods . PKGCONFIG in methods : # ShaderC packages their shared and static libs together # and provides different pkg-config files for each one. We # smooth over this difference by handling the static # keyword before handing off to the pkg-config handler. shared_libs = [ 'shaderc' ] static_libs = [ 'shaderc_combined' , 'shaderc_static' ] if kwargs . get ( 'static' , False ) : c = [ functools . partial ( PkgConfigDependency , name , env , kwargs ) for name in static_libs + shared_libs ] else : c = [ functools . partial ( PkgConfigDependency , name , env , kwargs ) for name in shared_libs + static_libs ] candidates . extend ( c ) if DependencyMethods . SYSTEM in methods : candidates . append ( functools . partial ( ShadercDependency , env , kwargs ) ) return candidates