Commit Graph
73 Commits
Author SHA1 Message Date
baldurk 6e3a0201a8 Determine python version from python module directly 2026-03-13 13:07:44 +00:00
Chia-I Wu 4f0e117359 Fix android compile errors on JDK 20+
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.
2026-02-01 03:15:38 +09:00
David McFarland d26f634aeb Pass -rdynamic to renderdoccmd link
This ensures replay marker sym is exported, and matches qrenderdoc.
2025-11-27 20:11:34 +09:00
Aliya Pazylbekova 9ebd796cd8 Remove GGP support 2024-07-08 14:19:42 +01:00
Jacob Thomas 7e976c04a8 Fix 'android-<version>.jar' search path on MacOS
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.
2024-04-15 16:18:15 +01:00
Er2 dcbbcee6a8 Add some fixes. 2023-11-06 14:42:45 +00:00
Er2 86cb3ebf80 Add FreeBSD operating system support. 2023-11-06 14:42:45 +00:00
baldurk 7c1164e060 Tidy up and implement support for self capture on linux 2023-07-31 15:45:32 +01:00
baldurk 0a39b3d6e8 Add a wrap script with env var to work around Android bug. Refs #2651 2022-08-05 16:17:17 +01:00
Robin Liu b06df5dd47 Supress shadow warning for ggp platform. 2022-08-03 17:43:35 +01:00
Jake Turner 1622667bf8 Disable Clang "-Wshadow" for specific files
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
2022-07-21 11:49:49 +01:00
baldurk 6870329a9e Detect java not being in PATH at all, document java PATH requirement 2022-06-30 13:51:26 +01:00
Remi Palandri 0151c5ce88 add explicit folder name to d8 commandline
d8 on cmd/powershell doesn't handle asterisks properly for folders, so replacing it by current ABI folder name
2021-10-11 12:22:40 +01:00
Marijn Suijten 544a8eb51f renderdoccmd: Use Android d8 instead of dx dexer
build-tools 31.0.0 doesn't ship with `dx` anymore, and Android Studio
switched to `d8` back in April 2018 [1].

The fallback for `dx` remains, in case older build-tools are used that
do not support `d8` just yet.

