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 相关文章推荐
如何用jquery控制表格奇偶行及活动行颜色
Apr 20 Javascript
select多选 multiple的使用示例
Jun 16 Javascript
JavaScript函数详解
Nov 17 Javascript
javascript中数组(Array)对象和字符串(String)对象的常用方法总结
Dec 15 Javascript
JavaScript转换数据库DateTime字段类型方法
Jun 27 Javascript
Vue学习笔记进阶篇之vue-cli安装及介绍
Jul 18 Javascript
简单介绍react redux的中间件的使用
Apr 06 Javascript
Angular2之二级路由详解
Aug 31 Javascript
Vue项目中使用jsonp抓取跨域数据的方法
Nov 10 Javascript
javascript贪吃蛇游戏设计与实现
Sep 17 Javascript
javascript实现固定侧边栏
Feb 09 Javascript
vue+elementUI实现表格列的显示与隐藏
Apr 13 Vue.js
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中定时计划任务的实现原理
2013/01/08 PHP
PHP多线程之内部多线程实例分析
2015/03/09 PHP
Symfony2在Nginx下的配置方法图文教程
2016/02/04 PHP
Laravel5.5 数据库迁移:创建表与修改表示例
2019/10/23 PHP
jquery 入门教程 [翻译] 推荐
2009/08/17 Javascript
JQuery 选择和过滤方法代码总结
2010/11/19 Javascript
JavaScript call apply使用 JavaScript对象的方法绑定到DOM事件后this指向问题
2011/09/28 Javascript
js两行代码按指定格式输出日期时间
2011/10/21 Javascript
jQuery 过滤not()与filter()实例代码
2012/05/10 Javascript
jQuery动态创建html元素的常用方法汇总
2014/09/05 Javascript
JS读写CSS样式的方法汇总
2016/08/16 Javascript
用headjs来管理和加载js 提高网站加载速度
2016/11/29 Javascript
node文件上传功能简易实现代码
2017/06/16 Javascript
如何通过非数字与字符的方式实现PHP WebShell详解
2017/07/02 Javascript
jQuery实现table表格checkbox全选的方法分析
2018/07/04 jQuery
深入浅析Node.js 事件循环、定时器和process.nextTick()
2018/10/22 Javascript
Vue.js样式动态绑定实现小结
2019/01/24 Javascript
简单了解JavaScript中的执行上下文和堆栈
2019/06/24 Javascript
微信小程序云函数使用mysql数据库过程详解
2019/08/07 Javascript
laydate只显示时分 不显示秒的功能实现方法
2019/09/28 Javascript
ES2020 新特性(种草)
2020/01/12 Javascript
vue页面更新patch的实现示例
2020/03/25 Javascript
对Python3.x版本print函数左右对齐详解
2018/12/22 Python
python的turtle库使用详解
2019/05/10 Python
python3.7环境下安装Anaconda的教程图解
2019/09/10 Python
妙用itchat! python实现久坐提醒功能
2019/11/25 Python
HTML5 placeholder属性详解
2016/06/22 HTML / CSS
韩国CJ食品专卖网:CJonmart
2016/09/11 全球购物
HelloFresh奥地利:立即订购烹饪盒
2019/02/22 全球购物
关于青春的演讲稿
2014/05/05 职场文书
推荐信模板
2014/05/09 职场文书
大学生学雷锋活动总结
2014/06/26 职场文书
中共广东省委常委会党的群众路线教育实践活动整改方案
2014/09/23 职场文书
2015年化妆品销售工作总结
2015/05/11 职场文书
SONY600GR,国产收音机厂商永远的痛
2022/04/05 无线电
uniapp引入支付宝原生扫码插件步骤详解
2022/07/23 Javascript