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 相关文章推荐
JavaScript的类型转换(字符转数字 数字转字符)
Aug 30 Javascript
JavaScript中的noscript元素属性位置及作用介绍
Apr 11 Javascript
JavaScript实现QueryString获取GET参数的方法
Jul 02 Javascript
js展开闭合效果演示代码
Jul 24 Javascript
js 绑定键盘鼠标事件示例代码
Feb 12 Javascript
使用jQuery将多条数据插入模态框的实现代码
Oct 08 Javascript
分享javascript实现的冒泡排序代码并优化
Jun 05 Javascript
移动端web滚动分页的实现方法
May 05 Javascript
vue实现长图垂直居上 vue实现短图垂直居中
Oct 18 Javascript
使用express获取微信小程序二维码小记
May 21 Javascript
layui2.0使用table+laypage实现真分页
Jul 27 Javascript
Vue性能优化的方法
Jul 30 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
win7系统配置php+Apache+mysql环境的方法
2015/08/21 PHP
php文件包含的几种方式总结
2019/09/19 PHP
javascript 类方法定义还是有点区别
2009/04/15 Javascript
Javascript图像处理—为矩阵添加常用方法
2012/12/27 Javascript
jquery 提示信息显示后自动消失的具体实现
2013/12/18 Javascript
jQuery选择器全面总结
2014/01/06 Javascript
javascript简单性能问题及学习笔记
2014/02/04 Javascript
jQuery+css3动画属性制作猎豹浏览器宽屏banner焦点图
2015/03/16 Javascript
javascript:void(0)点击登录没反应怎么解决
2015/11/13 Javascript
对jQuary选择器的全面总结
2016/06/20 Javascript
JavaScript 函数模式详解及示例
2016/09/07 Javascript
使用Node.js实现ORM的一种思路详解(图文)
2017/10/24 Javascript
Webpack 之 babel-loader文件预处理器详解
2018/03/23 Javascript
基于JS实现html中placeholder属性提示文字效果示例
2018/04/19 Javascript
babel7.x和webpack4.x配置vue项目的方法步骤
2019/05/12 Javascript
浅谈微信小程序列表埋点曝光指南
2019/10/15 Javascript
js实现图片粘贴到网页
2019/12/06 Javascript
[01:04:49]KG vs LGD 2019国际邀请赛小组赛 BO2 第二场 8.15
2019/08/16 DOTA
Python实现二分查找算法实例
2015/05/26 Python
Python计时相关操作详解【time,datetime】
2017/05/26 Python
python中cPickle类使用方法详解
2018/08/27 Python
python使用Paramiko模块实现远程文件拷贝
2019/04/30 Python
seek引发的python文件读写的问题及解决
2019/07/26 Python
Pytorch之卷积层的使用详解
2019/12/31 Python
解决Tensorflow2.0 tf.keras.Model.load_weights() 报错处理问题
2020/06/12 Python
python 使用OpenCV进行简单的人像分割与合成
2021/02/02 Python
CSS3的Border-radius轻松制作圆角
2012/12/24 HTML / CSS
css3媒体查询中device-width和width的区别详解
2020/03/27 HTML / CSS
DHC美国官网:日本通信销售第一的化妆品品牌
2017/11/12 全球购物
英国标准协会商店:BSI Shop
2019/02/25 全球购物
教师个人鉴定材料
2014/02/08 职场文书
中文专业毕业生自荐信
2014/05/24 职场文书
学术诚信承诺书
2014/05/26 职场文书
成绩单家长意见
2015/06/03 职场文书
责任书格式
2019/04/18 职场文书
Python 图片添加美颜效果
2022/04/28 Python