假设我有一个 Node 模块,该模块本质上是使用自动工具对某些标准C库的包装。因此,库本身将使用./configure
和make
甚至是make install
进行安装。包装代码只是几个文件,可以由gyp处理。但是我该如何处理依赖关系?在编译代码之前,如何指示gyp我要构建自动工具库?还是因为不能期望自动工具在Windows上运行而不可能?如果我无法运行configure
,是否有一些gyp方法可以做类似的事情,特别是检测哪些函数可用,哪些不可用?
最佳答案
使用gyp actions和'target_type': none
可能看起来像这样:
{
'target_name': 'FTGL',
'type': 'none',
'dependencies': ['FreeType'],
'actions': [
{
'action_name': 'build_ftgl',
'message': 'Building FTGL...',
'inputs': ['ftgl/src/FTGL/ftgl.h'],
'outputs': ['ftgl/src/.libs/libftgl.a'],
'action': ['eval', 'cd ftgl && ./configure --with-pic && make -C src'],
},
],
}
注意:在操作中使用eval
允许运行多个命令