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


Posted in Javascript onDecember 18, 2018

最近用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"
 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'
    ]
    }]
   ]

总结

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

Javascript 相关文章推荐
utf8的编码算法 转载
Dec 27 Javascript
获取JavaScript用户自定义类的类名称的代码
Mar 08 Javascript
用JS控制回车事件的代码
Feb 20 Javascript
JS如何将UTC格式时间转本地格式
Sep 04 Javascript
浅谈document.write()输出样式
May 07 Javascript
jQuery实现自定义右键菜单的树状菜单效果
Sep 02 Javascript
javascript实现任务栏消息提示的简单实例
May 31 Javascript
JavaScript实战之带收放动画效果的导航菜单
Aug 16 Javascript
使用Node.js实现RESTful API的示例
Aug 01 Javascript
深入学习TypeScript 、React、 Redux和Ant-Design的最佳实践
Jun 17 Javascript
uni-app微信小程序登录授权的实现
May 22 Javascript
在elementui中Notification组件添加点击事件实例
Nov 11 Javascript
JS监听滚动和id自动定位滚动
Dec 18 #Javascript
JS实现的tab页切换效果完整示例
Dec 18 #Javascript
CryptoJS中AES实现前后端通用加解密技术
Dec 18 #Javascript
antd组件Upload实现自己上传的实现示例
Dec 18 #Javascript
微信小程序解除10个请求并发限制
Dec 18 #Javascript
vue项目中axios请求网络接口封装的示例代码
Dec 18 #Javascript
vue中引入第三方字体文件的方法示例
Dec 17 #Javascript
You might like
PHP远程连接MYSQL数据库非常慢的解决方法
2008/07/05 PHP
解析crontab php自动运行的方法
2013/06/24 PHP
php+ajax实现图片文件上传功能实例
2014/06/17 PHP
php实现转换ubb代码的方法
2015/06/18 PHP
PHP开发的文字水印,缩略图,图片水印实现类与用法示例
2019/04/12 PHP
让插入到 innerHTML 中的 script 跑起来的实现代码
2006/07/01 Javascript
srcElement表格样式
2006/09/03 Javascript
JavaScript面向对象编程
2008/03/02 Javascript
JavaScript函数定义的常见注意事项小结
2014/09/16 Javascript
浅谈类似于(function(){}).call()的js语句
2015/03/30 Javascript
jquery实现输入框实时输入触发事件代码
2016/12/21 Javascript
JS实现经典的中国地区三级联动下拉菜单功能实例【测试可用】
2017/06/06 Javascript
详解Vue.js中.native修饰符
2018/04/24 Javascript
解决Vue中 父子传值 数据丢失问题
2019/08/27 Javascript
vue-socket.io跨域问题有效解决方法
2020/02/11 Javascript
前端使用crypto.js进行加密的函数代码
2020/08/16 Javascript
[02:20]DOTA2亚洲邀请赛 IG战队出场宣传片
2015/02/07 DOTA
python遍历类中所有成员的方法
2015/03/18 Python
Pycharm无法使用已经安装Selenium的解决方法
2018/10/13 Python
python numpy元素的区间查找方法
2018/11/14 Python
python实现一个简单的udp通信的示例代码
2019/02/01 Python
Django中使用极验Geetest滑动验证码过程解析
2019/07/31 Python
django使用graphql的实例
2020/09/02 Python
python 实现客户端与服务端的通信
2020/12/23 Python
python实现杨辉三角的几种方法代码实例
2021/03/02 Python
html5读取本地文件示例代码
2014/04/22 HTML / CSS
基于HTML5实现类似微信手机摇一摇功能(计算摇动次数)
2017/07/24 HTML / CSS
香港士多网上超级市场:Ztore
2021/01/09 全球购物
法国低价在线宠物商店:bitiba.fr
2020/07/03 全球购物
一道SQL存储过程面试题
2016/10/07 面试题
《花瓣飘香》教学反思
2014/04/15 职场文书
同居协议书范本
2014/04/23 职场文书
2015年公路养护工作总结
2015/05/13 职场文书
60句有关成长的名言
2019/09/04 职场文书
Python基础之hashlib模块详解
2021/05/06 Python
Jupyter Notebook 如何修改字体和大小以及更改字体样式
2021/06/03 Python