- platform/layout : racine sequa-root.json, chemins des composants, arguments et chemins en UTF-8.
- Règles install() : bin/windows-x64/{debug,release,asan}/ (core, render, studio + ui, engines).
- Le Core trouve sequa-render et les adaptateurs depuis la racine (--sequa-root, passé par
Studio host à sa copie fantôme) : plus de render-unavailable depuis le panneau Rendu.
- L'adaptateur Godot cherche Godot et son projet à côté de lui (surcharge par --adapter-options) ;
template_release pour le type release. Godot hébergé dans les presets debug et release.
- scripts/build-all.ps1 : Godot, C++, interface, arrêt des processus du dossier visé, install ;
check.ps1 l'appelle (modification de l'ADR 0004).
- docs/installation/ : compiler, lancer, installer et désinstaller par plateforme.
Plateforme : disposition de l'arborescence
Brique commune qui connaît la structure de l'installation SEQUA (ADR 0010).
Elle permet à chaque composant (Studio host, Core, rendu, adaptateurs) de
retrouver les autres binaires et ressources à partir d'un unique repère :
le fichier sequa-root.json à la racine.
Arborescence attendue
<root>/sequa-root.json
<root>/core/sequa-core(.exe)
<root>/render/sequa-render(.exe)
<root>/studio/sequa-studio(.exe)
<root>/studio/ui/ (interface web, index.html)
<root>/engines/<engine>/sequa_<engine>_adapter(.dll|.so)
API (sequa::platform)
| Pièce | Rôle |
|---|---|
root_marker |
Nom du fichier repère ("sequa-root.json"). |
current_executable() |
Chemin absolu de l'exécutable en cours (Windows / Linux / macOS). |
module_path(address) |
Chemin du module (exe ou bibliothèque partagée) contenant address (dladdr / GetModuleHandleEx). |
find_root(start) |
Remonte depuis start jusqu'à la racine du FS ; premier dossier contenant sequa-root.json. |
executable_name(base) |
Ajoute .exe sous Windows, sinon inchangé. |
module_name(base) |
Ajoute .dll sous Windows, .so ailleurs (macOS compris, suffixe CMake MODULE). |
is_valid_engine_name(engine) |
Non vide, seulement [a-z0-9_]. |
utf8_arguments(argc, argv) |
Arguments en UTF-8 sans le nom du programme (Windows : relus par CommandLineToArgvW, argv étant dans la page de code locale). |
path_from_utf8(text), path_to_utf8(path) |
Conversions chemin ↔ UTF-8 ; à utiliser pour tout chemin passé en argument à un processus enfant ou reçu de lui. |
Layout(root) |
Façade orientée objet : core_executable(), render_executable(), studio_executable(), ui_dir(), engine_dir(engine), adapter_library(engine) (nullopt si nom invalide). |
Utilisation
- Studio host : trouve la racine via
find_root(current_executable()), construit unLayout, passe--sequa-root <root>au Core lancé (copie fantôme, ADR 0006). - Core : reçoit
--sequa-root, en déduitsequa-renderet l'adaptateur moteur viaLayout. - Adaptateurs :
module_pathsur un symbole interne → dossier de l'adaptateur →engines/<moteur>/pour la bibliothèque Godot et le projet (ADR 0010 §7.0.1).
Aucune dépendance externe hors STL. Tests avec doctest (MIT).
Référence
ADR 0010 : Arborescence des binaires (développement et installation), build unifié