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 相关文章推荐
关于恒等于(===)和非恒等于(!==)
Aug 20 Javascript
javascript动画浅析
Aug 30 Javascript
基于dom编程中 动态创建与删除元素的使用
Apr 17 Javascript
当鼠标移动时出现特效的JQuery代码
Nov 08 Javascript
巧用局部变量提升javascript性能
Feb 24 Javascript
AngularJS使用ng-options指令实现下拉框
Aug 23 Javascript
Jil,高效的json序列化和反序列化库
Feb 15 Javascript
javascript回调函数的概念理解与用法分析
May 27 Javascript
w3c编程挑战_初级脚本算法实战篇
Jun 23 Javascript
Angular4.0中引入laydate.js日期插件的方法教程
Dec 25 Javascript
为什么要使用Vuex的介绍
Jan 19 Javascript
优雅地使用loading(推荐)
Apr 20 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/04 PHP
PHP 日期加减的类,很不错
2009/10/10 PHP
php 二维数组快速排序算法的实现代码
2017/10/17 PHP
php 多继承的几种常见实现方法示例
2019/11/18 PHP
显示、隐藏密码
2006/07/01 Javascript
JavaScript基础知识学习笔记
2014/12/02 Javascript
jQuery老黄历完整实现方法
2015/01/16 Javascript
基于jquery实现智能提示控件intellSeach.js
2016/03/17 Javascript
jQuery实现简洁的轮播图效果实例
2016/09/07 Javascript
bootstrap 表单验证使用方法
2017/01/11 Javascript
ThinkPHP+jquery实现“加载更多”功能代码
2017/03/11 Javascript
d3.js实现立体柱图的方法详解
2017/04/28 Javascript
chosen实现省市区三级联动
2018/08/16 Javascript
简单说说如何使用vue-router插件的方法
2019/04/08 Javascript
javascript设计模式 ? 状态模式原理与用法实例分析
2020/04/22 Javascript
[05:05]DOTA2亚洲邀请赛 战队出场仪式
2015/02/07 DOTA
Python中的包和模块实例
2014/11/22 Python
Python numpy生成矩阵、串联矩阵代码分享
2017/12/04 Python
Python学习笔记之open()函数打开文件路径报错问题
2018/04/28 Python
查看Django和flask版本的方法
2018/05/14 Python
很酷的python表白工具 你喜欢我吗
2019/04/11 Python
Python可迭代对象操作示例
2019/05/07 Python
使用Python3内置文档高效学习以及官方中文文档
2019/05/19 Python
将python文件打包成EXE应用程序的方法
2019/05/22 Python
python正则爬取某段子网站前20页段子(request库)过程解析
2019/08/10 Python
Python进程Multiprocessing模块原理解析
2020/02/28 Python
台湾旅游网站:灿星旅游
2018/10/11 全球购物
英国儿童鞋和靴子:Start-Rite
2019/05/06 全球购物
联想C++笔试题
2012/06/13 面试题
领导干部作风整顿剖析材料
2014/10/11 职场文书
委托公证书格式
2015/01/26 职场文书
2015新学期开学寄语
2015/02/26 职场文书
单位考核鉴定意见
2015/06/05 职场文书
2016年党校科级干部培训班学习心得体会
2016/01/06 职场文书
2016基督教会圣诞节开幕词
2016/03/04 职场文书
将MySQL的表数据全量导入clichhouse库中
2022/03/21 MySQL