Quelle est la meilleure pratique pour faire une bibliothèque de langages mixtes où le langage de la bibliothèque nécessite une initialisation à l'exécution?Comment résoudre les fonctions d'initialisation d'exécution spécifiques au compilateur pour une bibliothèque à partir de l'application principale
J'ai un problème où je voudrais créer une certaine bibliothèque dans Fortran qui doit être utilisée à partir de C++. Je voudrais préserver l'indépendance de la plate-forme et l'indépendance du compilateur si possible. Maintenant, les deux compilateurs avec lesquels j'ai joué, G95 et GFortran exigent tous deux que l'application principale appelle certaines routines d'initialisation spécifiques au compilateur pour configurer correctement le runtime avant d'utiliser la bibliothèque. Ces fonctions ont des noms et des signatures différents selon le compilateur (pour G95 la fonction est vide g95_runtime_start (int argc, char * argv []))
J'utilise CMake pour gérer le projet et le sous-projet de bibliothèque est statique bibliothèque. Dois-je dans mon fichier cmake pour l'application principale déterrer quel compilateur fortran est utilisé pour le sous-projet bibliothèque et laisser CMake créer un define dans le projet principal pour pouvoir conditionnellement compiler l'application principale avec n'importe quelle routine init? C'est très gênant. Y a-t-il un meilleur moyen?