Ehrweb.de

Perl und wxPerl (wxWidgets) auf dem Mac (Apple Silicon)

Diese Hilfe erklärt, warum das CPAN-Modul Wx (wxPerl) unter macOS und Apple Silicon oft nicht mit der Standardkombination „CPAN Wx 0.9932 + aktuelles Homebrew-wxWidgets“ funktioniert, und wie Sie stattdessen eine funktionierende Installation mit Homebrew wxWidgets 3.2 und dem sciurius-Fork aufsetzen.

Typische Probleme (Mac + Perl + wxWidgets)

Wichtig: Eine dauerhaft stabile Lösung ist unter macOS derzeit der Fork sciurius/wxPerl (z. B. Release R3.005) zusammen mit sciurius/perl-Alien-wxWidgets (z. B. R0.73), nicht CPAN Wx 0.9932.

Empfohlene Lösung: Homebrew wxWidgets 3.2 + sciurius

1. Homebrew-Pakete

brew install wxwidgets@3.2
            brew install cpanminus

Auf Apple Silicon zeigt Homebrew wx-config für 3.2 typischerweise so an (Dateiname kann wx-config-3.2 heißen):

ls "$(brew --prefix wxwidgets@3.2)/bin"

2. Umgebungsvariablen (vor jedem Build/CPAN)

export WX_CONFIG="/opt/homebrew/opt/wxwidgets@3.2/bin/wx-config-3.2"
            export PATH="/opt/homebrew/bin:$PATH"

Auf Intel-Mac mit Homebrew unter /usr/local die Pfade entsprechend anpassen. Prüfen:

"$WX_CONFIG" --version
            file "$(which perl)"

3. Alien::wxWidgets und Wx installieren (Reihenfolge)

Zuerst Alien::wxWidgets (sciurius), danach Wx (sciurius wxPerl):

cpanm --notest https://github.com/sciurius/perl-Alien-wxWidgets/archive/refs/tags/R0.73.tar.gz
            cpanm --notest https://github.com/sciurius/wxPerl/archive/refs/tags/R3.005.tar.gz
Im Projekt liegen dazu auch cpanfile.wxperl, die Textdoku doku/wxperl-macos.txt und das Skript shell/build-wxperl-macos.sh (lädt Tarballs, setzt WX_CONFIG, baut und installiert).

4. Test

perl -MWx -e 'print Wx::wxVERSION_STRING, "\n"'
            perl hello_world_wx.pl

Im Beispielskript müssen use Wx … und die wx-Konstanten im gleichen package stehen wie OnInit (siehe Projekt-hello_world_wx.pl).

Optional: Nur historisch — CPAN 0.9932 und Grid-Patch

Wer ausnahmsweise an Wx 0.9932 arbeitet, findet unter patches/wxperl-0.9932-wxwidgets32-macos.patch Anpassungen für Grid/typemap und GetViewWidth — das reicht auf dem Mac aber nicht für einen vollständigen Build; der sciurius-Fork bleibt der empfohlene Weg.