Update tools & use wibo for macOS (no more wine-crossover)

This commit is contained in:
2025-11-11 15:22:02 -07:00
parent 755d8c109f
commit f225a1ba65
5 changed files with 23 additions and 35 deletions

View File

@@ -51,24 +51,14 @@ macOS
brew install ninja brew install ninja
``` ```
- Install [wine-crossover](https://github.com/Gcenx/homebrew-wine): [wibo](https://github.com/decompals/wibo), a minimal 32-bit Windows binary wrapper, will be automatically downloaded and used.
```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'
```
Linux Linux
------ ------
- Install [ninja](https://github.com/ninja-build/ninja/wiki/Pre-built-Ninja-packages). - 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 Building
======== ========

View File

@@ -159,9 +159,9 @@ if not config.non_matching:
config.binutils_tag = "2.42-1" config.binutils_tag = "2.42-1"
config.compilers_tag = "20250812" config.compilers_tag = "20250812"
config.dtk_tag = "v1.6.2" config.dtk_tag = "v1.6.2"
config.objdiff_tag = "v3.0.0-beta.14" config.objdiff_tag = "v3.3.1"
config.sjiswrap_tag = "v1.2.1" config.sjiswrap_tag = "v1.2.2"
config.wibo_tag = "0.7.0" config.wibo_tag = "1.0.0-beta.3"
# Project # Project
config.config_path = Path("config") / config.version / "config.yml" config.config_path = Path("config") / config.version / "config.yml"

View File

@@ -21,21 +21,11 @@ macOS
brew install ninja brew install ninja
``` ```
- Install [wine-crossover](https://github.com/Gcenx/homebrew-wine): [wibo](https://github.com/decompals/wibo), a minimal 32-bit Windows binary wrapper, will be automatically downloaded and used.
```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'
```
Linux Linux
------ ------
- Install [ninja](https://github.com/ninja-build/ninja/wiki/Pre-built-Ninja-packages). - 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.

View File

@@ -78,8 +78,14 @@ def sjiswrap_url(tag: str) -> str:
def wibo_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" 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]] = { TOOLS: Dict[str, Callable[[str], str]] = {

View File

@@ -283,8 +283,8 @@ class ProjectConfig:
def use_wibo(self) -> bool: def use_wibo(self) -> bool:
return ( return (
self.wibo_tag is not None self.wibo_tag is not None
and sys.platform == "linux" and (sys.platform == "linux" or sys.platform == "darwin")
and platform.machine() in ("i386", "x86_64") and platform.machine() in ("i386", "x86_64", "aarch64", "arm64")
and self.wrapper is None and self.wrapper is None
) )
@@ -595,10 +595,7 @@ def generate_build_ninja(
sys.exit("ProjectConfig.sjiswrap_tag missing") sys.exit("ProjectConfig.sjiswrap_tag missing")
wrapper = config.compiler_wrapper() 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(): if wrapper is not None and config.use_wibo():
wrapper_implicit = wrapper
n.build( n.build(
outputs=wrapper, outputs=wrapper,
rule="download_tool", rule="download_tool",
@@ -608,6 +605,11 @@ def generate_build_ninja(
"tag": config.wibo_tag, "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 "" wrapper_cmd = f"{wrapper} " if wrapper else ""
compilers = config.compilers() compilers = config.compilers()