Browse Source

makepanda: Fix assorted Android compile / package issues

rdb 1 year ago
parent
commit
44a41168bc
3 changed files with 7 additions and 2 deletions
  1. 1 1
      makepanda/makepackage.py
  2. 4 1
      makepanda/makepanda.py
  3. 2 0
      makepanda/makepandacore.py

+ 1 - 1
makepanda/makepackage.py

@@ -866,7 +866,7 @@ def MakeInstallerAndroid(version, **kwargs):
         shutil.copy(source, target)
         shutil.copy(source, target)
 
 
         # Walk through the library dependencies.
         # Walk through the library dependencies.
-        handle = subprocess.Popen(['readelf', '--dynamic', target], stdout=subprocess.PIPE)
+        handle = subprocess.Popen(['llvm-readelf', '--dynamic', target], stdout=subprocess.PIPE)
         for line in handle.communicate()[0].splitlines():
         for line in handle.communicate()[0].splitlines():
             # The line will look something like:
             # The line will look something like:
             # 0x0000000000000001 (NEEDED)             Shared library: [libpanda.so]
             # 0x0000000000000001 (NEEDED)             Shared library: [libpanda.so]

+ 4 - 1
makepanda/makepanda.py

@@ -2078,7 +2078,8 @@ def CompileJava(target, src, opts):
     if optlevel >= 4:
     if optlevel >= 4:
         cmd += "-debug:none "
         cmd += "-debug:none "
 
 
-    cmd += "-cp " + GetOutputDir() + "/classes "
+    classpath = BracketNameWithQuotes(SDK["ANDROID_JAR"] + ":" + GetOutputDir() + "/classes")
+    cmd += "-cp " + classpath + " "
     cmd += "-d " + GetOutputDir() + "/classes "
     cmd += "-d " + GetOutputDir() + "/classes "
     cmd += BracketNameWithQuotes(src)
     cmd += BracketNameWithQuotes(src)
     oscmd(cmd)
     oscmd(cmd)
@@ -4916,11 +4917,13 @@ if GetTarget() == 'android':
     TargetAdd('org/panda3d/android/NativeIStream.class', opts=OPTS, input='NativeIStream.java')
     TargetAdd('org/panda3d/android/NativeIStream.class', opts=OPTS, input='NativeIStream.java')
     TargetAdd('org/panda3d/android/NativeOStream.class', opts=OPTS, input='NativeOStream.java')
     TargetAdd('org/panda3d/android/NativeOStream.class', opts=OPTS, input='NativeOStream.java')
     TargetAdd('org/panda3d/android/PandaActivity.class', opts=OPTS, input='PandaActivity.java')
     TargetAdd('org/panda3d/android/PandaActivity.class', opts=OPTS, input='PandaActivity.java')
+    TargetAdd('org/panda3d/android/PandaActivity$1.class', opts=OPTS+['DEPENDENCYONLY'], input='PandaActivity.java')
     TargetAdd('org/panda3d/android/PythonActivity.class', opts=OPTS, input='PythonActivity.java')
     TargetAdd('org/panda3d/android/PythonActivity.class', opts=OPTS, input='PythonActivity.java')
 
 
     TargetAdd('classes.dex', input='org/panda3d/android/NativeIStream.class')
     TargetAdd('classes.dex', input='org/panda3d/android/NativeIStream.class')
     TargetAdd('classes.dex', input='org/panda3d/android/NativeOStream.class')
     TargetAdd('classes.dex', input='org/panda3d/android/NativeOStream.class')
     TargetAdd('classes.dex', input='org/panda3d/android/PandaActivity.class')
     TargetAdd('classes.dex', input='org/panda3d/android/PandaActivity.class')
+    TargetAdd('classes.dex', input='org/panda3d/android/PandaActivity$1.class')
     TargetAdd('classes.dex', input='org/panda3d/android/PythonActivity.class')
     TargetAdd('classes.dex', input='org/panda3d/android/PythonActivity.class')
 
 
     TargetAdd('p3android_composite1.obj', opts=OPTS, input='p3android_composite1.cxx')
     TargetAdd('p3android_composite1.obj', opts=OPTS, input='p3android_composite1.cxx')

+ 2 - 0
makepanda/makepandacore.py

@@ -2615,6 +2615,8 @@ def SdkLocateAndroid():
     # We need to redistribute the C++ standard library.
     # We need to redistribute the C++ standard library.
     stdlibc = os.path.join(ndk_root, 'sources', 'cxx-stl', 'llvm-libc++')
     stdlibc = os.path.join(ndk_root, 'sources', 'cxx-stl', 'llvm-libc++')
     stl_lib = os.path.join(stdlibc, 'libs', abi, 'libc++_shared.so')
     stl_lib = os.path.join(stdlibc, 'libs', abi, 'libc++_shared.so')
+    if not os.path.isfile(stl_lib):
+        stl_lib = os.path.join(prebuilt_dir, 'sysroot', 'usr', 'lib', ANDROID_TRIPLE.rstrip('0123456789'), 'libc++_shared.so')
     CopyFile(os.path.join(GetOutputDir(), 'lib', 'libc++_shared.so'), stl_lib)
     CopyFile(os.path.join(GetOutputDir(), 'lib', 'libc++_shared.so'), stl_lib)
 
 
     # The Android support library polyfills C++ features not available in the
     # The Android support library polyfills C++ features not available in the