vnpy/binding/generator
nanoric 4c16a6fd5f [Mod] rename hint.py into hint.py.in
python的template容易让linter报错,设置来设置去太麻烦,就改名吧.
2019-01-24 09:06:30 -04:00
..
3rd_party [Add] added generator code 2019-01-23 03:41:03 -04:00
adaptor [Add] added generator code 2019-01-23 03:41:03 -04:00
autocxxpy [Mod] rename hint.py into hint.py.in 2019-01-24 09:06:30 -04:00
doc [Add] added generator code 2019-01-23 03:41:03 -04:00
templates [Mod] rename hint.py into hint.py.in 2019-01-24 09:06:30 -04:00
tests/tests [Add] added generator code 2019-01-23 03:41:03 -04:00
.gitignore [Add] added generator code 2019-01-23 03:41:03 -04:00
env.props [Add] added generator code 2019-01-23 03:41:03 -04:00
generate_ctp.py [Add] added generator code 2019-01-23 03:41:03 -04:00
README.MD [Add] added generator code 2019-01-23 03:41:03 -04:00
tests.sln [Add] added generator code 2019-01-23 03:41:03 -04:00
TODO.txt [Add] added generator code 2019-01-23 03:41:03 -04:00

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

以后会增加哪些支持

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