A cobertura é uma ferramenta para criar uma interface Fortran ou Python para uma biblioteca C ou C ++. Ele também pode criar uma API C para uma biblioteca C ++.
O usuário cria um arquivo YAML com as declarações C/C ++ a serem envolvidas junto com algumas anotações para fornecer informações semânticas e opções de geração de código. A cobertura produz um invólucro para a biblioteca. O código gerado é altamente legível e destinado a ser semelhante ao código que seria escrito à mão para criar as ligações.
verbo
O usuário cria um arquivo YAML que inclui declarações do zoo.hpp
.
library: zoo
cxx_header: zoo.hpp
declarations:
- decl: class Animal
declarations:
- decl: Animal()
- decl: void speak(const std::string &word)
Isso cria uma interface fortran que pode ser usada como:
use zoo_mod
type(Animal) dog
dog = Animal()
dog%speak("woof")
E de Python
import zoo
dog = zoo.Animal()
dog.speak("woof")
Para começar a usar a mortalha, confira a documentação completa:
http://shroud.readthedocs.io/en/develo
Apresentação em Fortrancon2020
https://www.youtube.com/watch?v=1MDI-M94VDC Slides
https://groups.io/g/shroud-users
O Fortran gerado requer um compilador fortran 2003.
O Python gerado requer Python 2.7 ou 3.4+.
Recursos Python:
A mortalha pode ser instalada usando PIP
pip install llnl-shroud
Isso pode ser feito em um ambiente virtual como
cd my_project_folder
virtualenv my_project
source my_project/bin/activate
pip install llnl-shroud
Isso pressupõe o shell da festa. Fonte Activate.csh para csh.
Além disso, um arquivo criado por shiv está disponível na versão do GitHub. A mortalha e o pyyaml são agrupadas em um único executável que usa o Python3 no seu caminho. Shiv requer Python 3.6+.
wget https://github.com/LLNL/shroud/archive/shroud-0.13.0.pyz
Copyright (c) 2017-2024, Lawrence Livermore National Security, LLC. Produzido no Laboratório Nacional de Lawrence Livermore.
SPDX-LICENSE-IDENTIDADE: (BSD-3-CLUSUS)
Veja a licença para obter detalhes
Código aberto ilimitado-Distribuição de 3 cláusulas BSD LLNL-CODE-738041
OCEC-17-143
Os arquivos individuais contêm tags SPDX em vez do texto completo da licença. Isso permite o processamento da máquina de informações de licença com base nos identificadores de licença SPDX que estão disponíveis aqui: https://spdx.org/license/
Os arquivos licenciados como 3 cláusulas BSD contêm o seguinte texto no cabeçalho da licença:
SPDX-LICENSE-IDENTIDADE: (BSD-3-CLUSUS)
A mortalha faz com que algumas de suas dependências externas em seu repositório. Esses pacotes são cobertos por várias licenças permissivas. Uma listagem de resumo segue. Veja a licença incluída em cada pacote para obter detalhes completos.
Packagename: Frutas
PackageHomePage: https://sourceforge.net/projects/fortraNxunit/
PackagelicensEdCarared: BSD-3-cláusula