Java SWIG pour Android NDK sous Ubuntu

Java SWIG pour Android NDK sous Ubuntu

Si vous faites du code Natif pour Android via JNI. Swig peut vous servir à fair le lien entre les deux mondes d’un coté le Java de dalvik et d’un autre coté le C++ NDK, en générant un wraper basé sur JNI.
La version courante de Swig pour Ubuntu (2.04) ne supporte pas Androïd,  En  compilant le wraper avec le NDK android vous obtiendrez:

jni/wrap.cpp: In constructor 'Swig::Director::JNIEnvWrapper::JNIEnvWrapper(const Swig::Director*)':
jni/wrap.cpp:335: error: invalid conversion from 'void**' to 'JNIEnv**'
jni/wrap.cpp:335: error:   initializing argument 1 of 'jint_JavaVM::AttachCurrentThread(JNIEnv**, void*)'

Il faut swig en version 2.05 minimum qui dispose d’un support pour Android.

Vous pouvez télécharger la dernier archive swig ici.

L’installation est classique, avec un  classique:

./configure

Et là c’est le drame:

configure: error:
        Cannot find pcre-config script from PCRE (Perl Compatible
Regular Expressions)
        library package. This dependency is needed for configure to
complete,
        Either:
        - Install the PCRE developer package on your system (preferred
approach).
        - Download the PCRE source tarball, build and install on your system
          as you would for any package built from source distribution.
        - Use the Tools/pcre-build.sh script to build PCRE just for SWIG
to statically
          link against. Run 'Tools/pcre-build.sh --help' for instructions.
          (quite easy and does not require privileges to install PCRE on
your system)
        - Use configure --without-pcre to disable regular expressions
support in SWIG
          (not recommended).
See `config.log' for more details.

La solution est simple installer libpcre3-dev. (faut-il encore le savoir)

donc un coût de:
sudo apt-get install libpcre3-dev
Et on fini avec le classique
make
sudo make install