最近用QTK开发一个下载(下载到开发板)工具,同时用到了Makefile/cmake和node-gyp,而且都要针对不同平台做不同的处理。这里做个记录,以备以后有需要时查阅。
创新互联是一家专注于成都网站设计、网站建设、外贸网站建设与策划设计,静安网站建设哪家好?创新互联做网站,专注于网站建设十年,网设计领域的专业建站公司;建站业务涵盖:静安等地区。静安做网站价格咨询:18982081108
Makefile
在Makefile中,可以用OS变量判断当前系统是否是Windows,然后用uname来判断当前系统是MacOS还是其它系统。
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变量判断当前系统是否是MacOS,通过UNIX变量判断当前系统是否是UNIX,其它则认为是Windows。
if(APPLE) //APPLE elseif(UNIX) //UNIX else() //Windows endif()
node-gyp
在binding.gyp中,可以在conditions添加不同平台的处理。
'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' ] }] ]
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对创新互联的支持。如果你想了解更多相关内容请查看下面相关链接
分享文章:Makefile/cmake/node-gyp中区分判断不同平台的方法
本文地址:https://www.cdcxhl.com/article38/gsessp.html
成都网站建设公司_创新互联,为您提供外贸网站建设、定制开发、服务器托管、企业网站制作、网站营销、
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联