Updates:
Status: Unconfirmed
Owner:
tomfine...@google.com
Cc:
johannko...@google.com
Cc: -
tomfine...@google.com
Comment #3 on issue 1106 by
tomfine...@google.com: iOS VPX Framework puts
header files in the wrong directory
https://bugs.chromium.org/p/webm/issues/detail?id=1106#c3
This is exactly what must be done. The point of frameworks in general, and
the reason for VPX.framework's existence aren't necessarily the same.
VPX.framework exists because building libvpx for all the necessary targets
required by iOS/MacOS developers can be tedious, and there are places where
mistakes can be made quite easily. Better to provide a configurable script
that produces the framework than to force developers to handle doing manual
builds for all necessary targets.
Another reason for this layout is that VPX.framework is intended to be able
to be used as a drop in with existing applications that target multiple
platforms (including non-iOS/non-MacOS targets). For example, this
structure allows vpx{dec,enc} to use VPX.framework by adding only an
include path and linker arg. Restructuring the framework the way you'd (and
Apple, but I don't know of docs about this, so I'm guessing) prefer would
mean either include shims or ifdefs in simple apps like vpx{dec,enc}.
> I don't think you can have a header included as vp8/file.h in a framework
> named VPX.framework -- it'd need to be in a framework named VP8.framework.
-- Quote from [3], linked below --
For most frameworks, you can include header files other than the master
header file. You can include any specific header file you want as long as
it is available in the frameworkâs Headers directory.
--
Are there Apple docs stating otherwise somewhere? I'm not aware of any
imposing any structuring restrictions ([1], [2], [3] don't seem to mention
any). Specifically in reference to [3], an argument could be made that
VPX.framework should provide a VPX.h that includes the individual includes
and would hopefully allow users to avoid the framework search paths update.
That could possibly be added, but that's not what this issue is reporting.
Should this issue be titled "VPX.framework does not provide a VPX.h"?
One last note: VPX.framework will always support all the VPx codecs by
default (you are free to disable codecs directly using command line flags;
see iosbuild.sh --help output and the output from libvpx configure.sh
--help).
[1]
https://developer.apple.com/library/mac/documentation/DeveloperTools/Reference/XcodeBuildSettingRef/1-Build_Setting_Reference/build_setting_ref.html
[2]
https://developer.apple.com/library/mac/documentation/MacOSX/Conceptual/BPFrameworks/Concepts/FrameworkAnatomy.html
[3]
https://developer.apple.com/library/mac/documentation/MacOSX/Conceptual/BPFrameworks/Tasks/IncludingFrameworks.html#//apple_ref/doc/uid/20002257-BAJJBBHJ