Skip to content

Commit

Permalink
interpreter: set shared_library_only for default_library='shared'
Browse files Browse the repository at this point in the history
Fixes #3970.
  • Loading branch information
宋文武 committed Feb 11, 2025
1 parent df9b075 commit 1d54f32
Show file tree
Hide file tree
Showing 2 changed files with 5 additions and 3 deletions.
4 changes: 3 additions & 1 deletion mesonbuild/interpreter/interpreter.py
Original file line number Diff line number Diff line change
Expand Up @@ -3327,7 +3327,9 @@ def build_library(self, node: mparser.BaseNode, args: T.Tuple[str, SourcesVararg
default_library = self.coredata.get_option(OptionKey('default_library', subproject=self.subproject))
assert isinstance(default_library, str), 'for mypy'
if default_library == 'shared':
return self.build_target(node, args, T.cast('kwtypes.SharedLibrary', kwargs), build.SharedLibrary)
holder = self.build_target(node, args, T.cast('kwtypes.SharedLibrary', kwargs), build.SharedLibrary)
holder.shared_library_only = True
return holder
elif default_library == 'static':
return self.build_target(node, args, T.cast('kwtypes.StaticLibrary', kwargs), build.StaticLibrary)
elif default_library == 'both':
Expand Down
4 changes: 2 additions & 2 deletions test cases/unit/76 as link whole/meson.build
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,8 @@ project('as-link-whole', 'c')

foo = static_library('foo', 'foo.c', install: true)
dep = declare_dependency(link_with: foo)
bar1 = library('bar1', 'bar.c', dependencies: dep)
bar2 = library('bar2', 'bar.c', dependencies: dep.as_link_whole())
bar1 = static_library('bar1', 'bar.c', dependencies: dep)
bar2 = static_library('bar2', 'bar.c', dependencies: dep.as_link_whole())

# bar1.pc should have -lfoo but not bar2.pc
pkg = import('pkgconfig')
Expand Down

0 comments on commit 1d54f32

Please sign in to comment.