SDL: Convert the test executables to AIF in RISC OS CMake builds

From 83ae1b4987227e9580e32c8c87e92732e8d7edb3 Mon Sep 17 00:00:00 2001
From: Cameron Cawley <[EMAIL REDACTED]>
Date: Thu, 19 May 2022 23:11:22 +0100
Subject: [PATCH] Convert the test executables to AIF in RISC OS CMake builds

---
 test/CMakeLists.txt | 29 +++++++++++++++++++++++++----
 1 file changed, 25 insertions(+), 4 deletions(-)

diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt
index 3738bf130e3..da3482b1c33 100644
--- a/test/CMakeLists.txt
+++ b/test/CMakeLists.txt
@@ -386,6 +386,20 @@ if(PSP)
     endforeach()
 endif()
 
+if(RISCOS)
+    set(ALL_TESTS_AIF "")
+    foreach(APP IN LISTS ALL_TESTS)
+        target_link_options(${APP} PRIVATE -static)
+        add_custom_command(
+            OUTPUT ${APP},ff8
+            COMMAND elf2aif ${APP} ${APP},ff8
+            DEPENDS ${APP}
+        )
+        add_custom_target(${APP}-aif ALL DEPENDS ${APP},ff8)
+        list(APPEND ALL_TESTS_AIF ${CMAKE_CURRENT_BINARY_DIR}/${APP},ff8)
+    endforeach()
+endif()
+
 foreach(APP IN LISTS NEEDS_RESOURCES)
     foreach(RESOURCE_FILE ${RESOURCE_FILES})
         if(PSP)
@@ -450,10 +464,17 @@ foreach(TESTCASE ${NONINTERACTIVE} ${NEEDS_AUDIO} ${NEEDS_DISPLAY})
 endforeach()
 
 if(SDL_INSTALL_TESTS)
-    install(
-        TARGETS ${ALL_TESTS}
-        DESTINATION ${CMAKE_INSTALL_LIBEXECDIR}/installed-tests/SDL2
-    )
+    if(RISCOS)
+        install(
+            FILES ${ALL_TESTS_AIF}
+            DESTINATION ${CMAKE_INSTALL_LIBEXECDIR}/installed-tests/SDL2
+        )
+    else()
+        install(
+            TARGETS ${ALL_TESTS}
+            DESTINATION ${CMAKE_INSTALL_LIBEXECDIR}/installed-tests/SDL2
+        )
+    endif()
     install(
         FILES ${RESOURCE_FILES}
         DESTINATION ${CMAKE_INSTALL_LIBEXECDIR}/installed-tests/SDL2