From 5d9df629d79458423faf249b952e595ed68d669b Mon Sep 17 00:00:00 2001 From: Pablo Marcos Oltra Date: Fri, 1 Nov 2019 19:09:38 +0100 Subject: [PATCH] Fix generation of web examples (#1007) At least on Linux, CMake seems to add automatically the '-rdynamic' flag. As a result, Emscripten generates a fat HTML file that does not work. Removing it allows HTML+JS+WASM generation. --- examples/CMakeLists.txt | 5 ++++- games/CMakeLists.txt | 5 +++++ 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/examples/CMakeLists.txt b/examples/CMakeLists.txt index e0cf0a868..2879320c4 100644 --- a/examples/CMakeLists.txt +++ b/examples/CMakeLists.txt @@ -85,9 +85,12 @@ elseif(${PLATFORM} MATCHES "Web") # Since WASM is used, ALLOW_MEMORY_GROWTH has no extra overheads set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -s ALLOW_MEMORY_GROWTH=1 --no-heap-copy") set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} --shell-file ${CMAKE_SOURCE_DIR}/src/shell.html") - set(OUTPUT_EXT ".html") + # Remove the -rdynamic flag because otherwise emscripten + # does not generate HTML+JS+WASM files, only a non-working + # and fat HTML + string(REPLACE "-rdynamic" "" CMAKE_SHARED_LIBRARY_LINK_C_FLAGS ${CMAKE_SHARED_LIBRARY_LINK_C_FLAGS}) endif() include_directories(BEFORE SYSTEM others/external/include) diff --git a/games/CMakeLists.txt b/games/CMakeLists.txt index 3ec6cb29f..90a5ed08b 100644 --- a/games/CMakeLists.txt +++ b/games/CMakeLists.txt @@ -10,6 +10,11 @@ if(${PLATFORM} MATCHES "Web") set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Os -s USE_GLFW=3 -s ASSERTIONS=1 -s WASM=1 -s EMTERPRETIFY=1 -s EMTERPRETIFY_ASYNC=1") set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} --shell-file ${CMAKE_SOURCE_DIR}/src/shell.html") set(OUTPUT_EXT ".html") + + # Remove the -rdynamic flag because otherwise emscripten + # does not generate HTML+JS+WASM files, only a non-working + # and fat HTML + string(REPLACE "-rdynamic" "" CMAKE_SHARED_LIBRARY_LINK_C_FLAGS ${CMAKE_SHARED_LIBRARY_LINK_C_FLAGS}) endif() if (NOT TARGET raylib)