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

Forum Casio - Projets de programmation


Index du Forum » Projets de programmation » fxSDK, un SDK alternatif pour écrire des add-ins
Lephenixnoir Hors ligne Administrateur Points: 22585 Défis: 149 Message

fxSDK, un SDK alternatif pour écrire des add-ins

Posté le 29/08/2014 22:00

Cette page sert d'index pour la série de topics du fxSDK.

Le fxSDK est une collection d'outils permettant de développer des add-ins pour les calculatrices Casio des séries Graph. C'est une alternative au fx-9860G SDK et PrizmSDK qui ne sont plus activement maintenus, et le compagnon classique de mon noyau gint.

Index des topics

Ce projet existe depuis 2015, alors il y a pas mal de topics liés. En voici une liste complète !

Topics principaux

Installation du fxSDK

Tutoriels

Compatibilité sur calculatrice et PC

Côté PC, le fxSDK est compatible avec Linux, Mac OS, et WSL pour Windows ; normalement tout le monde peut l'utiliser. Je teste constamment sous Linux, et WSL est un Linux donc c'est testé aussi. Je n'ai pas de Mac OS donc il peut y avoir quelques surprises, mais en général c'est l'affaire de corriger un bug ou deux.

En termes de calculatrices, le fxSDK supporte :

Calculatrices monochromes
  • Graph 35+E II
  • Graph 35+ USB / Graph 35+E (SH3/SH4)
  • Graph 75/75+/75+E
  • Graph 85/85 SD/95 (SD) (pas activement testé)

Calculatrices couleurs
  • Graph 90+E / fx-CG 50
  • Prizm fx-CG 10/20

Comment installer le fxSDK et coder des add-ins

Le fxSDK s'installe à partir de dépôts Git sur la forge de Planète Casio (par exemple Lephenixnoir/fxsdk). Il y en a un peu beaucoup, donc manuellement c'est assez long. Pour que ça aille plus vite et pour simplifier le travail des débutants, il y a un outil appelé GiteaPC qui peut faire ça pour vous.

