Skip to content

dependencies: account for frameworks without a Versions directory#5980

Merged
jpakkane merged 1 commit intomesonbuild:masterfrom
ystreet:system-frameworks
Oct 2, 2019
Merged

dependencies: account for frameworks without a Versions directory#5980
jpakkane merged 1 commit intomesonbuild:masterfrom
ystreet:system-frameworks

Conversation

@ystreet
Copy link
Copy Markdown
Contributor

@ystreet ystreet commented Oct 1, 2019

Most iOS apple system frameworks do not have a Versions directory in them at all.

Fixes the following traceback:

...
  File "/Users/matt/Projects/cerbero/build/build-tools/lib/python3.7/site-packages/meson-0.51.999-py3.7.egg/mesonbuild/interpreter.py", line 3063, in func_dependency
    d = self.dependency_impl(name, display_name, kwargs)
  File "/Users/matt/Projects/cerbero/build/build-tools/lib/python3.7/site-packages/meson-0.51.999-py3.7.egg/mesonbuild/interpreter.py", line 3110, in dependency_impl
    dep = dependencies.find_external_dependency(name, self.environment, kwargs)
  File "/Users/matt/Projects/cerbero/build/build-tools/lib/python3.7/site-packages/meson-0.51.999-py3.7.egg/mesonbuild/dependencies/base.py", line 2142, in find_external_dependency
    d = c()
  File "/Users/matt/Projects/cerbero/build/build-tools/lib/python3.7/site-packages/meson-0.51.999-py3.7.egg/mesonbuild/dependencies/base.py", line 2004, in __init__
    self.detect(name, paths)
  File "/Users/matt/Projects/cerbero/build/build-tools/lib/python3.7/site-packages/meson-0.51.999-py3.7.egg/mesonbuild/dependencies/base.py", line 2035, in detect
    incdir = self._get_framework_include_path(framework_path)
  File "/Users/matt/Projects/cerbero/build/build-tools/lib/python3.7/site-packages/meson-0.51.999-py3.7.egg/mesonbuild/dependencies/base.py", line 2065, in _get_framework_include_path
    self._get_framework_latest_version(path))
  File "/Users/matt/Projects/cerbero/build/build-tools/lib/python3.7/site-packages/meson-0.51.999-py3.7.egg/mesonbuild/dependencies/base.py", line 2057, in _get_framework_latest_version
    return 'Versions/{}/Headers'.format(sorted(versions)[-1]._s)
IndexError: list index out of range

Most apple system frameworks do not have a Versions directory in them at
all.

Fixes the following traceback:

...
  File "/Users/matt/Projects/cerbero/build/build-tools/lib/python3.7/site-packages/meson-0.51.999-py3.7.egg/mesonbuild/interpreter.py", line 3063, in func_dependency
    d = self.dependency_impl(name, display_name, kwargs)
  File "/Users/matt/Projects/cerbero/build/build-tools/lib/python3.7/site-packages/meson-0.51.999-py3.7.egg/mesonbuild/interpreter.py", line 3110, in dependency_impl
    dep = dependencies.find_external_dependency(name, self.environment, kwargs)
  File "/Users/matt/Projects/cerbero/build/build-tools/lib/python3.7/site-packages/meson-0.51.999-py3.7.egg/mesonbuild/dependencies/base.py", line 2142, in find_external_dependency
    d = c()
  File "/Users/matt/Projects/cerbero/build/build-tools/lib/python3.7/site-packages/meson-0.51.999-py3.7.egg/mesonbuild/dependencies/base.py", line 2004, in __init__
    self.detect(name, paths)
  File "/Users/matt/Projects/cerbero/build/build-tools/lib/python3.7/site-packages/meson-0.51.999-py3.7.egg/mesonbuild/dependencies/base.py", line 2035, in detect
    incdir = self._get_framework_include_path(framework_path)
  File "/Users/matt/Projects/cerbero/build/build-tools/lib/python3.7/site-packages/meson-0.51.999-py3.7.egg/mesonbuild/dependencies/base.py", line 2065, in _get_framework_include_path
    self._get_framework_latest_version(path))
  File "/Users/matt/Projects/cerbero/build/build-tools/lib/python3.7/site-packages/meson-0.51.999-py3.7.egg/mesonbuild/dependencies/base.py", line 2057, in _get_framework_latest_version
    return 'Versions/{}/Headers'.format(sorted(versions)[-1]._s)
IndexError: list index out of range
@jpakkane
Copy link
Copy Markdown
Member

jpakkane commented Oct 1, 2019

Can you add a test that uses one of said frameworks so we don't break this in the future?

@ystreet
Copy link
Copy Markdown
Contributor Author

ystreet commented Oct 2, 2019

Do we have testing for iOS? As all the MacOS frameworks have a Versions directory and only one iOS framework does.

@ystreet
Copy link
Copy Markdown
Contributor Author

ystreet commented Oct 2, 2019

@jpakkane
Copy link
Copy Markdown
Member

jpakkane commented Oct 2, 2019

Ah, ok. Thanks.

@jpakkane jpakkane merged commit 8d3fcb3 into mesonbuild:master Oct 2, 2019
@ystreet ystreet deleted the system-frameworks branch October 3, 2019 00:08
@jtojnar jtojnar mentioned this pull request Nov 14, 2019
10 tasks
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants