vnpy/binding/generator/README.MD

49 lines
1.5 KiB
Plaintext
Raw Normal View History

2019-01-22 10:15:47 +00: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](doc/converts.md)
## 如何使用
在使用之前,先下载[clang]。如果需要其他版本的CLang[请看这里](http://releases.llvm.org/download.html)。
安装好clang之后将所需的库复制至/vnpy/binding/generator/目录下。
在Windows下所需的库是libclang.dll。Linux下则为libclang.so。
如果想为类ctp接口生成代码请看[ctp.md](doc/ctp.md)
如果想为新接口生成代码,请看[converts.md](doc/converts.md)
## 以后会增加哪些支持
增加什么的分析主要看以后遇到哪些接口。
若目前的生成器能无法分析所遇到接口的所有元素,那么肯定会增加新功能。
[clang]:http://releases.llvm.org/7.0.1/LLVM-7.0.1-win64.exe