为C和C++库生成FORTRAN和Python包装器
llnl-shroud的Python项目详细描述
coverage是一个工具,用于创建到C的Fortran或Python接口 或者C++库。它还可以为C++库创建一个C API。在
<>用户创建一个YAML文件,其中的C/C++声明要包装 以及一些注释,以提供语义信息和代码 生成选项。coverage为库生成一个包装器。 生成的代码具有很高的可读性,并且与代码类似 这将被手工编写来创建绑定。在动词
- 把(尸体)裹在裹尸布里埋葬。在
- 盖住或包住以使看不见。在
目标
- 简化了C++库的包装器的创建。在
- 生成易于理解的代码。在
- 没有依赖的运行库。在
示例
用户创建一个包含来自zoo.hpp
的声明的YAML文件。在
library: zoo
cxx_header: zoo.hpp
declarations:
- decl: class Animal
declarations:
- decl: Animal()
- decl: void speak(const std::string &word)
这将创建一个Fortran接口,可用于:
^{pr2}$从Python身上
import zoo
dog = zoo.Animal()
dog.speak("woof")
文件
要开始使用裹尸布,请查看完整的文档:
http://shroud.readthedocs.io/en/develop
邮件列表
https://groups.io/g/shroud-users
必需的软件包
< H2> C++→C→FORTRAN < /H2>生成的Fortran需要Fortran 2003编译器。在
< H2> C++或C到Python < /H2>生成的Python需要python2.7或3.4+。在
Python特性:
- 对数组使用NumPy。如果NumPy被过度使用,也可以使用Python列表。在
- 对类使用扩展类型。在
- 创建可读源。在
入门
护罩可使用pip安装
pip install llnl-shroud
另外,由创建的文件 shiv 可从github版本获得。 裹尸布和PyYAML被捆绑到一个单独的可执行文件中,它使用 你路上的Python。在
wget https://github.com/LLNL/shroud/archive/shroud-0.12.1.pyz
许可证
版权所有(c)2017-2020,Lawrence Livermore National Security,LLC。 在劳伦斯利弗莫尔国家实验室生产。在
SPDX许可证标识符:(BSD-3-CREASE)
有关详细信息,请参见LICENSE
无限开源-BSD 3子句分发 ^{{cd3}
SPDX使用
单个文件包含SPDX标记,而不是完整的许可证文本。 这使得基于SPDX的许可证信息的机器处理成为可能 此处提供的许可证标识符:https://spdx.org/licenses/
被授权为bsd3-Clause的文件包含以下内容 许可证标题中的文本:
SPDX许可证标识符:(BSD-3-CREASE)
外部包装
裹尸布在其存储库中捆绑了一些外部依赖项。这些 软件包受各种许可证的保护。摘要清单 跟随。有关详细信息,请参阅每个软件包附带的许可证。在
包装名称:水果
软件包主页:https://sourceforge.net/projects/fortranxunit/
包装许可声明:BSD-3-条款
- 项目
标签: