From 1a7a74fb2e587e970ce51d2e010799b7dfa364c9 Mon Sep 17 00:00:00 2001
From: Anonymous Maarten <[EMAIL REDACTED]>
Date: Sat, 3 Jun 2023 15:22:39 +0200
Subject: [PATCH] cmake: build emscripten tests as html page
---
test/CMakeLists.txt | 14 ++++++++++++--
1 file changed, 12 insertions(+), 2 deletions(-)
diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt
index 02dffde1a6ef..60ce593a6cd6 100644
--- a/test/CMakeLists.txt
+++ b/test/CMakeLists.txt
@@ -24,7 +24,7 @@ target_link_libraries(sdltests_utils PRIVATE SDL3::Headers)
file(GLOB RESOURCE_FILES *.bmp *.wav *.hex moose.dat utf8.txt)
set(RESOURCE_FILE_NAMES)
-foreach(RESOURCE_FILE ${RESOURCE_FILES})
+foreach(RESOURCE_FILE IN LISTS RESOURCE_FILES)
get_filename_component(res_file_name ${RESOURCE_FILE} NAME)
list(APPEND RESOURCE_FILE_NAMES "${res_file_name}")
endforeach()
@@ -82,6 +82,12 @@ macro(add_sdl_test_executable TARGET)
# Make sure resource files get installed into macOS/iOS .app bundles.
set_target_properties(${TARGET} PROPERTIES RESOURCE "${RESOURCE_FILES}")
endif()
+ if(EMSCRIPTEN)
+ foreach(res IN LISTS RESOURCE_FILES)
+ get_filename_component(res_name "${res}" NAME)
+ target_link_options(${TARGET} PRIVATE "SHELL:--embed-file ${res}@${res_name}")
+ endforeach()
+ endif()
set_property(TARGET ${TARGET} APPEND PROPERTY ADDITIONAL_CLEAN_FILES "$<TARGET_FILE_DIR:${TARGET}>/$<JOIN:${RESOURCE_FILE_NAMES},$<SEMICOLON>$<TARGET_FILE_DIR:${TARGET}>/>")
endif()
if(AST_BUILD_DEPENDENT)
@@ -98,6 +104,10 @@ macro(add_sdl_test_executable TARGET)
target_link_libraries(${TARGET} PRIVATE GL)
endif()
+ if(EMSCRIPTEN)
+ set_property(TARGET ${TARGET} PROPERTY SUFFIX ".html")
+ endif()
+
if(OPENGL_FOUND)
target_compile_definitions(${TARGET} PRIVATE HAVE_OPENGL)
endif()
@@ -212,7 +222,7 @@ 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(testgles2_sdf NEEDS_RESOURCES TESTUTILS SOURCES testgles2_sdf.c)
add_sdl_test_executable(testhaptic SOURCES testhaptic.c)
add_sdl_test_executable(testhotplug SOURCES testhotplug.c)
add_sdl_test_executable(testrumble SOURCES testrumble.c)