Bundle LZMA SDK for .edz extraction; drop 7z CLI dependency (M3)

Replaces the QProcess->7z shim with the public-domain LZMA SDK (23.01) 7-Zip
reader, vendored under sources/import/edz/lzma/ (decode-only subset). New
edzsevenzip.cpp wraps SzArEx_Open/SzArEx_Extract and writes entries via Qt, so
EdzArchive no longer needs an external 7-Zip at runtime. Enables the C language
in CMake for the vendored sources.

Verified: the bundled decoder extracts all three ifm sample .edz and the
generated elements still match the Python oracle exactly (byte-correct decode),
with no 7z on the path.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
Shane Ringrose
2026-06-20 07:49:14 +12:00
parent f4ff6c81f9
commit e4b4ba875b
64 changed files with 14706 additions and 83 deletions
+20
View File
@@ -115,6 +115,26 @@ set(QET_SRC_FILES
${QET_DIR}/sources/import/edz/edzelementbuilder.h
${QET_DIR}/sources/import/edz/edzimporter.cpp
${QET_DIR}/sources/import/edz/edzimporter.h
${QET_DIR}/sources/import/edz/edzsevenzip.cpp
${QET_DIR}/sources/import/edz/edzsevenzip.h
${QET_DIR}/sources/import/edz/lzma/7zAlloc.c
${QET_DIR}/sources/import/edz/lzma/7zArcIn.c
${QET_DIR}/sources/import/edz/lzma/7zBuf.c
${QET_DIR}/sources/import/edz/lzma/7zCrc.c
${QET_DIR}/sources/import/edz/lzma/7zCrcOpt.c
${QET_DIR}/sources/import/edz/lzma/7zDec.c
${QET_DIR}/sources/import/edz/lzma/7zFile.c
${QET_DIR}/sources/import/edz/lzma/7zStream.c
${QET_DIR}/sources/import/edz/lzma/Bcj2.c
${QET_DIR}/sources/import/edz/lzma/Bra.c
${QET_DIR}/sources/import/edz/lzma/Bra86.c
${QET_DIR}/sources/import/edz/lzma/BraIA64.c
${QET_DIR}/sources/import/edz/lzma/CpuArch.c
${QET_DIR}/sources/import/edz/lzma/Delta.c
${QET_DIR}/sources/import/edz/lzma/Lzma2Dec.c
${QET_DIR}/sources/import/edz/lzma/LzmaDec.c
${QET_DIR}/sources/import/edz/lzma/Ppmd7.c
${QET_DIR}/sources/import/edz/lzma/Ppmd7Dec.c
${QET_DIR}/sources/borderproperties.cpp
${QET_DIR}/sources/borderproperties.h
${QET_DIR}/sources/bordertitleblock.cpp