Add NSIS plugin support and extraction functionality
- Implemented plugin API in `pluginapi.cpp` and `pluginapi.h` for NSIS integration. - Added resource files `resource.h` and `resource.rc` for versioning and resource management. - Created `ExtractCallbackConsole` class to handle extraction progress and user input. - Developed main extraction logic in `Main.cpp` and `MainAr.cpp` for handling archives. - Introduced user input utilities in `UserInputUtils2.cpp` and `UserInputUtils2.h` for password handling and user prompts. - Added break signal handling in `NSISBreak.cpp` and `NSISBreak.h` for graceful interruption of extraction processes. - Included standard header `StdAfx.h` for precompiled headers and common includes.
This commit is contained in:
+7
-3
@@ -23,14 +23,17 @@ SCRIPTS = {
|
||||
"2026": "tools/legacy/build_plugin_2501_vs2026.py"},
|
||||
"26.00": {"2022": None,
|
||||
"2026": "tools/legacy/build_plugin_2600_vs2026.py"},
|
||||
"zstd": {"2022": None,
|
||||
"2026": "tools/legacy/build_plugin_zstd_vs2026.py"},
|
||||
}
|
||||
|
||||
|
||||
def main() -> int:
|
||||
parser = argparse.ArgumentParser(description="Build nsis7z NSIS plugin")
|
||||
parser.add_argument("--7zip-version", dest="zip_version",
|
||||
choices=["19.00", "25.01", "26.00"], default="26.00",
|
||||
help="7-Zip version to build (default: 26.00)")
|
||||
choices=["19.00", "25.01", "26.00", "zstd"], default="26.00",
|
||||
help="7-Zip version to build (default: 26.00); "
|
||||
"'zstd' uses mcmilk/7-Zip-zstd submodule")
|
||||
parser.add_argument("--toolset", choices=["2022", "2026", "auto"], default="auto",
|
||||
help="Visual Studio toolset version (default: auto)")
|
||||
parser.add_argument("--version", action="store_true",
|
||||
@@ -42,8 +45,9 @@ def main() -> int:
|
||||
return 0
|
||||
|
||||
ver = (ROOT / "VERSION").read_text(encoding="utf-8-sig").strip()
|
||||
zip_label = "7z-ZS" if known.zip_version == "zstd" else f"7z {known.zip_version}"
|
||||
print(f"{Colors.BOLD}{Colors.BRIGHT_CYAN}=== Building ns7zip v{ver} "
|
||||
f"(7z {known.zip_version}) ==={Colors.RESET}")
|
||||
f"({zip_label}) ==={Colors.RESET}")
|
||||
|
||||
toolset = known.toolset
|
||||
if toolset == "auto":
|
||||
|
||||
Reference in New Issue
Block a user