cmake: build emscripten tests as html page

This commit is contained in:
Anonymous Maarten 2023-06-03 15:22:39 +02:00 committed by Anonymous Maarten
parent 64d570f027
commit 1a7a74fb2e

View File

@ -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)