Java 7 support was dropped since JDK 20. We should be able to target
Java 8 without compatibility concerns because we run the bytecode
through dex which desugars (or fails at build time which does not
happen). But to be on the safe side, print a warning.
The renderdoccmd android build assumes all files in '${ANDROID_SDK_ROOT_PATH}/platforms' are valid 'android-<version>.jar' platform libraries. Unfortunately because MacOS litters its directories with metadata files called .DS_Store, that file actually wins this sorting logic and is incorrectly selected.
This fixes the lib search logic to only consider android libraries.
3rdParty source files and some renderdoc files which include 3rdparty header files
Disable "-Wshadow" for the whole of qrenderdoc render_python.cxx triggers the warning
This commit adds x86/x86_64 support for RenderdocCmd APKs for Android.
This is needed mostly to support Chromebook devices. Many of them are
based on x86_64 CPUs.
* cmake's built in platforms/Android.cmake for some reason sets
CMAKE_FIND_USE_SYSTEM_ENVIRONMENT_PATH to OFF which prevents any subsequent
find_program or find_package from locating any executables in the system PATH.
This can break finding java among other things.
* We instead always have 3rdparty/ in the relevant include search paths and rely
on that. Each library still has its own unique base dir within 3rdparty to
clarify where the include is coming from.
* We also only use GIT_COMMIT_HASH where necessary to avoid rebuilding many
files for no reason, including splitting version.cpp out into a separate
project as we do with VS since otherwise changing its preprocessor defines
rebuilds the whole renderdoc project.
* At the same time, move the git hash to be internal only so we don't have to
try to link version.cpp into other projects like renderdoccmd or qrenderdoc.
- Disable GL and GLES drivers on GGP
- Add flags to keep symbols in release builds. Adds
minimal debug info that preserves backtraces.
- Disable python modules and qrenderdoc for GGP
* This invokes run_tests.py with any arguments but specifies the renderdoc
module and python module paths automatically. Only works if built within the
project repo itself as otherwise it won't locate the test script
* We need to locate it before setting the toolchain file, so checking when
building renderdoccmd is too late. This also lets us print where the SDK/NDK
is found, and add error messages if we don't locate it properly.
* The existing android cmake file doesn't work with newer NDK releases, so we
have to use the provided cmake file. It should work in NDKs as far back as
version 14.
* On windows, the change in a global GIT_COMMIT_HASH define in each
project needing it meant a full rebuild every time the commit changed.
* Ideally we'd set the define only on one file in each project, but
MSBuild doesn't seem to support that. Instead we make a new tiny
project that compiles a single cpp exporting a global var, and
reference that global var in each other project.
* This allows a buidler to customise from e.g. /usr/lib/librenderdoc.so
to /usr/lib/renderdoc/librenderdoc.so - which is harmless since the
library is 'private' and not intended to be linked against directly.
* Force loading librenderdoccmd.so in the Loader
* Build renderdoc as libVkLayer_GLES_RenderDoc.so, link renderdoccmd
against it, otherwise we will get UnsatisfiedLinkError when running