diff options
author | Jussi Pakkanen <jpakkane@gmail.com> | 2020-05-02 01:57:09 +0300 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-05-02 01:57:09 +0300 |
commit | f8a04f0f76a09e875a2a2235facf9f58bb5031b5 (patch) | |
tree | c64779d76cba72fde7848616fd816a9998b90e31 /mesonbuild/build.py | |
parent | 30c4a7744f00c0393e4f261a6337d65b4c4d469d (diff) | |
parent | 1bfeaadd6d1dc87532a1c0ad4be615eb34044495 (diff) | |
download | meson-f8a04f0f76a09e875a2a2235facf9f58bb5031b5.zip meson-f8a04f0f76a09e875a2a2235facf9f58bb5031b5.tar.gz meson-f8a04f0f76a09e875a2a2235facf9f58bb5031b5.tar.bz2 |
Merge pull request #6838 from dcbaker/link-language-in-libraries
Link language in libraries
Diffstat (limited to 'mesonbuild/build.py')
-rw-r--r-- | mesonbuild/build.py | 15 |
1 files changed, 9 insertions, 6 deletions
diff --git a/mesonbuild/build.py b/mesonbuild/build.py index c200261..aff1d5f 100644 --- a/mesonbuild/build.py +++ b/mesonbuild/build.py @@ -82,6 +82,7 @@ buildtarget_kwargs = set([ 'override_options', 'sources', 'gnu_symbol_visibility', + 'link_language', ]) known_build_target_kwargs = ( @@ -92,7 +93,7 @@ known_build_target_kwargs = ( rust_kwargs | cs_kwargs) -known_exe_kwargs = known_build_target_kwargs | {'implib', 'export_dynamic', 'link_language', 'pie'} +known_exe_kwargs = known_build_target_kwargs | {'implib', 'export_dynamic', 'pie'} known_shlib_kwargs = known_build_target_kwargs | {'version', 'soversion', 'vs_module_defs', 'darwin_versions'} known_shmod_kwargs = known_build_target_kwargs | {'vs_module_defs'} known_stlib_kwargs = known_build_target_kwargs | {'pic'} @@ -1217,11 +1218,7 @@ You probably should put it in link_with instead.''') See: https://github.com/mesonbuild/meson/issues/1653 ''' - langs = [] - - # User specified link_language of target (for multi-language targets) - if self.link_language: - return [self.link_language] + langs = [] # type: T.List[str] # Check if any of the external libraries were written in this language for dep in self.external_deps: @@ -1253,6 +1250,12 @@ You probably should put it in link_with instead.''') # Populate list of all compilers, not just those being used to compile # sources in this target all_compilers = self.environment.coredata.compilers[self.for_machine] + + # If the user set the link_language, just return that. + if self.link_language: + comp = all_compilers[self.link_language] + return comp, comp.language_stdlib_only_link_flags() + # Languages used by dependencies dep_langs = self.get_langs_used_by_deps() # Pick a compiler based on the language priority-order |