假设我有一个 Node 模块,该模块本质上是使用自动工具对某些标准C库的包装。因此,库本身将使用./configuremake甚至是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允许运行多个命令

10-07 12:18