vnpy/binding/generator
nanoric 8bb0bb5fbf [Mod] 再次进行一些格式修改
[Add] 增加对binding和tests的代码质量检查
[Add] 更新README.md
2019-01-24 09:06:31 -04:00
..
3rd_party
adaptor [Add] use flake8 2019-01-24 09:06:31 -04:00
autocxxpy [Mod] 再次进行一些格式修改 2019-01-24 09:06:31 -04:00
doc
templates [Mod] rename hint.py into hint.py.in 2019-01-24 09:06:30 -04:00
tests/tests
__init__.py [Mod] 再次进行一些格式修改 2019-01-24 09:06:31 -04:00
.gitignore
env.props
generate_ctp.py [Add] use flake8 2019-01-24 09:06:31 -04:00
README.MD
tests.sln
TODO.txt

autocxxpy

项目主旨

这个项目意在分析C++头文件并且生成一个对应的pyd文件以便python调用。 作为vnpy的一个代码生成工具目前主要用来生成vnpy.binding的代码以便vnpy调用C++的东西。

特点

  • 可以从头文件以及相应的依赖库直接生pyd文件对应的代码。
  • 可以在C++层自定义任何函数的转化细节
  • 精准的分析基于clang进行语法分析不会因为代码格式而出现分析失误。

可以做到哪些东西

目前可以正确分析C++的以下元素: 全局域: define enum class/struct functions typedef class: data member(variable) method(functions) destructor

分析正确率

基于CLang编译器分析的正确率取决于clang。

转化细节

请看converts.md

如何使用

在使用之前,先下载clang。如果需要其他版本的CLang请看这里
安装好clang之后将所需的库复制至/vnpy/binding/generator/目录下。 在Windows下所需的库是libclang.dll。Linux下则为libclang.so。

如果想为类ctp接口生成代码请看ctp.md

如果想为新接口生成代码,请看converts.md

以后会增加哪些支持

增加什么的分析主要看以后遇到哪些接口。 若目前的生成器能无法分析所遇到接口的所有元素,那么肯定会增加新功能。