diff options
author | Jonathan Schleifer <js@nil.im> | 2024-04-11 01:46:27 +0200 |
---|---|---|
committer | Eli Schwartz <eschwartz93@gmail.com> | 2024-04-28 03:14:29 -0400 |
commit | 6c6529337e72812a64ff4a193d1888cc7822de58 (patch) | |
tree | 7672560e73f02b46d45b1d6569cf7bca3e33505e /mesonbuild | |
parent | 205f09e1b022a71a64eb48e22bb52f76e0da21ef (diff) | |
download | meson-6c6529337e72812a64ff4a193d1888cc7822de58.zip meson-6c6529337e72812a64ff4a193d1888cc7822de58.tar.gz meson-6c6529337e72812a64ff4a193d1888cc7822de58.tar.bz2 |
Add support for depending on ObjFW
This uses objfw-config to get to the flags, however, there's still
several todos that can only be addressed once dependencies can have
per-language flags.
Diffstat (limited to 'mesonbuild')
-rw-r--r-- | mesonbuild/dependencies/__init__.py | 1 | ||||
-rw-r--r-- | mesonbuild/dependencies/misc.py | 26 |
2 files changed, 27 insertions, 0 deletions
diff --git a/mesonbuild/dependencies/__init__.py b/mesonbuild/dependencies/__init__.py index abc2e22..89d2285 100644 --- a/mesonbuild/dependencies/__init__.py +++ b/mesonbuild/dependencies/__init__.py @@ -223,6 +223,7 @@ packages.defaults.update({ 'openssl': 'misc', 'libcrypto': 'misc', 'libssl': 'misc', + 'objfw': 'misc', # From platform: 'appleframeworks': 'platform', diff --git a/mesonbuild/dependencies/misc.py b/mesonbuild/dependencies/misc.py index b255813..fd59652 100644 --- a/mesonbuild/dependencies/misc.py +++ b/mesonbuild/dependencies/misc.py @@ -474,6 +474,30 @@ class OpensslSystemDependency(SystemDependency): self.link_args.extend(sublib) +class ObjFWDependency(ConfigToolDependency): + + tools = ['objfw-config'] + tool_name = 'objfw-config' + + def __init__(self, environment: 'Environment', kwargs: T.Dict[str, T.Any]): + super().__init__('objfw', environment, kwargs) + self.feature_since = ('1.5.0', '') + if not self.is_found: + return + + # TODO: Expose --reexport + # TODO: Expose --framework-libs + extra_flags = [] + + for module in mesonlib.stringlistify(mesonlib.extract_as_list(kwargs, 'modules')): + extra_flags.append('--package') + extra_flags.append(module) + + # TODO: Once Meson supports adding flags per language, only add --objcflags to ObjC + self.compile_args = self.get_config_value(['--cppflags', '--cflags', '--objcflags'] + extra_flags, 'compile_args') + self.link_args = self.get_config_value(['--ldflags', '--libs'] + extra_flags, 'link_args') + + @factory_methods({DependencyMethods.PKGCONFIG, DependencyMethods.CONFIG_TOOL, DependencyMethods.SYSTEM}) def curses_factory(env: 'Environment', for_machine: 'mesonlib.MachineChoice', @@ -616,3 +640,5 @@ packages['libssl'] = libssl_factory = DependencyFactory( system_class=OpensslSystemDependency, cmake_class=CMakeDependencyFactory('OpenSSL', modules=['OpenSSL::SSL']), ) + +packages['objfw'] = ObjFWDependency |