| This is the source code for the OpenVR API client binding library which connects |
| OpenVR applications to the SteamVR runtime, taking into account the version |
| of the OpenVR interface they were compiled against. |
| |
| The client binding library - openvr_api.dll on Windows, openvr_api.so on |
| Linux, and openvr_api.dylib or OpenVR.framework on macOS - knows how to find |
| and read the SteamVR runtime installation information which allows it to |
| find and dynamically connect to the installed runtime. In combination with the |
| interface version identifiers from /include/openvr.h which are baked |
| into applications at the time they are built, the OpenVR API client |
| binding library captures and conveys to the SteamVR runtime the version |
| of the OpenVR API interface behavior that the application expects. |
| |
| Applications carry with them a private/local copy of the client binding |
| library when they ship, and they should install it locally to their |
| application. Applications should not install the client binding library |
| globally or attempt to link to a globally installed client binding library. |
| Doing so negates at least part of the ability for the client binding library |
| to accurately reflect the version of the OpenVR API that the application |
| was built against, and so hinders compatibility support in the face of |
| API changes. |
| |
| Most applications should simply link to and redistribute with their application |
| the pre-built client binding library found in the /bin directory of this |
| repository. Some small number of applications which have specific requirements |
| around redistributing only binaries they build themselves should build |
| the client library from this source and either statically link it into |
| their application or redistribute the binary they build. |
| |
| This is a cmake project, to build it use the version of cmake appropriate |
| for your platform. For example, to build on a POSIX system simply perform |
| |
| cd src; mkdir _build; cd _build; cmake ..; make |
| |
| and you will end up with the static library /src/bin/<arch>/libopenvr_api.a |
| |
| To build a shared library, pass -DBUILD_SHARED=1 to cmake. |
| To build as a framework on apple platforms, pass -DBUILD_FRAMEWORK=1 to cmake. |
| To see a complete list of configurable build options, use `cmake -LAH` |