https://github.com/HackTechDev/Slade4FreeBSD
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.
Le projet compile "presque" tel quel sur FreeBSD, avec deux écarts par rapport à un build Linux/macOS classique :
WebPConfig.cmake), seulement un .pc pkg-config. Le dépôt SLADE n'avait pas de module
Find*.cmake pour WebP (contrairement à MPG123/FTGL/FluidSynth qui en ont un dans
cmake/find_modules/). Correction apportée au dépôt : ajout de
cmake/find_modules/FindWebP.cmake (calqué sur FindMPG123.cmake), qui recherche libwebp et
libwebpdemux (les seules bibliothèques WebP réellement utilisées par le code, dans
src/UI/WxWebpHandler.cpp).wxgtk3u-3.0-config / wxgtk3u-3.2-config, pas wx-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).wx30-gtk3 (wxWidgets 3.0.5) casse la compilation du header
précompilé (wx/propgrid/advprops.h : wxPGProperty incomplet). C'est le bug connu déjà mentionné
dans COMPILE.md ("wxWidgets >= 3.3.1 recommandé... bugs connus des versions antérieures"). Il faut
utiliser le port wx32-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.
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).
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érer slade.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éfaut
RelWithDebInfo)slade.pk3 — ressources embarquées (icônes, palettes, configs de jeu, scripts Lua, etc.)slade.pk3 doit se trouver à côté de l'exécutable — ne pas copier uniquement le binaire ailleurs
sans son .pk3 :
cd build
./slade
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).