SHROUGE ist ein Werkzeug zum Erstellen einer FORTRAN- oder Python -Schnittstelle zu einer C- oder C ++ - Bibliothek. Es kann auch eine C -API für eine C ++ - Bibliothek erstellen.
Der Benutzer erstellt eine YAML -Datei mit den C/C ++ - Deklarationen, die zusammen mit einigen Anmerkungen umwickelt werden sollen, um semantische Informationen und Codegenerierungsoptionen bereitzustellen. Leichentuch produziert eine Verpackung für die Bibliothek. Der generierte Code ist sehr lesbar und soll dem Code ähnlich sein, der handgeschrieben wäre, um die Bindungen zu erstellen.
Verb
Der Benutzer erstellt eine YAML -Datei, die Deklarationen aus zoo.hpp
enthält.
library: zoo
cxx_header: zoo.hpp
declarations:
- decl: class Animal
declarations:
- decl: Animal()
- decl: void speak(const std::string &word)
Dies erstellt eine FORTRAN -Schnittstelle, die als:
use zoo_mod
type(Animal) dog
dog = Animal()
dog%speak("woof")
Und von Python
import zoo
dog = zoo.Animal()
dog.speak("woof")
Um mit Sharroud zu beginnen, lesen Sie die vollständige Dokumentation:
http://shroud.readthedocs.io/en/develop
Präsentation bei fortrancon2020
https://www.youtube.com/watch?v=1mdi-m94vdc Slides
https://groups.io/g/shroud-users
Der erzeugte Forran benötigt einen FORTRAN 2003 Compiler.
Der erzeugte Python benötigt Python 2.7 oder 3.4+.
Python -Funktionen:
Leichentuch kann mit PIP installiert werden
pip install llnl-shroud
Dies kann in einer virtuellen Umgebung als erfolgen
cd my_project_folder
virtualenv my_project
source my_project/bin/activate
pip install llnl-shroud
Dies setzt die Bash -Hülle an. Source Activate.csh für CSH.
Darüber hinaus ist eine von Shiv erstellte Datei in der GitHub -Version erhältlich. Leichentuch und Pyyaml werden zu einer einzigen ausführbaren Datei gebündelt, die den Python3 auf Ihrem Weg verwendet. Shiv benötigt Python 3.6+.
wget https://github.com/LLNL/shroud/archive/shroud-0.13.0.pyz
Copyright (C) 2017-2024, Lawrence Livermore National Security, LLC. Produziert im Lawrence Livermore National Laboratory.
SPDX-Lizenz-Identifikator: (BSD-3-Klausel)
Weitere Einzelheiten finden Sie in Lizenz
Unbegrenzte Open Source-BSD 3-Klauselverteilung LLNL-CODE-738041
OCEC-17-143
Einzelne Dateien enthalten SPDX -Tags anstelle des vollständigen Lizenztextes. Dies ermöglicht die Maschinenverarbeitung von Lizenzinformationen auf der Grundlage der hier verfügbaren SPDX -Lizenzkennungen: https://spdx.org/licenses/
Dateien, die als BSD 3-Klausel lizenziert sind, enthalten den folgenden Text im Lizenzkopf:
SPDX-Lizenz-Identifikator: (BSD-3-Klausel)
Leichentuch bündelt einige seiner externen Abhängigkeiten in seinem Repository. Diese Pakete sind durch verschiedene zulässige Lizenzen abgedeckt. Eine zusammenfassende Auflistung folgt. In der in jedem Paket enthaltenen Lizenz finden Sie alle Details.
Packagename: Obst
PackageHomePage: https://sourceforge.net/projects/fortranxunit/
Packagelicensedeclared: BSD-3-Klausel