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的構建過程的東西。