Les membres ayant 30 points peuvent parler sur les canaux annonces, projets et hs du chat.

Forum Casio - Autres questions


Index du Forum » Autres questions » [fxsdk/CMake] Ajout d'une cible desktop.
Kikoodx Hors ligne Labélisateur Points: 2727 Défis: 11 Message

[fxsdk/CMake] Ajout d'une cible desktop.

Posté le 08/03/2021 15:31

Bonjour ! J'essaye de faire un projet qui compile aussi bien sur PC ou calto pour m'amuser mais je me suis retrouvé coincé au CMake. Je ne sais pas comment faire, je ne maitrise pas bien CMake et malgrès tous mes efforts je ne sais pas où chercher dans la documentation gigantesque. J'espère que vous voudrez bien m'aider.

Voici le projet « test » sur lequel je travaille :
https://gitea.planet-casio.com/KikooDX/raygint-test
Je l'ai gardé très minimal pour avoir un objectif simple. J'ai écrit le CMakeLists.txt pour la cible PC (utilisant raylib), je vous demande de l'aide pour l'intégrer au CMakeLists.txt généré par le fxsdk.

Merci pour votre attention !


Lephenixnoir Hors ligne Administrateur Points: 20809 Défis: 143 Message

Citer : Posté le 08/03/2021 15:41 | #


Alors c'est marrant ça parce que j'ai aussi ça en local sur un de mes dépôts. x3

Il n'y a pas grand-chose à faire parce que tous les paramètres qui changent (compilo, options spécifiques, etc) sont spécifiés par le fxSDK quand tu fais fxsdk build-cg et du coup la distinction se fait majoritairement au moment de configurer :

# Pour calto :
fxsdk build-cg # Équivalent à "cmake -B build-cg" avec les options calto
# Pour PC :
cmake -B build-pc

Ensuite tout ce qu'il te reste à faire c'est comparer avec le CMakeLists.txt par défaut du fxSDK et de mettre les parties spécifiques dans un if() en utilisant les variables fournies par le fxSDK, par exemple FXSDK_PLATFORM.

Par exemple pour lier avec gint...

if("${FXSDK_PLATFORM_LONG}" STREQUAL fxCG50)
  find_package(Gint 2.1 REQUIRED)
  link_libraries(Gint::Gint)
endif()

Ou pour générer les assets et créer un fichier g3a...

if("${FXSDK_PLATFORM_LONG}" STREQUAL fxCG50)
  include(GenerateG3A)
  generate_g3a(TARGET facets NAME "" ICONS icon-uns.png icon-sel.png)

  include(Fxconv)
  set_source_files_properties(${ASSETS} PROPERTIES LANGUAGE FXCONV)
endif()

Note que si tu compiles sur PC tous les assets seront pas convertis ou pas de la même façon donc il faut adapter la liste des sources.
Kikoodx Hors ligne Labélisateur Points: 2727 Défis: 11 Message

Citer : Posté le 08/03/2021 16:05 | #


Merci pour ton explication ! C'est plus clair maintenant, et j'ai réussi à le mettre en place pour mon projet test. Même si je l'ai fait de manière moins propre que toi, ton explication m'a aidé ! Merci beaucoup, je vais pouvoir faire mes diableries
https://gitea.planet-casio.com/KikooDX/raygint-test/compare/fddd5c3f1296def5b9865a34187e557b5b9b8893...afccb7e064fe81e3a01d22f38f51a764cc390628
Protip
Ne me remerciez pas


Absent jusqu'à début Novembre.
Lephenixnoir Hors ligne Administrateur Points: 20809 Défis: 143 Message

Citer : Posté le 08/03/2021 16:11 | #


Bravo ! C'est quand même pas mal ce que tu as fait, y'a un peu de redondance mais tu pourras t'en soucier le jour où ton CMakeLists.txt fera 300 lignes (ie. jamais) x3

LienAjouter une imageAjouter une vidéoAjouter un lien vers un profilAjouter du codeCiterAjouter un spoiler(texte affichable/masquable par un clic)Ajouter une barre de progressionItaliqueGrasSoulignéAfficher du texte barréCentréJustifiéPlus petitPlus grandPlus de smileys !
Cliquez pour épingler Cliquez pour détacher Cliquez pour fermer
Alignement de l'image: Redimensionnement de l'image (en pixel):
Afficher la liste des membres
:bow: :cool: :good: :love: ^^
:omg: :fusil: :aie: :argh: :mdr:
:boulet2: :thx: :champ: :whistle: :bounce:
valider
 :)  ;)  :D  :p
 :lol:  8)  :(  :@
 0_0  :oops:  :grr:  :E
 :O  :sry:  :mmm:  :waza:
 :'(  :here:  ^^  >:)

Σ π θ ± α β γ δ Δ σ λ
Veuillez donner la réponse en chiffre
Vous devez activer le Javascript dans votre navigateur pour pouvoir valider ce formulaire.

Si vous n'avez pas volontairement désactivé cette fonctionnalité de votre navigateur, il s'agit probablement d'un bug : contactez l'équipe de Planète Casio.

Planète Casio v42 © créé par Neuronix et Muelsaco 2004 - 2021 | Il y a 46 connectés | Nous contacter | Qui sommes-nous ? | Licences et remerciements

Planète Casio est un site communautaire non affilié à Casio. Toute reproduction de Planète Casio, même partielle, est interdite.
Les programmes et autres publications présentes sur Planète Casio restent la propriété de leurs auteurs et peuvent être soumis à des licences ou copyrights.
CASIO est une marque déposée par CASIO Computer Co., Ltd