2013-08-27 44 views
4

我試圖將一個Node.js插件集成到基於CMake的現有構建系統中。插件構建需要CMake上下文中提供的大量預處理器宏定義和庫依賴項。我希望能夠通過CMake調用時將它們傳遞到node-gyp。不幸的是,我一直無法找到一個簡單的方法來做到這一點。是否可以在node-gyp命令行上指定編譯器標誌(例如,預處理器宏定義)?

我一直在使用用於普通老式gyp這樣的方法嘗試:

node-gyp configure -d -DPOSIX=1 

-D選項似乎並沒有被node-gyp轉嫁。看看node-gyp的來源,這並不令人感到意外。有沒有直接的,直接的方式來做到這一點,或者我堅持以編程方式生成binding.gyp中的條目,從環境或其他方面提取這些信息?

回答

1

我不知道爲什麼你看到一個缺點使用CFLAGS在binding.gyp設置 - 但我只是用的.bashrc

出口CFLAGS =使類似的東西的工作通過設置標誌「 - M32」 export CXXFLAGS =' - m32' export LDFLAGS =' - m3'

+0

這將工作被作爲環境變量來處理事情,而不是任意的預處理器定義。 –

0

使用「定義」。

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

此運行節點GYP配置時增加了定義到您的config.gypi

+0

我從事這工作已經很長時間了,但問題在於我們想在某些構建上下文中使用_different_預處理器定義(由CMake確定),因此只需將它們添加到文件中並非真正成立(如果我記得沒錯)。 –

相關問題