Code source.
https://github.com/HackTechDev/Slade4FreeBSD
Captures d'écran.
Compiler et lancer SLADE sous FreeBSD
Ce document résume l'analyse effectuée pour faire compiler SLADE 3.2.12 sur FreeBSD 15.0-RELEASE (amd64,
Clang 19.1.7), les problèmes rencontrés côté build system, et les corrections apportées. Voir aussi
ANALYSE.md pour le détail complet de l'investigation.
Résumé de l'analyse
Le projet compile "presque" tel quel sur FreeBSD, avec deux écarts par rapport à un build Linux/macOS classique :
- WebP : les ports FreeBSD n'installent pas de fichier de config CMake pour libwebp (pas de
WebPConfig.cmake), seulement un.pcpkg-config. Le dépôt SLADE n'avait pas de moduleFind*.cmakepour WebP (contrairement à MPG123/FTGL/FluidSynth qui en ont un danscmake/find_modules/). Correction apportée au dépôt : ajout decmake/find_modules/FindWebP.cmake(calqué surFindMPG123.cmake), qui recherchelibwebpetlibwebpdemux(les seules bibliothèques WebP réellement utilisées par le code, danssrc/UI/WxWebpHandler.cpp). - wx-config : les ports wxWidgets de FreeBSD nomment l'exécutable de config
wxgtk3u-3.0-config/wxgtk3u-3.2-config, paswx-config. Aucune modification du dépôt n'est nécessaire, il suffit de passer-DCL_WX_CONFIG=wxgtk3u-3.2-configà la configuration CMake (voir plus bas). - Version de wxWidgets : le port
wx30-gtk3(wxWidgets 3.0.5) casse la compilation du header précompilé (wx/propgrid/advprops.h:wxPGPropertyincomplet). C'est le bug connu déjà mentionné dansCOMPILE.md("wxWidgets >= 3.3.1 recommandé... bugs connus des versions antérieures"). Il faut utiliser le portwx32-gtk3(wxWidgets 3.2.8), qui compile sans erreur.
Toutes les autres dépendances obligatoires (bzip2, zlib, FTGL, mpg123, OpenGL, SFML, libwebp) ainsi que les optionnelles (FluidSynth, Lua) sont disponibles directement dans les ports FreeBSD.
Installation des dépendances
sudo pkg install cmake ninja pkgconf git \
wx32-gtk3 SFML ftgl mpg123 webp png fluidsynth lua54
bzip2 et zlib font partie de la base FreeBSD, pas besoin de les installer séparément.
Si
wx30-gtk3est déjà installé (version par défaut la plus ancienne des ports), ce n'est pas gênant : les deux versions de wxWidgets peuvent cohabiter, il suffit de cibler explicitementwxgtk3u-3.2-configau moment de la configuration CMake (voir ci-dessous).
Compilation
git clone <url-du-depot> SLADE-3.2.12 # ou utiliser le dépôt déjà cloné
cd SLADE-3.2.12
mkdir build && cd build
cmake -G Ninja -DCL_WX_CONFIG=wxgtk3u-3.2-config ..
cmake --build .
Options utiles supplémentaires (identiques à celles documentées dans CLAUDE.md) :
-DNO_LUA=ON— désactive le scripting Lua-DNO_FLUIDSYNTH=ON— désactive la lecture MIDI FluidSynth-DNO_WEBVIEW=ON— si wxWidgets a été compilé sans wxWebview-DBUILD_PK3=OFF— pour ne pas regénérerslade.pk3(activé par défaut)
La compilation complète (413 unités) a été testée avec succès, sans erreur, warnings mineurs seulement
(-Wswitch sur des cas d'énumération non gérés dans Edit3D.cpp, sans impact fonctionnel).
Résultat dans build/ :
slade— exécutable ELF 64-bit FreeBSD (~295 Mo non strippé en configuration par défautRelWithDebInfo)slade.pk3— ressources embarquées (icônes, palettes, configs de jeu, scripts Lua, etc.)
Lancement
slade.pk3 doit se trouver à côté de l'exécutable — ne pas copier uniquement le binaire ailleurs
sans son .pk3 :
cd build
./slade
Fichiers modifiés/ajoutés dans le dépôt pour ce build
- Ajouté :
cmake/find_modules/FindWebP.cmake— nécessaire pour tout build sur un système fournissant WebP via pkg-config plutôt qu'un package CMake (c'est le cas de FreeBSD). - Aucune autre modification du code source n'a été nécessaire.