Introduction à SWIG
SWIG (Simplified Wrapper and
Interface Generator) est un compilateur qui intègre le C et le C++
avec des langages comme Perl,
Python, Tcl, Ruby,
PHP, Java, JavaScript, C#, D,
Go, Lua, Octave,
R, Racket, Scilab, Scheme et Ocaml. SWIG
peut aussi exporter son arbre d'analyse en s-expressions
Lisp et en XML.
SWIG lit les en-têtes C/C++ annotées et crée un code enveloppe (code
glue) afin de faire les bibliothèques correspondantes en
C/C++ disponibles aux programmes
listés, ou pour étendre des programmes C/C++ avec un langage de script.
Ce paquet est connu pour pouvoir être construit et fonctionner
correctement avec une plateform 12.4.
Informations sur le paquet
-
Téléchargement (HTTP) : https://downloads.sourceforge.net/swig/swig-4.3.1.tar.gz
-
Téléchargement (FTP) :
-
Somme de contrôle MD5 du téléchargement :
4929864e1b040a51370160d17669d6f1
-
Taille du téléchargement : 8,2 Mo
-
Estimation de l'espace disque requis : 90 Mo
(2,2 Go avec les tests)
-
Estimation du temps de construction : 0,3 SBU (plus
8,4 SBU pour les tests, avec parallélisme = 4 dans les
deux cas)
Dépendances de SWIG
Requises
pcre2-10.45
Facultatives
Boost-1.89.0 pour les tests, et les langages
mentionnés en introduction, en tant que dépendance à l'exécution
Installation de SWIG
Installez SWIG en exécutant les
commandes suivantes :
./configure --prefix=/usr \
--without-javascript \
--without-maximum-compile-warnings &&
make
Pour tester le résultat, tapez : make JSCXX=g++ TCL_INCLUDE= -k
check. L'effacement de la variable TCL_INCLUDE
est nécessaire car elle est
incorrectement initialisée par configure. Les tests ne sont lancés que
pour les langages installés sur votre machine, donc l'espace disque
et les valeurs de SBU pour les tests peuvent varier et ne doivent
être considérées que comme des indications d'ordre de grandeur.
Selon la documentation de SWIG,
l'échec de quelques tests ne doit pas être considéré comme
alarmant. Les tests go sont bogués et peuvent générer beaucoup de
sortie inutile.
Maintenant, en tant qu'utilisateur root
:
make install &&
cp -v -R Doc -T /usr/share/doc/swig-4.3.1
Explication des commandes
--without-maximum-compile-warnings
:
désactive la compatibilité renforcée ansi du compilateur, qui
génère des erreurs dans les entêtes Lua (depuis Lua 5.3).
--without-<langage>
: permet
de désactiver la construction des tests et exemples pour
<langage>, mais toutes les possibilités des langages de
SWIG sont toujours construites. Ce
paramètre est utilisé pour JavaScript car l'implémentation SWIG est
incomplète et de nombreux tests échouent à cause de changements de
l'API dans Node-20.