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 document.images实例
May 27 Javascript
js从10种颜色中随机取色实现每次取出不同的颜色
Oct 23 Javascript
在JavaScript中使用对数Math.log()方法的教程
Jun 15 Javascript
jQuery EasyUI实现右键菜单变灰不可用效果
Sep 24 Javascript
关于 jQuery Easyui异步加载tree的问题解析
Dec 06 Javascript
jquery 标签 隔若干行加空白或者加虚线的方法
Dec 07 Javascript
js实现图片切换(动画版)
Dec 25 Javascript
js 事件的传播机制(实例讲解)
Jul 20 Javascript
详解VueJS 数据驱动和依赖追踪分析
Jul 26 Javascript
js判断传入时间和当前时间大小实例(超简单)
Jan 11 Javascript
详解vue静态资源打包中的坑与解决方案
Feb 05 Javascript
微信小程序开发摇一摇功能
Nov 22 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基础知识:函数基础知识
2006/12/13 PHP
thinkphp中memcache的用法实例
2014/11/29 PHP
php生成固定长度纯数字编码的方法
2015/07/09 PHP
Javascript Object.extend
2010/05/18 Javascript
javascript 保存文件到本地实现方法
2012/11/29 Javascript
自定义jQuery选项卡插件实例
2013/03/27 Javascript
js中apply方法的使用详细解析
2013/11/04 Javascript
jquery隐藏标签和显示标签的实例
2013/11/11 Javascript
跟我学Nodejs(三)--- Node.js模块
2014/05/25 NodeJs
js简单实现点击左右运动的方法
2015/04/10 Javascript
jQuery实现移动端滑块拖动选择数字效果
2015/12/24 Javascript
node.js程序作为服务并在windows下开机自启动(用forever)
2017/03/29 Javascript
jQuery设置图片等比例缩小的方法
2017/04/29 jQuery
webpack 2.x配置reactjs基本开发环境详解
2017/08/08 Javascript
Nuxt.js踩坑总结分享
2018/01/18 Javascript
vue iview实现动态路由和权限验证功能
2018/04/17 Javascript
JavaScript引用类型Array实例分析
2018/07/24 Javascript
微信小程序实现留言板(Storage)
2018/11/02 Javascript
node.js开发辅助工具nodemon安装与配置详解
2020/02/06 Javascript
[01:01:52]完美世界DOTA2联赛PWL S2 GXR vs Magma 第二场 11.25
2020/11/26 DOTA
Python 获取新浪微博的最新公共微博实例分享
2014/07/03 Python
python实现根据ip地址反向查找主机名称的方法
2015/04/29 Python
python如何将图片转换为字符图片
2020/08/19 Python
Python多线程中阻塞(join)与锁(Lock)使用误区解析
2018/04/27 Python
Python实现获取本地及远程图片大小的方法示例
2018/07/21 Python
Python实现操纵控制windows注册表的方法分析
2019/05/24 Python
css3实现的下拉菜单效果示例
2014/01/22 HTML / CSS
一款纯css3实现的颜色渐变按钮的代码教程
2014/11/12 HTML / CSS
HTML5 LocalStorage 本地存储刷新值还在
2017/03/10 HTML / CSS
韩国美国时尚服装和美容在线全球市场:KOODING
2018/11/07 全球购物
Douglas意大利官网:购买香水和化妆品
2020/05/27 全球购物
面料业务员岗位职责
2013/12/26 职场文书
大学生求职计划书
2014/04/30 职场文书
2014年个人工作总结模板
2014/12/15 职场文书
python opencv检测直线 cv2.HoughLinesP的实现
2021/06/18 Python
Redis模仿手机验证码发送的实现示例
2021/11/02 Redis