Sharud - это инструмент для создания интерфейса Fortran или Python для библиотеки C или C ++. Он также может создать C API для библиотеки C ++.
Пользователь создает файл YAML с объятиями C/C ++, которые будут обернуты вместе с некоторыми аннотациями для предоставления семантической информации и вариантов генерации кода. Sharud производит обертку для библиотеки. Сгенерированный код хорошо читается и предназначен для того, чтобы быть похожим на код, который был бы написан вручную для создания привязки.
глагол
Пользователь создает файл YAML, который включает объявления от zoo.hpp
.
library: zoo
cxx_header: zoo.hpp
declarations:
- decl: class Animal
declarations:
- decl: Animal()
- decl: void speak(const std::string &word)
Это создает интерфейс Fortran, который можно использовать как:
use zoo_mod
type(Animal) dog
dog = Animal()
dog%speak("woof")
И от Python
import zoo
dog = zoo.Animal()
dog.speak("woof")
Чтобы начать использование плащаницы, ознакомьтесь с полной документацией:
http://shroud.readthedocs.io/en/develop
Презентация на Fortrancon2020
https://www.youtube.com/watch?v=1mdi-m94vdc слайды
https://groups.io/g/shroud-users
Сгенерированный Fortran требует компилятора Fortran 2003.
Сгенерированный Python требует Python 2.7 или 3.4+.
Особенности Python:
Кожух может быть установлен с помощью PIP
pip install llnl-shroud
Это можно сделать в виртуальной среде как
cd my_project_folder
virtualenv my_project
source my_project/bin/activate
pip install llnl-shroud
Это предполагает оболочку Bash. Источник Activate.csh для CSH.
Кроме того, файл, созданный SHIV, доступен из выпуска GitHub. Sharud и Pyyaml объединены в один исполняемый файл, который использует Python3 на вашем пути. Shiv требует Python 3.6+.
wget https://github.com/LLNL/shroud/archive/shroud-0.13.0.pyz
Copyright (C) 2017-2024, Lawrence Livermore National Security, LLC. Производится в Национальной лаборатории Лоуренса Ливермора.
SPDX-License-идентификатор: (BSD-3-CLAUE)
См. Лицензию для деталей
Неограниченный с открытым исходным кодом-BSD 3-Clause Distribution LLNL-CODE-738041
OCEC-17-143
Отдельные файлы содержат теги SPDX вместо полного текста лицензии. Это позволяет обработать машинную информацию о лицензии на основе идентификаторов лицензий SPDX, которые доступны здесь: https://spdx.org/licenses/
Файлы, которые лицензированы как BSD 3-rack, содержат следующий текст в заголовке лицензии:
SPDX-License-идентификатор: (BSD-3-CLAUE)
Планутся некоторые из своих внешних зависимостей в своем хранилище. Эти пакеты охватываются различными разрешающими лицензиями. Резюме следует листинг. Смотрите лицензию, включенную в каждый пакет для получения полной информации.
PackageName: фрукты
PackageHomePage: https://sourceforge.net/projects/fortranxunit/
Packagelicensedeclared: BSD-3-Clause