PowerVR Framework Libraries

General information on building the Framework's modules and demos

All the PowerVR Framework libraries are provided as source code and compiled by default as static libraries. It is theoretically possible to configure these as dynamic libraries (such as .dll/.so) to allow dynamic binding, but no such attempt has been done in the SDK.

CMake is used to build the PowerVR SDK demos and Framework modules. The demos depend on the Framework, so developers can use CMake on the demo they are interested in, and it will build everything required. Top-level CMakeLists that build the entire SDK are also provided as it does not take that long to build – generally a few minutes.

The Framework is a high-level C++ project, so no sterilised C APIs exist. This means that the libraries and the final executable should always be compiled with the same compiler make/version with compatible parameters, to ensure that C++ rules such as the One Definition Rule (ODR) is observed. This is one of the reasons a common .cmake is provided. It is used by both the examples and the Framework. The compilers must use the same C++ name mangling rules and other details, otherwise the behaviour may be unexpected.

The provided CMake files place Framework library files into:

[SDKROOT]/framework/lib/[PLATFORM,CONFIG...]/

For example:

c:\Imagination\PowerVR_SDK\Framework\bin\Windows_x86_64\Debug\PVRVk.lib

or:

//home/myself/PowerVR_SDK/Framework/bin/Linux_x86_64/Debug_X11/libPVRVk.a

Using CMake targets to link to the Framework means that this path will be automatically used as required when linking against the Framework targets from the application's CMakeLists.txt.

target_link_libraries(MyApplication PVRCore PVRShell PVRUtilsVk)