Forum Discussion

🚨 This forum is archived and read-only. To submit a forum post, please visit our new Developer Forum. 🚨
matte's avatar
matte
Honored Guest
10 years ago

Mac OS X SDK 0.5.0.1 framework vs library?

Hi,

I'm trying to update my app on Mac OS X to the new 0.5.0.1 version in Xcode, and running into a lot of issues. I noticed that the SDK now comes with a framework included, which seems like it will make things easier, but I'm still a bit unclear on how these are supposed to be used.

I see that the framework exists for LibOVR, but not LibOVRKernel. The included OculusWorldDemo example Xcode project file includes the LibOVR framework, but also manually includes headers from LibOVR/include and LibOVRKernel/Src. It also directly has LibOVR/Lib and LibOVRKernel/Lib in the library search path.

Is the aim for the minimum required to be just referencing the framework in an Xcode project? It seems the the libOVRKernel contains a bunch of helper code that's used in some of the examples. Are there plans to make the LibOVRKernel a framework too?

1 Reply

  • "matte" wrote:
    I see that the framework exists for LibOVR, but not LibOVRKernel.


    LibOVR is really just a shim that opens a shared library provided by the runtime. LibOVRKernel is the code that's used to build the shared library itself, but it's not needed by an application.


    "matte" wrote:
    The included OculusWorldDemo example Xcode project file includes the LibOVR framework, but also manually includes headers from LibOVR/include and LibOVRKernel/Src. It also directly has LibOVR/Lib and LibOVRKernel/Lib in the library search path.


    Yes, the framework headers are borked. See this thread: viewtopic.php?f=34&t=21852

    If Oculus were using the framework headers alone, their code wouldn't compile.

    "matte" wrote:
    It seems the the libOVRKernel contains a bunch of helper code that's used in some of the examples. Are there plans to make the LibOVRKernel a framework too?


    Oculus has had a tendency to re-use their internal SDK codebase to build their examples, which is a really really bad practice, because it makes it very hard to tell what code is the public API, and what code is them wanking (as opposed to writing something from scratch that serves as a suitable example). They're getting better about it, but the 0.5 release still has issues in this regard.