首页 > 开发 > JS > 正文

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

2024-05-06 16:47:08
字体:
来源:转载
供稿:网友

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

Makefile

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

ifeq ($(OS),Windows_NT) PLATFORM="Windows"else ifeq ($(shell uname),Darwin)  PLATFORM="MacOS" else  PLATFORM="Unix-Like" endifendifall:  @echo $(PLATFORM)

cmake

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

if(APPLE)//APPLEelseif(UNIX)//UNIXelse()//Windowsendif()

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'    ]    }]   ]

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对VeVb武林网的支持。


注:相关教程知识阅读请移步到JavaScript/Ajax教程频道。
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表