From a90c7cb98562fdb36875c66ee51bba0ef4a7aec8 Mon Sep 17 00:00:00 2001 From: Anonymous Maarten Date: Sun, 23 Nov 2025 01:26:54 +0100 Subject: [PATCH] libweaver: support system library and use latest wip read flags (#735) * Use system libweaver when DOWNLOAD_DEPENDENCIES is disabled * Update to latest libweaver master --- 3rdparty/CMakeLists.txt | 27 ++++++++++++++------------- CMakeLists.txt | 2 ++ extensions/src/siloader.cpp | 4 ++-- 3 files changed, 18 insertions(+), 15 deletions(-) diff --git a/3rdparty/CMakeLists.txt b/3rdparty/CMakeLists.txt index 169e80ed..9d41e2dc 100644 --- a/3rdparty/CMakeLists.txt +++ b/3rdparty/CMakeLists.txt @@ -52,19 +52,20 @@ if(DOWNLOAD_DEPENDENCIES) include(FetchContent) FetchContent_Populate( libweaver - URL https://github.com/isledecomp/SIEdit/archive/ae447259389f3bf8273c7e7a4844743faf7cbdb8.tar.gz - URL_MD5 dee68424fde8db6d5cef3b9034a8151f + URL https://github.com/isledecomp/SIEdit/archive/afd4933844b95ef739a7e77b097deb7efe4ec576.tar.gz + URL_MD5 59fd3c36f4f380f730cd9bedfc846397 ) -else() - set(libweaver_SOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/libweaver") + add_library(libweaver STATIC + ${libweaver_SOURCE_DIR}/lib/core.cpp + ${libweaver_SOURCE_DIR}/lib/file.cpp + ${libweaver_SOURCE_DIR}/lib/interleaf.cpp + ${libweaver_SOURCE_DIR}/lib/object.cpp + ${libweaver_SOURCE_DIR}/lib/sitypes.cpp + ) + add_library(libweaver::libweaver ALIAS libweaver) + target_compile_definitions(libweaver PRIVATE $<$:NOMINMAX>) + target_include_directories(libweaver PUBLIC ${libweaver_SOURCE_DIR}/include/libweaver) + set_property(TARGET libweaver PROPERTY CXX_STANDARD 98) + set_property(TARGET libweaver PROPERTY CXX_STANDARD_REQUIRED ON) endif() -add_library(libweaver STATIC - ${libweaver_SOURCE_DIR}/lib/core.cpp - ${libweaver_SOURCE_DIR}/lib/file.cpp - ${libweaver_SOURCE_DIR}/lib/interleaf.cpp - ${libweaver_SOURCE_DIR}/lib/object.cpp - ${libweaver_SOURCE_DIR}/lib/sitypes.cpp -) -add_library(libweaver::libweaver ALIAS libweaver) -target_include_directories(libweaver PUBLIC ${libweaver_SOURCE_DIR}/lib) diff --git a/CMakeLists.txt b/CMakeLists.txt index da82ecb4..871ddfef 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -135,6 +135,8 @@ else() find_package(iniparser REQUIRED CONFIG COMPONENTS shared) target_link_libraries(Isle::iniparser INTERFACE iniparser-shared) + + find_package(libweaver REQUIRED) endif() set(CMAKE_EXPORT_COMPILE_COMMANDS ON) diff --git a/extensions/src/siloader.cpp b/extensions/src/siloader.cpp index 281aefa5..0768bf1a 100644 --- a/extensions/src/siloader.cpp +++ b/extensions/src/siloader.cpp @@ -242,10 +242,10 @@ bool SiLoader::LoadFile(const char* p_file) MxString path = MxString(MxOmni::GetHD()) + p_file; path.MapPathToFilesystem(); - if (si.Read(path.GetData(), si::Interleaf::ObjectsOnly | si::Interleaf::NoInfo) != si::Interleaf::ERROR_SUCCESS) { + if (si.Read(path.GetData(), si::Interleaf::ObjectsOnly) != si::Interleaf::ERROR_SUCCESS) { path = MxString(MxOmni::GetCD()) + p_file; path.MapPathToFilesystem(); - if (si.Read(path.GetData(), si::Interleaf::ObjectsOnly | si::Interleaf::NoInfo) != + if (si.Read(path.GetData(), si::Interleaf::ObjectsOnly) != si::Interleaf::ERROR_SUCCESS) { SDL_Log("Could not parse SI file %s", p_file); return false;