Si vous utilisez Windows, vous aurez besoin de WSL pour accéder à un système Linux dans Windows. Heureusement, Microsoft a fait ça bien et c'est facile à faire. Voyez le tutoriel d'installation de WSL 2 (et l'explication rapide de ce que WSL 2 est).

Si vous utilisez Mac OS, ouvrez l’œil en lisant les topics pour ne pas manquer les informations supplémentaires et éventuelles déviations par rapport à la procédure normale sous Linux.

Méthode automatique avec GiteaPC (plus rapide / recommandée pour les débutants)
  1. Suivez le tutoriel d'utilisation de GiteaPC, qui explique comment obtenir le fxSDK.

Méthode AUR pour les utilisateurs Arch/Manjaro/dérivés (ils se reconnaîtront)
  1. Dark Storm maintient MiddleArch, un dépôt de paquets précompilés qui a entre autres le fxSDK.

Méthode manuelle (plus fine / classique pour les habitués)
  1. Compilez et installez le cross-compilateur GCC pour SuperH.
  2. installez (dans cet ordre) les dépôts fxSDK, OpenLibm, fxlibc, gint ; en option, Slyvtt/µSTL_2.3.

Description sommaire du fxSDK

Pour une introduction à l'utilisation du fxSDK qui montre comment utiliser les outils pour développer un add-in, lisez plutôt les tutoriels d'utilisation de gint. Cette section est juste une description sommaire.

Le cœur du fxSDK est un cross-compilateur GCC pour SuperH, habituellement nommé sh-elf-gcc. Bien sûr on a avec toute la suite d'outils, dont as, ld, objdump, objcopy (entre autres). Contrairement au vieux compilateur du SDK, GCC est un compilateur moderne avec beaucoup d'options et capable de très solides optimisations.

Sur la calculatrice, c'est le noyau gint qui fait la majorité du travail. Il remplace fxlib/libfxcg et une partie de l'OS pour vous offrir des fonctionnalités plus cool et plus rapides. Les add-ins développés avec le fxSDK utilisent gint toutes les trois lignes !

Il y a enfin plusieurs outils utiles sur le PC qui sont utilisés durant le développement ou l'utilisation des add-ins :

  • fxsdk est un script shell qui permet de créer et compiler les projets sans se prendre trop la tête. Le système de compilation officiel pour les add-ins est CMake, mais un système plus ancien de Makefile est encore supporté.
  • fxconv est un outil très polyvalent qui convertit à la compilation les assets (images, polices, maps....). Il permet de travailler avec des logiciels et formats de fichiers normaux sur le PC et d'avoir automatiquement un format optimisé sur la calculatrice. fxconv est extrêmement extensible et chaque projet peut ajouter des conversions personnalisées.
  • fxgxa crée les fichiers g1a (format des add-ins pour Graph monochromes) et g3a (format des add-ins pour Graph couleurs) à partir des programmes compilés.
  • fxlink est un outil de communication qui peut transférer des fichiers vers les Graph 35+E II et Graph 90+E en ligne de commande, mais aussi échanger interactivement avec les add-ins gint par le câble USB, et est couramment utilisé pour réaliser des captures d'écran ou captures vidéo des add-ins.


Changelog et informations techniques

Ci-dessous se trouve la liste des posts annonçant les nouvelles versions du fxSDK, ainsi que des liens vers les instructions/tutoriels supplémentaires publiés avec.

VersionDateInfos supplémentaires
fxSDK 2.9.129 Août 2022
fxSDK 2.9.021 Août 2022Réinstallation complète nécessaire
fxSDK 2.8.017 Mai 2022
fxSDK 2.7.119 Mars 2022
fxSDK 2.7.031 Décembre 2021Collecter toutes les images d'un projet avec fxconv
fxSDK 2.6.030 Août 2021Génération de structures complexes avec fxconv
fxSDK 2.5.24 Juillet 2021
fxSDK 2.5.14 Juillet 2021
fxSDK 2.5.025 Mai 2021
fxSDK 2.4.027 Avril 2021
fxSDK 2.3.130 Janvier 2021
fxSDK 2.3.029 Janvier 2021Introduction de fxconv-metadata.txtInstructions de migration vers CMake
Séparation de libprof en fx/cg



Précédente 1, 2, 3 ··· 10 ··· 20 ··· 30 ··· 34, 35, 36, 37
Inikiwi Hors ligne Membre Points: 372 Défis: 0 Message

Citer : Posté le 17/08/2022 21:18 | #


j'ai retiré ma toolchain de path et lors de la compilation de gint ça ne fonctionne toujours pas malgré que la bonne toolchain soit utilisé.
<giteapc> Lephenixnoir/gint: Configuring
-- The C compiler identification is GNU 11.1.0
-- The ASM compiler identification is GNU
-- Found assembler: /home/pierre/.local/bin/sh-elf-gcc
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: /home/pierre/.local/bin/sh-elf-gcc - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- Found Git: /usr/bin/git (found version "2.35.1")
-- Configuring done
-- Generating done
-- Build files have been written to: /home/pierre/.local/share/giteapc/Lephenixnoir/gint/build-fx
-- The C compiler identification is GNU 11.1.0
-- The ASM compiler identification is GNU
-- Found assembler: /home/pierre/.local/bin/sh-elf-gcc
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: /home/pierre/.local/bin/sh-elf-gcc - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- Found Git: /usr/bin/git (found version "2.35.1")
-- Configuring done
-- Generating done
-- Build files have been written to: /home/pierre/.local/share/giteapc/Lephenixnoir/gint/build-cg
<giteapc> Lephenixnoir/gint: Building
Scanning dependencies of target gint-fx
[  0%] Building C object CMakeFiles/gint-fx.dir/src/cpg/cpg.c.obj
Dans le fichier inclus depuis /home/pierre/.local/share/giteapc/Lephenixnoir/gint/include/gint/drivers.h:13,
                 depuis /home/pierre/.local/share/giteapc/Lephenixnoir/gint/src/cpg/cpg.c:5:
/home/pierre/.local/share/giteapc/Lephenixnoir/gint/include/gint/defs/types.h:17:10: erreur fatale: sys/types.h: Aucun fichier ou dossier de ce type
   17 | #include <sys/types.h>
      |          ^~~~~~~~~~~~~
compilation terminée.
make[3]: *** [CMakeFiles/gint-fx.dir/build.make:76 : CMakeFiles/gint-fx.dir/src/cpg/cpg.c.obj] Erreur 1
make[2]: *** [CMakeFiles/Makefile2:83 : CMakeFiles/gint-fx.dir/all] Erreur 2
make[1]: *** [Makefile:136 : all] Erreur 2
gmake: *** [giteapc.make:10 : build] Erreur 2
error: error 2 in command: gmake -f giteapc.make build

Lephenixnoir Hors ligne Administrateur Points: 22585 Défis: 149 Message

Citer : Posté le 17/08/2022 21:34 | #


Comme indiqué sur le topic de GiteaPC, il y a d'autre choses à installer avant gint, à savoir OpenLibm et la fxlibc (la dernière fournissant <sys/types.h>). GiteaPC va toujours installer la fxlibc avant gint, mais je soupçonne que la fxlibc ait été installée avec ton ancien compilateur (avant que tu ne le retires du PATH). Si c'est ça alors désinstalle puis réinstalle la fxlibc, ton nouveau compilateur sera utilisé automatiquement.
Inikiwi Hors ligne Membre Points: 372 Défis: 0 Message

Citer : Posté le 18/08/2022 09:24 | #


merci! ça a marché ! je vais pouvoir me lancer sur la programmation graph 90 et espérer agrandir le catalogue .
je vais faire une pause sur l'émulateur car de toute façon je suis bloqué.
Mb88 Hors ligne Membre Points: 293 Défis: 0 Message

Citer : Posté le 18/08/2022 11:18 | #


T'as vu, ça marche bien mieux avec giteaPC !
Inikiwi Hors ligne Membre Points: 372 Défis: 0 Message

Citer : Posté le 18/08/2022 11:39 | #


apt install c'est mieux.
Dark storm Hors ligne Labélisateur Points: 11566 Défis: 176 Message

Citer : Posté le 18/08/2022 11:56 | #


sudo pacman -S fxsdk gint
Finir est souvent bien plus difficile que commencer. — Jack Beauregard
Lephenixnoir Hors ligne Administrateur Points: 22585 Défis: 149 Message

Citer : Posté le 21/08/2022 22:20 | #


Nouvelle version : fxSDK 2.9.0

Release associée de gint : gint 2.9.0
Release associée de la fxlibc : fxlibc 1.4.4

Cette version du fxSDK apporte deux changements majeurs.

Le premier est le support complet du C++ avec la lib standard (via l'implémentation GNU, libstdc++) !

Ça veut dire qu'on peut coder dans les derniers standards C++ (y compris C++20), accéder aux fonctionnalités récentes du langage (concepts) mais aussi aux structures de données et conteneurs habituels (std::string, std::vector, etc). La seule chose qu'on n'a pas encore c'est les exceptions.

Le second est une réorganisation des fichiers du fxSDK.

Pour faire simple, le compilateur et les bibliothèques comme gint sont maintenant organisés d'une façon moins barbare et plus proche de ce qu'on aurait si la calculatrice était un ordinateur (avec une sysroot ou du moins quelque chose qui s'en approche). C'est nécessaire pour avoir la lib C++. Ce changement n'est pas très visible pour vous, à part que :

  • Pour utiliser la lib math, on peut maintenant écrire -lm au lieu de -lopenlibm.
  • Le hack pour inclure les en-têtes de OpenLibm n'est plus nécessaire.
  • Le CMake pour installer des bibliothèques a changé un peu, voir ci-dessous.

Instructions de mise à jour vers fxSDK 2.9

Pour cette mise à jour, afin de créer la bonne organisation pour le fxSDK il faut reprendre l'installation de zéro. C'est automatique comme avant mais prévoyez entre 30 minutes et 1 heure pour recompiler GCC.

Si vous avez GiteaPC, désinstallez tous les dépôts du fxSDK (probablement tous sauf GiteaPC lui-même). Généralement ça va vous donner

% giteapc uninstall libprof gint fxlibc OpenLibm sh-elf-gcc sh-elf-binutils fxsdk

Tapez giteapc list pour avoir une liste des dépôts installés, si vous en avez d'autres (libimg, µSTL, libSerial) désinstallez-les aussi. N'allez pas supprimer les dossiers de GiteaPC directement, non seulement ça ne désinstallerait pas proprement mais ça supprimerait aussi GiteaPC alors qu'on veut le garder.

Une fois que tout est parti, réinstallez les outils fxSDK, binutils, et GCC. C'est ça qui prend le plus longtemps (de loin) :

% giteapc install Lephenixnoir/fxsdk Lephenixnoir/sh-elf-binutils Lephenixnoir/sh-elf-gcc

Si vous n'avez pas UDisks2 remplacez le premier par Lephenixnoir/fxsdk:noudisks2.

Ensuite installez la lib mathématique, la lib C, et ensuite réinstallez sh-elf-gcc pour installer la lib C++ qui est fournie avec (GCC ne sera pas recompilé) :

% giteapc install Lephenixnoir/OpenLibm Vhex-Kernel-Core/fxlibc Lephenixnoir/sh-elf-gcc

Enfin, passez à gint et aux bibliothèques :

% giteapc install Lephenixnoir/gint Lephenixnoir/libprof # ...

Au moment où j'écris ce post les libs de SlyVTT ne sont pas encore prêtes, surveillez les commentaires ci-dessous pour voir quand c'est bon !

Explications détaillées de ce qui a changé

Jusqu'ici le fxSDK abusait du fait qu'il y a un dossier interne de GCC dans lequel le compilo va chercher les headers et les bibliothèques, et on installait nos libs là. Ça marche, mais c'est pas prévu pour, et dès qu'on se met dans un environnement un peu plus proche du hosted (le terme désignant un environnement complet genre Linux, par opposé à free-standing qui signifie en gros "embarqué") ça ne marche plus.

Typiquement, quand on compile la lib C++ les en-têtes et les bibliothèques ne sont pas cherchés au même endroit, et une fois qu'on a fini de la compiler elle ne s'installe pas non plus au même endroit.

Normalement quand on a un système de cross-compilation comme ça on a une sysroot, qui est un dossier dans lequel on a une installation plus ou moins complète du système cible. Par exemple si Linux tournait sur la calculatrice on aurait dans la sysroot tous les en-têtes Linux avec les libs et les outils qui vont bien, pour SuperH. La lib C++ se compile et s'installe comme s'il y a une sysroot.

Le changement que cette version apporte au fxSDK consiste donc à organiser les fichiers pour créer un dossier qui s'approche de ça au lieu d'utiliser le dossier interne de GCC.

Pour s'y retrouver j'ai ajouté une nouvelle commande fxsdk path <NAME> qui affiche les dossiers importants du SDK. Pour l'instant trois noms sont définis, sysroot qui affiche le dossier principal dans lequel tout est installé, lib qui affiche le dossiers où on mets nos libs, et include qui affiche le dossier où on met nos en-têtes.

Instructions de mise à jour des bibliothèques

Il y a quelque changements en termes de CMake.

Au lieu d'installer les libs dans ${FXSDK_COMPILER_INSTALL} et les headers dans ${FXSDK_COMPILER_INSTALL}/include vous devez maintenant les installer dans ${FXSDK_LIB} et ${FXSDK_INCLUDE} respectivement. Ces deux variables renvoient les mêmes dossiers que fxsdk path lib et fxsdk path include.

La fonction find_simple_library() du fxSDK qui est utilisée pour dans les modules Find*.cmake prend désormais le nom d'un header relatif au dossier ${FXSDK_INCLUDE}, donc il faut retirer un include/ dans le chemin. Par exemple au lieu de find_simple_library(libX.a include/X/config.h) on écrira find_simple_library(libX.a X/config.h).

Un exemple parfaitement canonique des changements à faire est visible dans ce commit de JustUI. Le dépôt Lephenixnoir/Template-gint-library est également à jour.

Changelog complet

  • Refonte de l'organisation des dossiers (sysroot).
  • Ajout d'un fichier LICENSE pour spécifier la license MIT.
  • Ajout d'un charset 256chars à fxconv pour le bloc Unicode U+0000..U+00FF.
  • Correction d'un bug qui rendait les images RGB565 très grosses.
Slyvtt Hors ligne Community Manager Points: 832 Défis: 0 Message

Citer : Posté le 22/08/2022 21:27 | #


La SDL ainsi que ses librairies filles ont été mises à jour pour tenir compte de la nouvelle architecture de fxSDK 2.9.0.

L'installation se fait via l'outil giteapc comme suit :

  • si vous désirez installer seulement la librairie SDL (qui pour Casio PRIZM contient pour rappel la SDL 1.2.15 et la librairie SDL_gfx avec les primitives graphiques et les fonctions de transformations sur les surfaces) :
    giteapc install Slyvtt/cSDL1_2_15
  • si vous voulez installer la totale, à savoir SDL et SDL_image (version 1.2.12) , afin de pouvoir importer des images JPG ou PNG :
    giteapc install Slyvtt/cSDL1_2_15 Slyvtt/cZlib1_2_5 Slyvtt/cPNG1_5_30 Slyvtt/cJPEGv9d Slyvtt/cSDL_image1_2_12


Je vous renvoie vers les topics qui vont bien pour plus d'infos sur comment utiliser les libs :



Amusez-vous bien ...
Lephenixnoir Hors ligne Administrateur Points: 22585 Défis: 149 Message

Citer : Posté le 22/08/2022 21:29 | #


Excellent boulot, merci pour ta réactivité ! Toujours au top et parfaitement maintenu !!
Slyvtt Hors ligne Community Manager Points: 832 Défis: 0 Message

Citer : Posté le 22/08/2022 21:37 | #


Merci Lephé
Faut encore que je travaille sur cette histoire de dépendances dans les findxxxlib.cmake et sur les interconnections de librairies.
Inikiwi Hors ligne Membre Points: 372 Défis: 0 Message

Citer : Posté le 27/08/2022 11:30 | #


après un sudo apt update && sudo apt full-upgrade cmake m'affiche
-- The C compiler identification is GNU 11.1.0
-- The CXX compiler identification is GNU 11.1.0
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: /home/pierre/.local/bin/sh-elf-gcc - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: /home/pierre/.local/bin/sh-elf-g++ - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Found Gint: TRUE (found suitable version "2.9.0-1", minimum required is "2.1")
-- Configuring done
CMake Error in CMakeLists.txt:
  The language FXCONV was requested for compilation but was not enabled.  To
  enable a language it needs to be specified in a 'project' or
  'enable_language' command in the root CMakeLists.txt


-- Generating done
CMake Generate step failed.  Build files cannot be regenerated correctly.

Lephenixnoir Hors ligne Administrateur Points: 22585 Défis: 149 Message

Citer : Posté le 27/08/2022 14:03 | #


Arf oui KikooDX avait aussi ce problème, c'est avec CMake 3.24. Il faut que je modifie les scripts...

Ordre d'idée : ajouter un enable_language(FXCONV) après le import(Fxconv) et modifier Fxconv.cmake pour définir assez de variables pour que CMake le reconnaisse de nouveau comme un langage custom.

Je regarde ça aujourd'hui.
Lephenixnoir Hors ligne Administrateur Points: 22585 Défis: 149 Message

Citer : Posté le 29/08/2022 00:50 | #


Nouveau patch : fxSDK 2.9.1

Ce patch résout un problème de compatibilité avec CMake 3.24.

Le fxSDK utilise le mécanisme de définition de langages de CMake pour définir un langage FXCONV dont le compilateur est (sans surprise) fxconv et ainsi traiter les assets comme des fichiers source. Cependant, tout ce système est interne à CMake, très modérément documenté et subit parfois des changements sans notifications dans le changelog. Ce patch délaisse la méthode "abrégée" de définition de langage avec juste CMAKE_<LANG>_COMPILE_OBJECT et définit un langage pour de vrai avec la poignée de modules qui va avec.
Slyvtt Hors ligne Community Manager Points: 832 Défis: 0 Message

Citer : Posté le 31/08/2022 20:44 | #


Hello,

suite à une session Discord avec Lephé (merci pour ton aide ), l'ensemble des librairies liées à la SDL1.2 pour Casio Prizm (fx-CG10/20) et Graph 90+E (fx-CG50) a été mise à jour comme suit :

Tout d'abord les noms des dépôts sur la forge Gitea de Planète Casio ont été simplifiés (les numéros de versions ont disparu des noms de dépôts car c'était très pénible à taper) et modifiés comme ceci :

Comme explicité rapidement il y a quelques jours, l'ensemble des librairies ont été remises à plat pour devenir compatible avec fxSDK/gint 2.9.0, en prenant notamment en compte le déplacement de certains fichiers headers afin de proposer un système beaucoup plus classique (et attendu par GCC).

Le système d'installation via l'outil giteapc a été complètement mis à jour afin de simplifier au maximum l'installation et l'utilisation de la SDL. AInsi les dépendances sont automatiquement installées. Par exemple en commençant l'installation par la librairie en haut de l'arborescence de dépendance (à savoir la cSDL_image), toutes les librairies dont elle dépend seront automatiquement installées via un giteapc install cSDL_image.

Concernant l'utilisation, il y a tout de même une subtilité pour obtenir un linkage correct et éviter les problèmes. Ainsi il convient d'ajouter toutes les librairies dans le CMakeLists.txt de votre projet via des find_package() et d'aider le linkage via la ligne correcte dans target_link_libraries()

  • Par exemple pour un projet utilisant la cSDL :

    cmake_minimum_required(VERSION 3.15)
    project(MyAddin)

    include(GenerateG3A)
    include(Fxconv)
    find_package(Gint 2.7.1 REQUIRED)
    find_package(cSDL 1.2.15 REQUIRED)

    set(SOURCES
      src/main.c
      # ...
    )
    # Shared assets, fx-9860G-only assets and fx-CG-50-only assets
    set(ASSETS
      # ...
    )

    set(ASSETS_cg
      assets-cg/example.png
      # ...
    )

    fxconv_declare_assets(${ASSETS} ${ASSETS_cg} WITH_METADATA)

    add_executable(myaddin ${SOURCES} ${ASSETS} ${ASSETS_${FXSDK_PLATFORM}})
    target_compile_options(myaddin PRIVATE -Wall -Wextra -Os)
    target_link_libraries(myaddin Gint::Gint cSDL::cSDL)

    if("${FXSDK_PLATFORM_LONG}" STREQUAL fxCG50)
      generate_g3a(TARGET myaddin OUTPUT "SDL_App.g3a"
        NAME "SDL_App" ICONS assets-cg/icon-uns.png assets-cg/icon-sel.png)
    endif()

  • Pour un projet utilisant la cSDL_image, c'est juste plus long et pour le target_link_libraries(), l'ordre a de l'importance. Voici le CMakeLists.txt minimal pour un projet utilisant la cSDL_image :

    cmake_minimum_required(VERSION 3.15)
    project(MyAddin)

    include(GenerateG3A)
    include(Fxconv)
    find_package(Gint 2.7.1 REQUIRED)
    find_package(cJPEG 9.2 REQUIRED)
    find_package(cZlib 1.2.5 REQUIRED)
    find_package(cPNG 1.5.30 REQUIRED)
    find_package(cSDL 1.2.15 REQUIRED)
    find_package(cSDL_image 1.2.12 REQUIRED)

    set(SOURCES
      src/main.c
      # ...
    )
    # Shared assets, fx-9860G-only assets and fx-CG-50-only assets
    set(ASSETS
      # ...
    )

    set(ASSETS_cg
      assets-cg/example.png
      # ...
    )

    fxconv_declare_assets(${ASSETS} ${ASSETS_cg} WITH_METADATA)

    add_executable(myaddin ${SOURCES} ${ASSETS} ${ASSETS_${FXSDK_PLATFORM}})
    target_compile_options(myaddin PRIVATE -Wall -Wextra -Os -std=c11)
    target_link_libraries(myaddin cSDL_image::cSDL_image cPNG::cPNG cZlib::cZlib cJPEG::cJPEG Gint::Gint)


    if("${FXSDK_PLATFORM_LONG}" STREQUAL fxCG50)
      generate_g3a(TARGET myaddin OUTPUT "SDLIm_App.g3a"
        NAME "SDLIm_App" ICONS assets-cg/icon-uns.png assets-cg/icon-sel.png)
    endif()

Je vise idéalement à obtenir un système plus simple pour limiter les 'find_package()' et les options dans 'target_link_libraries()' au minimum, mais pour le moment il faut se contenter de cela.

En espérant que cela vous aide pour vos projets.
Précédente 1, 2, 3 ··· 10 ··· 20 ··· 30 ··· 34, 35, 36, 37

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 - 2022 | Il y a 45 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