def get_clink_dynamic_linker_and_stdlibs(self):
    "\n        We use the order of languages in `clink_langs` to determine which\n        linker to use in case the target has sources compiled with multiple\n        compilers. All languages other than those in this list have their own\n        linker.\n        Note that Vala outputs C code, so Vala sources can use any linker\n        that can link compiled C. We don't actually need to add an exception\n        for Vala here because of that.\n        "
    if self.is_cross:
        all_compilers = self.environment.coredata.cross_compilers
    else:
        all_compilers = self.environment.coredata.compilers
    dep_langs = self.get_langs_used_by_deps()
    for l in clink_langs:
        if ((l in self.compilers) or (l in dep_langs)):
            try:
                linker = all_compilers[l]
            except KeyError:
                raise MesonException('Could not get a dynamic linker for build target {!r}. Requires a linker for language "{}", but that is not a project language.'.format(self.name, l))
            stdlib_args = []
            added_languages = set()
            for dl in itertools.chain(self.compilers, dep_langs):
                if (dl != linker.language):
                    stdlib_args += all_compilers[dl].language_stdlib_only_link_flags()
                    added_languages.add(dl)
            return (linker, stdlib_args)
    m = 'Could not get a dynamic linker for build target {!r}'
    raise AssertionError(m.format(self.name))
We use the order of languages in `clink_langs` to determine which
linker to use in case the target has sources compiled with multiple
compilers. All languages other than those in this list have their own
linker.
Note that Vala outputs C code, so Vala sources can use any linker
that can link compiled C. We don't actually need to add an exception
for Vala here because of that.
def get_clink_dynamic_linker_and_stdlibs(self):
    "\n        We use the order of languages in `clink_langs` to determine which\n        linker to use in case the target has sources compiled with multiple\n        compilers. All languages other than those in this list have their own\n        linker.\n        Note that Vala outputs C code, so Vala sources can use any linker\n        that can link compiled C. We don't actually need to add an exception\n        for Vala here because of that.\n        "
    if self.is_cross:
        all_compilers = self.environment.coredata.cross_compilers
    else:
        all_compilers = self.environment.coredata.compilers
    dep_langs = self.get_langs_used_by_deps()
    for l in clink_langs:
        if ((l in self.compilers) or (l in dep_langs)):
            try:
                linker = all_compilers[l]
            except KeyError:
                raise MesonException('Could not get a dynamic linker for build target {!r}. Requires a linker for language "{}", but that is not a project language.'.format(self.name, l))
            stdlib_args = []
            added_languages = set()
            for dl in itertools.chain(self.compilers, dep_langs):
                if (dl != linker.language):
                    stdlib_args += all_compilers[dl].language_stdlib_only_link_flags()
                    added_languages.add(dl)
            return (linker, stdlib_args)
    m = 'Could not get a dynamic linker for build target {!r}'
    raise AssertionError(m.format(self.name))