Shroud est un outil pour créer une interface FORTRAN ou Python dans une bibliothèque C ou C ++. Il peut également créer une API C pour une bibliothèque C ++.
L'utilisateur crée un fichier YAML avec les déclarations C / C ++ enveloppées avec certaines annotations pour fournir des informations sémantiques et des options de génération de code. Shroud produit un wrapper pour la bibliothèque. Le code généré est hautement lié et destiné à être similaire au code qui serait écrit manuel pour créer les liaisons.
verbe
L'utilisateur crée un fichier YAML qui comprend des déclarations de zoo.hpp
.
library: zoo
cxx_header: zoo.hpp
declarations:
- decl: class Animal
declarations:
- decl: Animal()
- decl: void speak(const std::string &word)
Cela crée une interface FORTRAN qui peut être utilisée comme:
use zoo_mod
type(Animal) dog
dog = Animal()
dog%speak("woof")
Et de Python
import zoo
dog = zoo.Animal()
dog.speak("woof")
Pour commencer à utiliser Shroud, consultez la documentation complète:
http://shroud.readthedocs.io/en/develop
Présentation sur FORTRANCON2020
https://www.youtube.com/watch?v=1mdi-m94vdc diapositives
https://groups.io/g/shroud-users
Le Fortran généré nécessite un compilateur FORTRAN 2003.
Le Python généré nécessite Python 2.7 ou 3.4+.
Caractéristiques Python:
Le linceul peut être installé à l'aide de PIP
pip install llnl-shroud
Cela peut être fait dans un environnement virtuel comme
cd my_project_folder
virtualenv my_project
source my_project/bin/activate
pip install llnl-shroud
Cela suppose la coquille de bash. Source active.csh pour csh.
De plus, un fichier créé par Shiv est disponible à partir de la version GitHub. Shroud et Pyyaml sont regroupés en un seul exécutable qui utilise le Python3 sur votre chemin. Shiv nécessite Python 3.6+.
wget https://github.com/LLNL/shroud/archive/shroud-0.13.0.pyz
Copyright (C) 2017-2024, Lawrence Livermore National Security, LLC. Produit au Lawrence Livermore National Laboratory.
Identificateur de licence SPDX: (Clause BSD-3)
Voir la licence pour plus de détails
Open source illimitée - Distribution BSD 3-CLAUSE LLNL-CODE-738041
OCEC-17-143
Les fichiers individuels contiennent des balises SPDX au lieu du texte complet de licence. Cela permet le traitement machine des informations de licence basées sur les identificateurs de licence SPDX disponibles ici: https://spdx.org/licenses/
Les fichiers licenciés sous forme de bsd 3 clause contiennent le texte suivant dans l'en-tête de licence:
Identificateur de licence SPDX: (Clause BSD-3)
Shroud regroupe certaines de ses dépendances externes dans son référentiel. Ces forfaits sont couverts par diverses licences permissives. Une liste de résumé suit. Voir la licence incluse avec chaque package pour plus de détails.
Packagename: fruit
PackagehomePage: https://sourceforge.net/projects/fortranxunit/
PackageLicensEDEClared: BSD-3-CLAUSE