Makefile/cmake node-gyp中区分判断不同平台的方法

  

最近用QTK开发一个下载(下载到开发板)工具,同时用到了Makefile/cmake和node-gyp,而且都要针对不同平台做不同的处理。这里做个记录,以备以后有需要时查阅。

  

<强> Makefile

  

在Makefile中,可以用OS变量判断当前系统是否是窗户,然后用uname来判断当前系统是MacOS还是其它系统。

        ifeq ($ (OS), Windows_NT)   平台="窗口"   其他的   ifeq($(壳牌uname),达尔文)   平台=" MacOS "   其他的   平台="类unix "   endif   endif   全部:   @echo $(平台)      

<强> cmake

  

在cmake中,可以通过苹果变量判断当前系统是否是MacOS,通过UNIX变量判断当前系统是否是UNIX,其它则认为是窗户。

        如果(苹果)//苹果   elseif (UNIX)//UNIX   其他()//窗口   endif ()      

<强> node-gyp

  

在binding.gyp中,可以在条件添加不同平台的处理。

        “条件”:(   (操作系统==捌还?{   “xcode_settings”: {   “GCC_ENABLE_CPP_EXCEPTIONS”:“是的”   },   “来源”:[“本地/串行/src/impl/list_ports/list_ports_osx.cc”、“本地/串行/src/impl/unix.cc”)   },   操作系统==坝?{   “来源”:[“本地/串行/src/impl/list_ports/list_ports_win.cc”、“本地/串行/src/impl/win.cc”),   “库”:(   “-lsetupapi.lib”,   “-lws2_32.lib”   ]   })   )      

<强>总结

  

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对的支持。如果你想了解更多相关内容请查看下面相关链接

Makefile/cmake node-gyp中区分判断不同平台的方法