فهرست منبع

cmake: build emscripten tests as html page

Anonymous Maarten 1 سال پیش
والد
کامیت
1a7a74fb2e
1فایلهای تغییر یافته به همراه12 افزوده شده و 2 حذف شده
  1. 12 2
      test/CMakeLists.txt

+ 12 - 2
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)