[1]: https://android-developers.googleblog.com/2018/04/android-studio-switching-to-d8-dexer.html
2021-09-21 12:48:06 +01:00
Jake Turner 833a63e639 Add missing renderdoccmd .h file to sources
Helpful for IDE project generation from CMake ie. xcode project
2021-08-24 21:33:51 +01:00
baldurk 4aab637f3f Copy libasan library and wrapper script on android when asan is enabled 2021-06-25 20:17:53 +01:00
baldurk 91db918362 Try to link with ASAN on android when enabled (doesn't seem to work) 2021-06-25 18:28:03 +01:00
Jake Turner f3b6e38db4 Apple implementation of DisplayRendererPreview 2021-04-07 11:54:46 +01:00
Ricardo Quesada cd5d0ede44 RenderdocCmd: add x86/x86_64 support for APKs
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.
2021-03-30 15:14:44 +01:00
baldurk 72095ff35c Update cmake strip scripts on android to work with latest NDK 2021-03-26 16:55:27 +00:00
baldurk 7c73e31050 Fix path separators on windows just in case 2021-03-23 12:56:59 +00:00
baldurk 79e42bc365 Compile android_native_app_glue.c as C
* It doesn't compile as C++ in latest compilers so we can't include it in-line
  in the C++ source
2021-03-23 12:56:41 +00:00
baldurk 6a0dff050c Try to unbreak broken android cmake flags
* 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.
2021-03-23 12:24:54 +00:00
Jake Turner 9c787bd05d Tidyup the Apple RPATH usage
Use @rpath for build and install to reference dynamic libraries
Set RPATH to "@executable_path/../lib" when linking
2021-03-14 11:17:31 +00:00
sebastianpick c700204037 Ensure CMAKE_EXE_LINKER_FLAGS are included during linking. 2021-02-18 15:41:18 +00:00
baldurk 6803f32ab8 Print a message when stripping android libraries, and keep unstripped 2020-12-05 09:57:40 +00:00
baldurk 36f16b9998 Add --build-id link parameters on GGP 2020-04-13 13:55:37 +01:00
baldurk 936e6372cb Remove use of 3rdparty/ prefix from includes
* 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.
2020-03-11 18:00:53 +00:00
baldurk 560a9669f2 Log java versions in both PATH and under JAVA_HOME 2020-01-27 20:45:08 +00:00
baldurk 37f762a08f Use renderdoc-specific name for keystore alias on android 2020-01-07 17:28:17 +00:00
baldurk 98e93d282d Make keystore generation an explicit dependency of apk build 2019-07-22 19:26:48 +01:00
baldurk 853189a3f3 Java is required for android builds 2019-07-01 14:56:24 +01:00
baldurk 38f0d27901 Use configure_file in CMake to force rebuild if git commit changes
* 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.
2019-06-20 19:14:14 +01:00
Aliya Pazylbekova 7c0365679f Add GGP build support
- 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
2019-03-14 01:23:11 +00:00
baldurk 34a97482dd Add helper shortcut to 'renderdoccmd test' to run functional tests
* 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
2019-02-14 15:45:22 +00:00
baldurk b5a6e815b9 Locate android SDK/NDK up front from various env vars before building
* 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.
2019-02-04 18:06:10 +00:00
baldurk 609b447855 Check that when building for android that Java >= 1.8 is in the PATH
* This is independent of what JAVA_HOME points to, because some of the android
  tools just run 'java' without checking it.
2018-10-24 10:29:52 +01:00
baldurk fb23f6ad1d Add check for ANDROID_NDK, and error if not set when building android 2018-09-25 15:50:11 +01:00
baldurk 5b07a48479 Switch android build to use NDK-provided cmake file
* 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.
2018-09-25 15:09:54 +01:00
baldurk 0092e5ced2 Append link flags in cmake on android instead of replacing
* Thanks to @Themaister for this fix
2018-09-25 15:09:54 +01:00
baldurk 4040429fba Remove unnecessary link against libGL/libEGL in renderdoccmd
* This means it's easier to build with GLES support by default
2018-07-06 22:44:26 +01:00
baldurk 35865efef2 Always use git commit hash to identify android build
* This prevents reinstall issues if the UI is looking for a plain major/
  minor versionName and the apk was built with a commit hash.
2018-04-04 16:52:44 +01:00
baldurk ec7b2807d0 Build each architecture into its own APK
* This means we can have all the architectures we care about installed,
  and load the right library regardless of what the app does.
2018-01-26 21:19:16 +00:00
baldurk dea21b20a0 Remove global GIT_COMMIT_HASH define, use GitVersionHash global var
* 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.
2018-01-16 20:17:53 +00:00
baldurk 8c5f14436f Add cmake option to strip the output of android builds 2017-12-15 17:33:56 +00:00
baldurk 1992183e8e Add support for specifying a subfolder under the lib/ target. Refs #750
* 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.
2017-09-26 11:00:17 +01:00
Cody Northrop 2b1bc02a22 android: Set versionName and versionCode during build
This will allow us to determine the status of the installed
server before using it.
2017-09-15 12:17:58 -07:00
Janos Pantos ff084037a5 Fix detecting renderdoccmd as a replay application on android
* 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
2017-09-15 12:17:21 -07:00
Cody Northrop e819035f9e cmake: Update javac classpath to work on Windows 2017-08-17 09:53:40 +01:00
Cody Northrop fc316d5ba0 cmake: Add control over Android build-tools version
Specify -DANDROID_BUILD_TOOLS_VERSION=<foo> to change from the
default of 26.0.1.

Also respect the selected Android platform version.
2017-08-17 09:53:39 +01:00