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//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`