SDL: cmake: build tests as library on Android

From 1259a607311b9ff592b397315e7af7ad6d8a0dd8 Mon Sep 17 00:00:00 2001
From: Anonymous Maarten <[EMAIL REDACTED]>
Date: Tue, 28 Mar 2023 00:38:07 +0200
Subject: [PATCH] cmake: build tests as library on Android

---
 .github/workflows/android.yml | 2 ++
 test/CMakeLists.txt           | 9 ++++++++-
 2 files changed, 10 insertions(+), 1 deletion(-)

diff --git a/.github/workflows/android.yml b/.github/workflows/android.yml
index 126cf81cb216..2805ebc2cc78 100644
--- a/.github/workflows/android.yml
+++ b/.github/workflows/android.yml
@@ -40,6 +40,8 @@ jobs:
             -Wdeprecated -Wdev -Werror \
             -DCMAKE_TOOLCHAIN_FILE=${{ steps.setup_ndk.outputs.ndk-path }}/build/cmake/android.toolchain.cmake \
             -DSDL_WERROR=ON \
+            -DSDL_TESTS=ON \
+            -DSDL_INSTALL_TESTS=ON \
             -DSDL_CLANG_TIDY=ON \
             -DANDROID_PLATFORM=${{ matrix.platform.android_platform }} \
             -DANDROID_ABI=${{ matrix.platform.android_abi }} \
diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt
index 662a278ad132..b0d83f14129a 100644
--- a/test/CMakeLists.txt
+++ b/test/CMakeLists.txt
@@ -73,7 +73,11 @@ macro(add_sdl_test_executable TARGET)
     if(AST_NEEDS_RESOURCES)
         list(APPEND AST_SOURCES ${RESOURCE_FILES})
     endif()
-    add_executable(${TARGET} ${AST_SOURCES})
+    if(ANDROID)
+        add_library(${TARGET} SHARED ${AST_SOURCES})
+    else()
+        add_executable(${TARGET} ${AST_SOURCES})
+    endif()
     target_link_libraries(${TARGET} PRIVATE SDL3::SDL3_test SDL3::${sdl_name_component})
     if(AST_TESTUTILS)
         target_link_libraries(${TARGET} PRIVATE sdltests_utils)
@@ -204,6 +208,9 @@ add_sdl_test_executable(testgamepad NEEDS_RESOURCES TESTUTILS SOURCES testgamepa
 add_sdl_test_executable(testgeometry TESTUTILS SOURCES testgeometry.c)
 add_sdl_test_executable(testgl SOURCES testgl.c)
 add_sdl_test_executable(testgles SOURCES testgles.c)
+if(ANDROID)
+    target_link_libraries(testgles PRIVATE GLESv1_CM)
+endif()
 add_sdl_test_executable(testgles2 SOURCES testgles2.c)
 add_sdl_test_executable(testgles2_sdf TESTUTILS SOURCES testgles2_sdf.c)
 add_sdl_test_executable(testhaptic SOURCES testhaptic.c)