diff --git a/tools/legacy/build_plugin_2600_vs2026.py b/tools/legacy/build_plugin_2600_vs2026.py index 4c5128a..1e5c639 100644 --- a/tools/legacy/build_plugin_2600_vs2026.py +++ b/tools/legacy/build_plugin_2600_vs2026.py @@ -200,7 +200,7 @@ def find_msbuild(vs_version: str = 'auto') -> 'Optional[Tuple[Path, str, str]]': def get_project_paths(toolset: str = 'v145') -> Tuple[Path, Path, Path]: """Get project directory, project file, and plugins directory""" script_dir = Path(__file__).parent.absolute() - project_dir = script_dir.parent.parent / 'versions' / '26.00' + project_dir = script_dir.parent.parent / 'versions' / '26.00-bundle' vcxproj = 'Nsis7z_vs2026.vcxproj' if toolset == 'v145' else 'Nsis7z.vcxproj' project_file = project_dir / 'CPP' / '7zip' / 'Bundles' / 'Nsis7z' / vcxproj plugins_dir = script_dir.parent.parent / 'plugins' diff --git a/tools/linux/build_plugin_linux.py b/tools/linux/build_plugin_linux.py index 034f269..73b1f90 100644 --- a/tools/linux/build_plugin_linux.py +++ b/tools/linux/build_plugin_linux.py @@ -24,10 +24,14 @@ BUILD_DIR = ROOT / "_linux_build" SUPPORTED = {"25.01", "26.00", "26.01", "zstd"} -# For 25.01/26.00 the vendor bundle dir already contains our wrapper .cpp -# files alongside the upstream 7-zip sources. make is run with -C pointing -# there so relative paths (../../UI/…) resolve correctly, but the makefile -# itself comes from OVERLAY and the output objects go to BUILD_DIR. +# For 25.01 the vendor bundle dir already contains our wrapper .cpp files +# alongside the upstream 7-zip sources. make is run with -C pointing there so +# relative paths (../../UI/…) resolve correctly, but the makefile itself comes +# from OVERLAY and the output objects go to BUILD_DIR. +# +# For 26.00, 26.01: the upstream vendor does NOT ship a Nsis7z bundle, so a +# *-bundle wrapper directory mirrors the vendor tree via symlinks and provides +# project-owned sources (NSIS UI, wrapper cpp files, vcxproj). # # For zstd the 7-zip C++ sources live in the 7-zip-zstd submodule while our # NSIS wrapper sits in versions/zstd/. make is run with -C pointing to the @@ -40,7 +44,7 @@ VERSION_LAYOUT = { }, "26.00": { "vendor_7zip": ROOT / "versions" / "26.00" / "CPP" / "7zip", - "bundle_dir": ROOT / "versions" / "26.00" / "CPP" / "7zip" / "Bundles" / "Nsis7z", + "bundle_dir": ROOT / "versions" / "26.00-bundle" / "CPP" / "7zip" / "Bundles" / "Nsis7z", }, "26.01": { "vendor_7zip": ROOT / "versions" / "26.01" / "CPP" / "7zip", diff --git a/tools/linux/setup_26_01_bundle_symlinks.py b/tools/linux/setup_26_01_bundle_symlinks.py index f64be24..20e5a1f 100644 --- a/tools/linux/setup_26_01_bundle_symlinks.py +++ b/tools/linux/setup_26_01_bundle_symlinks.py @@ -4,10 +4,20 @@ import os from pathlib import Path ROOT = Path(__file__).resolve().parents[2] -bundle_7zip = ROOT / "versions/26.01-bundle/CPP/7zip" -vendor_7zip = ROOT / "versions/26.01/CPP/7zip" -bundle_cpp = ROOT / "versions/26.01-bundle/CPP" -vendor_cpp = ROOT / "versions/26.01/CPP" +bundle_root = ROOT / "versions/26.01-bundle" +vendor_root = ROOT / "versions/26.01" +bundle_7zip = bundle_root / "CPP/7zip" +vendor_7zip = vendor_root / "CPP/7zip" +bundle_cpp = bundle_root / "CPP" +vendor_cpp = vendor_root / "CPP" + +# Root-level symlinks: C and Asm +for name in ("C", "Asm"): + target = bundle_root / name + if not target.exists() and not target.is_symlink(): + rel = os.path.relpath(vendor_root / name, bundle_root) + os.symlink(rel, target) + print(f" symlink: {target.relative_to(ROOT)} -> {rel}") for item in vendor_7zip.iterdir(): target = bundle_7zip / item.name