diff --git a/README.example.md b/README.example.md index ecaf502..3cf6b53 100644 --- a/README.example.md +++ b/README.example.md @@ -51,24 +51,14 @@ macOS brew install ninja ``` -- Install [wine-crossover](https://github.com/Gcenx/homebrew-wine): - - ```sh - brew install --cask --no-quarantine gcenx/wine/wine-crossover - ``` - -After OS upgrades, if macOS complains about `Wine Crossover.app` being unverified, you can unquarantine it using: - -```sh -sudo xattr -rd com.apple.quarantine '/Applications/Wine Crossover.app' -``` +[wibo](https://github.com/decompals/wibo), a minimal 32-bit Windows binary wrapper, will be automatically downloaded and used. Linux ------ - Install [ninja](https://github.com/ninja-build/ninja/wiki/Pre-built-Ninja-packages). -- For non-x86(_64) platforms: Install wine from your package manager. - - For x86(_64), [wibo](https://github.com/decompals/wibo), a minimal 32-bit Windows binary wrapper, will be automatically downloaded and used. + +[wibo](https://github.com/decompals/wibo), a minimal 32-bit Windows binary wrapper, will be automatically downloaded and used. Building ======== diff --git a/configure.py b/configure.py index bfbc5e6..ff59d36 100755 --- a/configure.py +++ b/configure.py @@ -159,9 +159,9 @@ if not config.non_matching: config.binutils_tag = "2.42-1" config.compilers_tag = "20250812" config.dtk_tag = "v1.6.2" -config.objdiff_tag = "v3.0.0-beta.14" -config.sjiswrap_tag = "v1.2.1" -config.wibo_tag = "0.7.0" +config.objdiff_tag = "v3.3.1" +config.sjiswrap_tag = "v1.2.2" +config.wibo_tag = "1.0.0-beta.3" # Project config.config_path = Path("config") / config.version / "config.yml" diff --git a/docs/dependencies.md b/docs/dependencies.md index 62206a8..2f584ad 100644 --- a/docs/dependencies.md +++ b/docs/dependencies.md @@ -21,21 +21,11 @@ macOS brew install ninja ``` -- Install [wine-crossover](https://github.com/Gcenx/homebrew-wine): - - ```sh - brew install --cask --no-quarantine gcenx/wine/wine-crossover - ``` - -After OS upgrades, if macOS complains about `Wine Crossover.app` being unverified, you can unquarantine it using: - -```sh -sudo xattr -rd com.apple.quarantine '/Applications/Wine Crossover.app' -``` +[wibo](https://github.com/decompals/wibo), a minimal 32-bit Windows binary wrapper, will be automatically downloaded and used. Linux ------ - Install [ninja](https://github.com/ninja-build/ninja/wiki/Pre-built-Ninja-packages). -- For non-x86(_64) platforms: Install wine from your package manager. - - For x86(_64), [wibo](https://github.com/decompals/wibo), a minimal 32-bit Windows binary wrapper, will be automatically downloaded and used. + +[wibo](https://github.com/decompals/wibo), a minimal 32-bit Windows binary wrapper, will be automatically downloaded and used. diff --git a/tools/download_tool.py b/tools/download_tool.py index 381b170..2246526 100644 --- a/tools/download_tool.py +++ b/tools/download_tool.py @@ -78,8 +78,14 @@ def sjiswrap_url(tag: str) -> str: def wibo_url(tag: str) -> str: + uname = platform.uname() + arch = uname.machine.lower() + system = uname.system.lower() + if system == "darwin": + arch = "macos" + repo = "https://github.com/decompals/wibo" - return f"{repo}/releases/download/{tag}/wibo" + return f"{repo}/releases/download/{tag}/wibo-{arch}" TOOLS: Dict[str, Callable[[str], str]] = { diff --git a/tools/project.py b/tools/project.py index 9c8bcb3..c363b19 100644 --- a/tools/project.py +++ b/tools/project.py @@ -283,8 +283,8 @@ class ProjectConfig: def use_wibo(self) -> bool: return ( self.wibo_tag is not None - and sys.platform == "linux" - and platform.machine() in ("i386", "x86_64") + and (sys.platform == "linux" or sys.platform == "darwin") + and platform.machine() in ("i386", "x86_64", "aarch64", "arm64") and self.wrapper is None ) @@ -595,10 +595,7 @@ def generate_build_ninja( sys.exit("ProjectConfig.sjiswrap_tag missing") wrapper = config.compiler_wrapper() - # Only add an implicit dependency on wibo if we download it - wrapper_implicit: Optional[Path] = None if wrapper is not None and config.use_wibo(): - wrapper_implicit = wrapper n.build( outputs=wrapper, rule="download_tool", @@ -608,6 +605,11 @@ def generate_build_ninja( "tag": config.wibo_tag, }, ) + + wrapper_implicit: Optional[Path] = None + if wrapper is not None and (wrapper.exists() or config.use_wibo()): + wrapper_implicit = wrapper + wrapper_cmd = f"{wrapper} " if wrapper else "" compilers = config.compilers()