Are There Any Dependencies to be Aware of?#
In general, it is recommend that one of the CMakeLists.txt
and/or gradle scripts should be used as a base, because this takes care of all dependencies.
Otherwise, to start from scratch:
All external dependencies are downloaded and/or built as part of CMake and put in the
[SDKROOT]/external
folder. Pre-downloaded versions are usually bundled as well. External dependencies are as follow:GLM (PVRCore and everything else) for vector maths.
PugiXML for XML parsing
GLSLang is used by PVRUtilsVk to allow online shader compilation
moodyCamel::concurrentQueue
for multithreaded producer-consumer queues.
The
[SDKROOT]/include
folder must be added as an include file search path. It contains the API header files and any other headers that are used. As well as the stock Khronos headers for most APIs, it contains PowerVR SDK’s own customDynamicGles.h
,DynamicEgl.h
, andvulkan_wrapper.h
bindings. This is added automatically if including any Framework CMake target.The
[SDKROOT]/framework
folder must be added as an include file search path to access the Framework’s headers. This is added automatically if including any Framework CMake target.The
[SDKROOT]/lib [PLATFORM…]
folder may contain library dependencies of the project files. For example, the PVRScope libraries are located there. This is added automatically if including any Framework CMake target.The Framework library files will be either wherever they were built, or by default, prebuilt would be in
[SDKROOT]/framework/lib/[PLATFORM…]
. As the PowerVR libraries do NOT have a C interface as they expose C++ classes in their API, it is strongly recommended to not use prebuilts. Instead, always build them through CMake with common compilation options with the application.