summaryrefslogtreecommitdiff
path: root/archived/projt-launcher/docs/handbook/quazip.md
diff options
context:
space:
mode:
Diffstat (limited to 'archived/projt-launcher/docs/handbook/quazip.md')
-rw-r--r--archived/projt-launcher/docs/handbook/quazip.md149
1 files changed, 149 insertions, 0 deletions
diff --git a/archived/projt-launcher/docs/handbook/quazip.md b/archived/projt-launcher/docs/handbook/quazip.md
new file mode 100644
index 0000000000..db150433a3
--- /dev/null
+++ b/archived/projt-launcher/docs/handbook/quazip.md
@@ -0,0 +1,149 @@
+# QuaZip `quazip/`
+
+> **Type**: ZIP Archive Library (Qt C++ Wrapper)
+> **License**: LGPL-2.1-or-later
+> **Fork Origin**: [GitHub](https://github.com/stachenov/quazip)
+> **Status**: Detached Fork (independently maintained)
+> **Dependencies**: Qt 5/6, zlib
+> **Latest Version**: 0.0.5-1
+
+[![CI](https://github.com/Project-Tick/ProjT-Launcher/actions/workflows/ci-new.yml/badge.svg?branch=develop)](https://github.com/Project-Tick/ProjT-Launcher/actions/workflows/ci-new.yml)
+
+---
+
+## Overview
+
+QuaZip is the C++ wrapper for Gilles Vollant's ZIP/UNZIP package (Minizip) using the Qt library. If you need to write files to a ZIP archive or read files from one using the `QIODevice` API, QuaZip is the tool you need.
+
+---
+
+## Usage in ProjT Launcher
+
+QuaZip is used for:
+
+- **Mod installation** — Extracting mod archives
+- **Modpack handling** — Processing CurseForge/Modrinth packs
+- **Resource packs** — Managing Minecraft resource packs
+- **Backup/restore** — Creating instance backups
+
+---
+
+## Features
+
+| Feature | Status |
+|---------|--------|
+| Read/Write ZIP files | ✅ |
+| Qt stream integration (`QIODevice`) | ✅ |
+| Unicode filename support | ✅ |
+| ZIP64 support (files > 4GB) | ✅ |
+| BZIP2 compression | ✅ |
+| Password protection (read) | ✅ |
+
+---
+
+## Documentation
+
+| Resource | Description |
+|----------|-------------|
+| [Migration Guide](../../quazip/QuaZip-1.x-migration.md) | Migration guide to QuaZip 1.x |
+| [Online Docs](https://projecttick.org/projtlauncher/wiki/) | Full documentation |
+| `quazip/qztest/` | Test suite and examples |
+
+---
+
+## Build Instructions
+
+### Prerequisites
+
+- **Qt 5.12+** or **Qt 6.x**
+- **zlib** (or Qt's bundled zlib)
+- **CMake 3.15+**
+- **libbz2** (optional, for BZIP2 support)
+
+### Linux
+
+```bash
+sudo apt-get install libbz2-dev
+cmake -B build
+cmake --build build
+```
+
+### Windows
+
+When using Qt online installer with MSVC, select `MSVC 20XY 64-bit` and under additional libraries, select `Qt 5 Compatibility Module`. Add `C:\Qt\6.8.2\msvc20XY_64` to your PATH.
+
+#### Using vcpkg (x64)
+
+```bat
+cmake --preset vcpkg
+cmake --build build --config Release
+```
+
+#### Using Conan v2 (x64)
+
+```bat
+conan install . -of build -s build_type=Release -o *:shared=False --build=missing
+cmake --preset conan
+cmake --build build --config Release
+```
+
+### Complete Build Workflow
+
+```bash
+cmake -B build -DQUAZIP_QT_MAJOR_VERSION=6 -DBUILD_SHARED_LIBS=ON -DQUAZIP_ENABLE_TESTS=ON
+cmake --build build --config Release
+sudo cmake --install build
+cd build && ctest --verbose -C Release
+```
+
+---
+
+## CMake Options
+
+| Option | Description | Default |
+|--------|-------------|---------|
+| `QUAZIP_QT_MAJOR_VERSION` | Qt version to search for (5 or 6) | Auto-detect |
+| `BUILD_SHARED_LIBS` | Build as shared library | `ON` |
+| `QUAZIP_LIB_FILE_NAME` | Output library name | `quazip<ver>-qt<ver>` |
+| `QUAZIP_INSTALL` | Enable installation | `ON` |
+| `QUAZIP_USE_QT_ZLIB` | Use Qt's bundled zlib (not recommended) | `OFF` |
+| `QUAZIP_ENABLE_TESTS` | Build test suite | `OFF` |
+| `QUAZIP_BZIP2` | Enable BZIP2 compression | `ON` |
+| `QUAZIP_BZIP2_STDIO` | Output BZIP2 errors to stdio | `ON` |
+| `QUAZIP_ENABLE_QTEXTCODEC` | Enable QTextCodec on Qt6 | `ON` |
+
+---
+
+## Copyright & Licensing
+
+```
+Copyright (C) 2005-2020 Sergey A. Tachenov and contributors
+```
+
+Distributed under **LGPL-2.1-or-later**. See `quazip/COPYING` for details.
+
+Original ZIP package is copyrighted by Gilles Vollant (zlib license).
+
+---
+
+## Contributing
+
+- **Report bugs**: [GitHub Issues](https://github.com/Project-Tick/ProjT-Launcher/issues)
+- **Contribute code**: See [CONTRIBUTING.md](../../CONTRIBUTING.md)
+- **Migration guide**: `quazip/QuaZip-1.x-migration.md`
+
+---
+
+## Related Documentation
+
+- [zlib](./zlib.md) — Underlying compression library
+- [bzip2](./bzip2.md) — BZIP2 compression support
+- [Third-party Libraries](./third-party.md) — All dependencies
+
+---
+
+## External Links
+
+- [QuaZip GitHub](https://github.com/stachenov/quazip)
+- [Minizip](http://www.winimage.com/zLibDll/minizip.html)
+- [Qt Documentation](https://doc.qt.io/)