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.2.
Informations sur le paquet
-
Téléchargement (HTTP) : https://downloads.sourceforge.net/swig/swig-4.2.1.tar.gz
-
Téléchargement (FTP) :
-
Somme de contrôle MD5 du téléchargement :
7697b443d7845381d64c90ab54d244af
-
Taille du téléchargement : 8,0 Mo
-
Estimation de l'espace disque requis : 81 Mo
(1,8 Go avec les tests)
-
Estimation du temps de construction : 0,1 SBU (plus
7,7 SBU pour les tests, avec parallélisme = 4 dans les
deux cas)
Dépendances de SWIG
Requises
pcre2-10.44
Facultatives
Boost-1.86.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 : PY3=1 make 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.2.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.