From a496b9d72b9191dd9c10bad41a30968cbea6a461 Mon Sep 17 00:00:00 2001 From: Gleb Mazovetskiy Date: Thu, 16 Dec 2021 23:42:01 +0000 Subject: [PATCH] Emscripten: Fix assets/ loading --- CMake/platforms/emscripten.cmake | 1 + CMakeLists.txt | 4 ++++ Source/utils/paths.cpp | 4 ++++ 3 files changed, 9 insertions(+) diff --git a/CMake/platforms/emscripten.cmake b/CMake/platforms/emscripten.cmake index a98453003..c5737c081 100644 --- a/CMake/platforms/emscripten.cmake +++ b/CMake/platforms/emscripten.cmake @@ -1,4 +1,5 @@ set(BUILD_TESTING OFF) +set(BUILD_ASSETS_MPQ OFF) set(DISABLE_ZERO_TIER ON) set(DEVILUTIONX_SYSTEM_SDL_AUDIOLIB OFF) set(DEVILUTIONX_SYSTEM_LIBSODIUM OFF) diff --git a/CMakeLists.txt b/CMakeLists.txt index 7ad5d7a1e..0caa875cf 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -448,6 +448,10 @@ else() endif() target_link_libraries(${BIN_TARGET} PRIVATE libdevilutionx) +if(EMSCRIPTEN) + target_link_options(${BIN_TARGET} PRIVATE --preload-file assets) +endif() + if(BUILD_TESTING) if(ENABLE_CODECOVERAGE) if(CMAKE_CXX_COMPILER_ID MATCHES "MSVC") diff --git a/Source/utils/paths.cpp b/Source/utils/paths.cpp index c635531ac..8a5fc8eb7 100644 --- a/Source/utils/paths.cpp +++ b/Source/utils/paths.cpp @@ -91,7 +91,11 @@ const std::string &ConfigPath() const std::string &AssetsPath() { if (!assetsPath) +#if __EMSCRIPTEN__ + assetsPath.emplace("assets/"); +#else assetsPath.emplace(FromSDL(SDL_GetBasePath()) + "assets/"); +#endif return *assetsPath; }