From ff084037a552ed7ce166416e59ab538bad71d58a Mon Sep 17 00:00:00 2001 From: Janos Pantos Date: Thu, 14 Sep 2017 18:01:28 +0200 Subject: [PATCH] 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 --- renderdoc/CMakeLists.txt | 2 ++ renderdoccmd/CMakeLists.txt | 2 +- .../android/src/org/renderdoc/renderdoccmd/Loader.java | 2 +- scripts/dist.sh | 4 ++-- 4 files changed, 6 insertions(+), 4 deletions(-) diff --git a/renderdoc/CMakeLists.txt b/renderdoc/CMakeLists.txt index 8d7fcc244..3efaa8e98 100644 --- a/renderdoc/CMakeLists.txt +++ b/renderdoc/CMakeLists.txt @@ -319,6 +319,8 @@ endif() if(ANDROID) set_target_properties(renderdoc PROPERTIES LINK_FLAGS "-Wl,--build-id") + # rename output library + set_target_properties(renderdoc PROPERTIES OUTPUT_NAME "VkLayer_GLES_RenderDoc") endif() install (TARGETS renderdoc DESTINATION lib${LIB_SUFFIX}) diff --git a/renderdoccmd/CMakeLists.txt b/renderdoccmd/CMakeLists.txt index 0b44b442c..6ff459095 100644 --- a/renderdoccmd/CMakeLists.txt +++ b/renderdoccmd/CMakeLists.txt @@ -99,7 +99,7 @@ if(ANDROID) COMMAND ${CMAKE_COMMAND} -E make_directory libs/lib/${ANDROID_ABI} COMMAND ${CMAKE_COMMAND} -E make_directory obj COMMAND ${CMAKE_COMMAND} -E make_directory bin - COMMAND ${CMAKE_COMMAND} -E copy $ libs/lib/${ANDROID_ABI}/libVkLayer_GLES_RenderDoc.so + COMMAND ${CMAKE_COMMAND} -E copy $ libs/lib/${ANDROID_ABI}/$ COMMAND ${CMAKE_COMMAND} -E copy $ libs/lib/${ANDROID_ABI}/$ COMMAND ${BUILD_TOOLS}/aapt package -f -m -S res -J src -M AndroidManifest.xml -I ${ANDROID_JAR} COMMAND ${JAVA_BIN}/javac -d ./obj -source 1.7 -target 1.7 -bootclasspath ${RT_JAR} -classpath "${CLASS_PATH}" -sourcepath src src/org/renderdoc/renderdoccmd/*.java diff --git a/renderdoccmd/android/src/org/renderdoc/renderdoccmd/Loader.java b/renderdoccmd/android/src/org/renderdoc/renderdoccmd/Loader.java index 3699b3737..9558c7669 100644 --- a/renderdoccmd/android/src/org/renderdoc/renderdoccmd/Loader.java +++ b/renderdoccmd/android/src/org/renderdoc/renderdoccmd/Loader.java @@ -5,7 +5,7 @@ public class Loader extends android.app.NativeActivity { /* load our native library */ static { - System.loadLibrary("VkLayer_GLES_RenderDoc"); + System.loadLibrary("renderdoccmd"); // this will load VkLayer_GLES_RenderDoc as well } @Override diff --git a/scripts/dist.sh b/scripts/dist.sh index 1350bca84..e06c1bcbd 100644 --- a/scripts/dist.sh +++ b/scripts/dist.sh @@ -59,7 +59,7 @@ if [ -f bin-android32/RenderDocCmd.apk ]; then mkdir -p dist/Release64/android/apk dist/Release64/android/lib/armeabi-v7a cp bin-android32/RenderDocCmd.apk dist/Release64/android/apk - cp bin-android32/librenderdoc.so dist/Release64/android/lib/armeabi-v7a/libVkLayer_GLES_RenderDoc.so + cp bin-android32/libVkLayer_GLES_RenderDoc.so dist/Release64/android/lib/armeabi-v7a/libVkLayer_GLES_RenderDoc.so fi if [ -f bin-android64/RenderDocCmd.apk ]; then @@ -69,7 +69,7 @@ if [ -f bin-android64/RenderDocCmd.apk ]; then mkdir -p dist/Release64/android/lib/arm64-v8a #cp bin-android64/RenderDocCmd.apk dist/Release64/android/apk/64 - cp bin-android64/librenderdoc.so dist/Release64/android/lib/arm64-v8a/libVkLayer_GLES_RenderDoc.so + cp bin-android64/libVkLayer_GLES_RenderDoc.so dist/Release64/android/lib/arm64-v8a/libVkLayer_GLES_RenderDoc.so fi # try to copy adb.exe in as well, with its dll dependencies