From 68842f535f2f45f6ba3831b646e1b33a89191ce2 Mon Sep 17 00:00:00 2001 From: Dylan Baker Date: Wed, 5 Feb 2020 09:13:32 -0800 Subject: dependencies/ui: wxwidgets requires C++ so set the language field appropriately --- mesonbuild/dependencies/ui.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mesonbuild/dependencies/ui.py b/mesonbuild/dependencies/ui.py index 5433150..1258c7a 100644 --- a/mesonbuild/dependencies/ui.py +++ b/mesonbuild/dependencies/ui.py @@ -531,7 +531,7 @@ class WxDependency(ConfigToolDependency): tool_name = 'wx-config' def __init__(self, environment, kwargs): - super().__init__('WxWidgets', environment, kwargs) + super().__init__('WxWidgets', environment, kwargs, language='cpp') if not self.is_found: return self.requested_modules = self.get_requested(kwargs) -- cgit v1.1 From f3773fa5c6e63ec8e1984b6afe40a824fb02cbaa Mon Sep 17 00:00:00 2001 From: Dylan Baker Date: Wed, 5 Feb 2020 09:16:11 -0800 Subject: dependencies/ui: Add type annotations to WxDependency --- mesonbuild/dependencies/ui.py | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/mesonbuild/dependencies/ui.py b/mesonbuild/dependencies/ui.py index 1258c7a..35bbcd5 100644 --- a/mesonbuild/dependencies/ui.py +++ b/mesonbuild/dependencies/ui.py @@ -32,6 +32,9 @@ from .base import ExternalDependency, NonExistingExternalProgram from .base import ExtraFrameworkDependency, PkgConfigDependency from .base import ConfigToolDependency, DependencyFactory +if T.TYPE_CHECKING: + from ..environment import Environment + class GLDependencySystem(ExternalDependency): def __init__(self, name: str, environment, kwargs): @@ -530,7 +533,7 @@ class WxDependency(ConfigToolDependency): tools = ['wx-config-3.0', 'wx-config', 'wx-config-gtk3'] tool_name = 'wx-config' - def __init__(self, environment, kwargs): + def __init__(self, environment: 'Environment', kwargs: T.Dict[str, T.Any]): super().__init__('WxWidgets', environment, kwargs, language='cpp') if not self.is_found: return @@ -540,7 +543,8 @@ class WxDependency(ConfigToolDependency): self.compile_args = self.get_config_value(['--cxxflags'] + self.requested_modules, 'compile_args') self.link_args = self.get_config_value(['--libs'] + self.requested_modules, 'link_args') - def get_requested(self, kwargs): + @staticmethod + def get_requested(kwargs: T.Dict[str, T.Any]) -> T.List[str]: if 'modules' not in kwargs: return [] candidates = extract_as_list(kwargs, 'modules') -- cgit v1.1 From 235b7a69e7cc0aca2c39722273ba2e1934c6aa14 Mon Sep 17 00:00:00 2001 From: Dylan Baker Date: Wed, 5 Feb 2020 09:24:32 -0800 Subject: dependencies/ui: Honor static argument with wxwidgets Fixes #6564 --- mesonbuild/dependencies/ui.py | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/mesonbuild/dependencies/ui.py b/mesonbuild/dependencies/ui.py index 35bbcd5..11d6e88 100644 --- a/mesonbuild/dependencies/ui.py +++ b/mesonbuild/dependencies/ui.py @@ -538,10 +538,22 @@ class WxDependency(ConfigToolDependency): if not self.is_found: return self.requested_modules = self.get_requested(kwargs) + + extra_args = [] + if self.static: + extra_args.append('--static=yes') + + # Check to make sure static is going to work + err = Popen_safe(self.config + extra_args)[2] + if 'No config found to match' in err: + mlog.debug('WxWidgets is missing static libraries.') + self.is_found = False + return + # wx-config seems to have a cflags as well but since it requires C++, # this should be good, at least for now. - self.compile_args = self.get_config_value(['--cxxflags'] + self.requested_modules, 'compile_args') - self.link_args = self.get_config_value(['--libs'] + self.requested_modules, 'link_args') + self.compile_args = self.get_config_value(['--cxxflags'] + extra_args + self.requested_modules, 'compile_args') + self.link_args = self.get_config_value(['--libs'] + extra_args + self.requested_modules, 'link_args') @staticmethod def get_requested(kwargs: T.Dict[str, T.Any]) -> T.List[str]: -- cgit v1.1