Makefile/cmake/node-gyp中區(qū)分判斷不同平臺(tái)的方法
最近用QTK開發(fā)一個(gè)下載(下載到開發(fā)板)工具,同時(shí)用到了Makefile/cmake和node-gyp,而且都要針對(duì)不同平臺(tái)做不同的處理。這里做個(gè)記錄,以備以后有需要時(shí)查閱。
Makefile
在Makefile中,可以用OS變量判斷當(dāng)前系統(tǒng)是否是Windows,然后用uname來(lái)判斷當(dāng)前系統(tǒng)是MacOS還是其它系統(tǒng)。
ifeq ($(OS),Windows_NT) PLATFORM="Windows" else ifeq ($(shell uname),Darwin) PLATFORM="MacOS" else PLATFORM="Unix-Like" endif endif all: @echo $(PLATFORM)
cmake
在cmake中,可以通過APPLE變量判斷當(dāng)前系統(tǒng)是否是MacOS,通過UNIX變量判斷當(dāng)前系統(tǒng)是否是UNIX,其它則認(rèn)為是Windows。
if(APPLE) //APPLE elseif(UNIX) //UNIX else() //Windows endif()
node-gyp
在binding.gyp中,可以在conditions添加不同平臺(tái)的處理。
'conditions': [
['OS=="mac"', {
'xcode_settings': {
'GCC_ENABLE_CPP_EXCEPTIONS': 'YES'
},
"sources": ["native/serial/src/impl/list_ports/list_ports_osx.cc","native/serial/src/impl/unix.cc"]
},
'OS=="win"', {
"sources": ["native/serial/src/impl/list_ports/list_ports_win.cc","native/serial/src/impl/win.cc"],
'libraries': [
'-lsetupapi.lib',
'-lws2_32.lib'
]
}]
]
總結(jié)
以上就是這篇文章的全部?jī)?nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,謝謝大家對(duì)腳本之家的支持。如果你想了解更多相關(guān)內(nèi)容請(qǐng)查看下面相關(guān)鏈接
相關(guān)文章
javascript類型系統(tǒng)_正則表達(dá)式RegExp類型詳解
下面小編就為大家?guī)?lái)一篇javascript類型系統(tǒng)_正則表達(dá)式RegExp類型詳解。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來(lái)看看吧2016-06-06
JavaScript Event學(xué)習(xí)第五章 高級(jí)事件注冊(cè)模型
在這一章我會(huì)講解兩種高級(jí)時(shí)間注冊(cè)模型:W3C和微軟的。因?yàn)檫@兩個(gè)方法都不能跨瀏覽器,所以在現(xiàn)在看來(lái)他們的使用場(chǎng)合并不多。2010-02-02
ajax接收后臺(tái)數(shù)據(jù)在html頁(yè)面顯示
本篇文章主要介紹了ajax接收后臺(tái)數(shù)據(jù)在html頁(yè)面顯示的方法,具有很好的參考價(jià)值,下面跟著小編一起來(lái)看下吧2017-02-02
javascript中JSON對(duì)象與JSON字符串相互轉(zhuǎn)換實(shí)例
這篇文章主要介紹了javascript中JSON對(duì)象與JSON字符串相互轉(zhuǎn)換,實(shí)例分析了json對(duì)象與字符串常用的幾種轉(zhuǎn)換技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-07-07
javascript實(shí)現(xiàn)促銷倒計(jì)時(shí)+fixed固定在底部
一個(gè)不錯(cuò)的示例使用javascript實(shí)現(xiàn)的促銷倒計(jì)時(shí)且同時(shí)擁有fixed固定在底部,而且兼容ie6,喜歡的朋友可以參考下2013-09-09
bootstrap的3級(jí)菜單樣式,支持母版頁(yè)保留打開狀態(tài)實(shí)現(xiàn)方法
下面小編就為大家?guī)?lái)一篇bootstrap的3級(jí)菜單樣式,支持母版頁(yè)保留打開狀態(tài)實(shí)現(xiàn)方法。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來(lái)看看吧2016-11-11
關(guān)于Javascript中defer和async的區(qū)別總結(jié)
相信看過javascript高級(jí)程序設(shè)計(jì)的人,在javascript高級(jí)程序設(shè)計(jì)里,應(yīng)該看到了介紹了有關(guān)defer和async的區(qū)別,可是比較淺顯,而且也說得不是很清楚。下面我們來(lái)通過這篇文章來(lái)詳細(xì)了解下dfer和async的區(qū)別。2016-09-09

