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实现画板的代码
Sep 05 Javascript
jquery固定底网站底部菜单效果
Aug 13 Javascript
DIV+CSS+jQ实现省市联动可扩展
Jun 22 Javascript
JS实现给json数组动态赋值的方法示例
Mar 19 Javascript
JS获取子、父、兄节点方法小结
Aug 14 Javascript
vue 粒子特效的示例代码
Sep 19 Javascript
AngularJs 终极购物车(实例讲解)
Nov 08 Javascript
js中Object.defineProperty()方法的不详解
Jul 09 Javascript
vue组件之间通信实例总结(点赞功能)
Dec 05 Javascript
深入理解es6块级作用域的使用
Mar 28 Javascript
vue(2.x,3.0)配置跨域代理
Nov 27 Javascript
vue绑定数字类型 value为数字的实例
Aug 31 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下实现在指定目录搜索指定类型文件的函数
2008/10/03 PHP
smarty巧妙处理iframe中内容页的代码
2012/03/07 PHP
thinkphp表单上传文件并将文件路径保存到数据库中
2016/07/28 PHP
php设计模式之工厂模式用法经典实例分析
2019/09/20 PHP
PHP Trait功能与用法实例分析
2020/06/03 PHP
Javascript 实用小技巧
2010/04/07 Javascript
基于jQuery的一个扩展form序列化到json对象
2010/12/09 Javascript
javascript简单事件处理和with用法介绍
2013/09/16 Javascript
jQuery中focus事件用法实例
2014/12/26 Javascript
jquery插件NProgress.js制作网页加载进度条
2015/06/05 Javascript
javascript函数中的3个高级技巧
2016/09/22 Javascript
Angular和百度地图的结合实例代码
2016/10/19 Javascript
JavaScript该如何学习 怎样轻松学习JavaScript
2017/06/12 Javascript
微信小程序wepy框架笔记小结
2018/08/08 Javascript
vue 弹框产生的滚动穿透问题的解决
2018/09/21 Javascript
koa-router路由参数和前端路由的结合详解
2019/05/19 Javascript
浅谈ECMAScript 中的Array类型
2019/06/10 Javascript
Vue 权限控制的两种方法(路由验证)
2019/08/16 Javascript
微信小程序通过js实现瀑布流布局详解
2019/08/28 Javascript
VUE+Element实现增删改查的示例源码
2020/11/23 Vue.js
跟老齐学Python之集成开发环境(IDE)
2014/09/12 Python
python实现画圆功能
2018/01/25 Python
浅谈在django中使用filter()(即对QuerySet操作)时踩的坑
2020/03/31 Python
浅谈python锁与死锁问题
2020/08/14 Python
详解BeautifulSoup获取特定标签下内容的方法
2020/12/07 Python
飞利浦西班牙官方网站:Philips西班牙
2020/02/17 全球购物
初中化学教学反思
2014/01/23 职场文书
财务会计毕业生个人求职信
2014/02/03 职场文书
演讲稿格式范文
2014/05/19 职场文书
教师批评与自我批评剖析材料
2014/10/16 职场文书
商务邀请函
2015/01/30 职场文书
当幸福来敲门英文观后感
2015/06/01 职场文书
曾国藩励志经典名言37句,蕴含哲理
2019/10/14 职场文书
Vue3 Composition API的使用简介
2021/03/29 Vue.js
如何使用JavaScript策略模式校验表单
2021/04/29 Javascript
Java中Quartz高可用定时任务快速入门
2022/04/03 Java/Android