aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJussi Pakkanen <jpakkane@gmail.com>2020-02-05 21:18:15 +0200
committerGitHub <noreply@github.com>2020-02-05 21:18:15 +0200
commit6e29a11a4e3258631e3381909390c8eb46b16dd2 (patch)
tree3bb7e4ceb3f6eaf1d16d6e4acb6d0e7943a52a84
parent3d70e3bc63e1d207138d9664283e19444ec1c35a (diff)
parent235b7a69e7cc0aca2c39722273ba2e1934c6aa14 (diff)
downloadmeson-6e29a11a4e3258631e3381909390c8eb46b16dd2.zip
meson-6e29a11a4e3258631e3381909390c8eb46b16dd2.tar.gz
meson-6e29a11a4e3258631e3381909390c8eb46b16dd2.tar.bz2
Merge pull request #6589 from dcbaker/wx-widgets-static
Wx widgets static
-rw-r--r--mesonbuild/dependencies/ui.py26
1 files changed, 21 insertions, 5 deletions
diff --git a/mesonbuild/dependencies/ui.py b/mesonbuild/dependencies/ui.py
index 5433150..11d6e88 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,17 +533,30 @@ class WxDependency(ConfigToolDependency):
tools = ['wx-config-3.0', 'wx-config', 'wx-config-gtk3']
tool_name = 'wx-config'
- def __init__(self, environment, kwargs):
- super().__init__('WxWidgets', 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
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')
- 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')