SHARRUD es una herramienta para crear una interfaz Fortran o Python para una biblioteca C o C ++. También puede crear una API C para una biblioteca C ++.
El usuario crea un archivo YAML con las declaraciones C/C ++ para envolver junto con algunas anotaciones para proporcionar información semántica y opciones de generación de código. Shroud produce un envoltorio para la biblioteca. El código generado es altamente legible y tiene la intención de ser similar al código que estaría escrito a mano para crear los enlaces.
verbo
El usuario crea un archivo YAML que incluye declaraciones de zoo.hpp .
library: zoo
cxx_header: zoo.hpp
declarations:
- decl: class Animal
declarations:
- decl: Animal()
- decl: void speak(const std::string &word)
Esto crea una interfaz Fortran que se puede usar como:
use zoo_mod
type(Animal) dog
dog = Animal()
dog%speak("woof")
Y de Python
import zoo
dog = zoo.Animal()
dog.speak("woof")
Para comenzar a usar Sudroud, consulte la documentación completa:
http://shroud.readthedocs.io/en/develop
Presentación en Fortrancon2020
https://www.youtube.com/watch?v=1mdi-m94vdc diapositivas
https://groups.io/g/shroud-users
El Fortran generado requiere un compilador Fortran 2003.
La pitón generada requiere Python 2.7 o 3.4+.
Características de Python:
La mortaja se puede instalar utilizando PIP
pip install llnl-shroud
Esto se puede hacer en un entorno virtual como
cd my_project_folder
virtualenv my_project
source my_project/bin/activate
pip install llnl-shroud
Esto supone el caparazón de la fiesta. Fuente activar.csh para CSH.
Además, un archivo creado por SHIV está disponible en la versión de GitHub. SHUDRUS y Pyyaml se incluyen en un solo ejecutable que usa el Python3 en su camino. Shiv requiere Python 3.6+.
wget https://github.com/LLNL/shroud/archive/shroud-0.13.0.pyz
Copyright (c) 2017-2024, Lawrence Livermore National Security, LLC. Producido en el Laboratorio Nacional Lawrence Livermore.
Identificador SPDX-license: (cláusula BSD-3)
Ver Licencia para más detalles
Corriente abierto ilimitado-BSD 3 cláusula Distribución LLNL-CODE-738041 OCEC-17-143
Los archivos individuales contienen etiquetas SPDX en lugar del texto completo de la licencia. Esto permite el procesamiento de la máquina de la información de la licencia basada en los identificadores de licencia SPDX que están disponibles aquí: https://spdx.org/licenses/
Los archivos que tienen licencia como cláusula BSD 3 contienen el siguiente texto en el encabezado de la licencia:
Identificador SPDX-license: (cláusula BSD-3)
Sboud agrupa algunas de sus dependencias externas en su repositorio. Estos paquetes están cubiertos por varias licencias permisivas. Sigue un listado de resumen. Consulte la licencia incluida con cada paquete para obtener todos los detalles.
Packagename: fruta
PaqueteHomepage: https://sourceforge.net/projects/forttranxunit/
PackageliceDeclared: Cláusula BSD-3