有没有办法在node-gyp命令行上指定编译器标志(例如,预处理器macros定义)?

我正在尝试将Node.js插件集成到基于CMake的现有构build系统中。 插件构build需要CMake上下文中提供的大量预处理器macros定义和库依赖项。 我希望能够通过CMake调用时将这些传递给node-gyp 。 不幸的是,我还没有find一个简单的方法来做到这一点。

我试过使用这种普通的旧gyp的方法:

 node-gyp configure -d -DPOSIX=1 

-D选项似乎没有被node-gyp传递。 查看node-gyp的源代码,这并不令人惊讶。 有没有一种直接的,直接的方式来做到这一点,或者我坚持以编程方式在binding.gyp生成条目,从环境或其他方面提取这些信息?

我不知道为什么你看到在binding.gyp中使用cflags设置的缺点 – 但我只是通过使用.bashrc设置标志来做类似的工作

export CFLAGS =' – m32'export CXXFLAGS =' – m32'export LDFLAGS =' – m3'

使用“定义”。

 { "targets": [ { "target_name": "MyAddon", "sources": [ "File1.cpp", "File2.cpp" ], "libraries": [ "MyNeeded.lib" ], "defines": [ "_UNICODE", "UNICODE" ] } ] } 

这在运行node-gyp configure时将定义添加到config.gypi中