Bonjour à tous!
Dans le cadre de mon projet chemfiles (lien vers le site, et la présentation sur ce forum), je suis en train d'écrire un binding Java utilisant JNA du coté Java pour appeler des fonctions C dans une bibliothèque dynamique.
Pour faire court, c'est une bibliothèque C++ avec une interface C qui est utilisée pour proposer des interfaces dans plusieurs autres langages.
Pour l'instant, les différentes interfaces utilisent soit le gestionnaire de paquets/outil de compilation standard du langage (pip, Pkg.jl, cargo), soit CMake. La bibliothèque C++ utilise CMake pour la compilation.
Je cherche donc quel outil utiliser pour cette version Java pour que les utilisateurs ne soit pas déroutés à l'utilisation. J'ai besoin d'un outil capable de compiler mon code java en ligne de commande (je n'utilise pas d'IDE, et je ne veux pas imposer un IDE), et de lancer la compilation de la bibliothèque C++ via CMake. J'ai un prototype avec Maven ici, qui fonctionne pas trop mal. Mais en regardant sur Internet, il me semble que Gradle est plus utilisé aujourd'hui, en particulier pour les projets sur la JVM mais pas en Java, et pour Android. Toutefois, la seule manière de compiler du code C++ avec CMake que je trouve pour gradle semble liée au NPK Android, et pas utilisable pour le desktop. Les questions que je me pose sont donc:
- Quel est le gestionnaire de compilation qui permettra au plus de monde d'utiliser mon projet, en étant à l'aise?
- Si la réponse à la question précédente est gradle, comment puis-je intégrer la compilation de code C++ avec Cmake dans un projet gradle? Il serait possible de juste lancer les deux commandes nécessaires (
cmake source/dir
,cmake build/dir --build --config release
) depuis une règle gradle personalisée, est-ce la meilleure manière de faire?
Merci pour tous vos avis!