diff -ru a/CMakeLists.txt b/CMakeLists.txt --- a/CMakeLists.txt 2026-07-31 13:25:14.739711912 +0200 +++ b/CMakeLists.txt 2026-07-31 13:25:29.283619378 +0200 @@ -2,11 +2,22 @@ project(gl4es LANGUAGES C) +# questshock: on Android this project is add_subdirectory()'d straight into +# the engine's own CMake configure (see android/engine-patches/ +# 02-android-opengl-es.patch), not built standalone - CMAKE_SOURCE_DIR then +# points at the *outer* project's root, not here, so writing there would +# scatter build output outside this project entirely. Leaving these unset +# for Android just falls back to CMake's normal per-target build-tree +# output, which AGP's own native-build packaging finds regardless of path; +# link_directories() is also unneeded there since the GL/EGL targets link +# each other by CMake target name, not by search path. +if(NOT ANDROID) set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_SOURCE_DIR}/bin) set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_SOURCE_DIR}/lib) set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_SOURCE_DIR}/lib) link_directories(${CMAKE_LIBRARY_OUTPUT_DIRECTORY}) +endif() option(PANDORA "Set to ON if targeting an OpenPandora device" ${PANDORA}) option(PYRA "Set to ON if targeting an Dragonbox Pyra device" ${PYRA}) diff -ru a/src/CMakeLists.txt b/src/CMakeLists.txt --- a/src/CMakeLists.txt 2026-07-31 13:25:14.747711861 +0200 +++ b/src/CMakeLists.txt 2026-07-31 13:25:44.043526054 +0200 @@ -220,7 +220,16 @@ target_link_libraries(GL ${log-lib}) endif() - if(CMAKE_SHARED_LIBRARY_SUFFIX MATCHES ".so") + # questshock: on Android, AGP's native-build packaging only bundles a + # jniLibs .so whose *filename* literally ends in ".so" (and the dynamic + # linker resolves NEEDED entries by embedded SONAME, which CMake derives + # from this same filename) - versioning it to "libGL.so.1" like the + # desktop build does would need a separate patchelf rename step, which + # only build-image's Docker environment could guarantee has this tool. + # Skipping the override on Android instead so CMake's own default + # SHARED library naming (plain "libGL.so", correct SONAME included) + # already comes out right with no extra step. + if(CMAKE_SHARED_LIBRARY_SUFFIX MATCHES ".so" AND NOT ANDROID) set_target_properties(GL PROPERTIES SUFFIX ".so.1") endif() install(TARGETS GL