C-包装文件对于一些原因我有C++编写的具有由C-函数中“包装”被正确地称为共享库的相当多的功能。现在,我不知道如果我可以自动完成这一过程(最好很好地融入我的CMake建造过程)CMake的:自动生成从CPP-文件
一个例子:假设我有函数定义
extern "C" void foo(Somestruct myinfo, char const * const data, char const * const data2)
在我.HPP文件。现在,我会改变这个定义,说
C_WRAPPER void foo(Somestruct myinfo, ARG(1) data, ARG(3) data2)
使用一些宏,这可以转换为原来的形式没有任何问题 - 因此,离开HPP文件从功能上看不变。
一些解析器现在应该阅读本文件并生成一个新的C-文件,包含(例如)
extern void foo(Somestruct myinfo, char const * const, char const*const);
void foo_wrapper(Array everything) {
char * data1 = fromArray(array, 1);
char * data3 = fromArray(arary, 3);
foo(fromArray(0), data1, data3);
}
边界条件:总体布局看起来总是相同的。唯一的区别是,ARG
的个数为一定不变。的ARG
的参数给所述阵列中的数据所在的位置。
目前包装文件是手工编写的,这就造成了由于界面改变了过去一些耗时的错误。这就是我想要将这一步自动化的原因。
你知道的方式来归档这样的事情,而无需创建一个解析器自己?正如所说的,最好是适合我使用CMake的构建过程的东西。