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预览图片实现鼠标放上去显示实际大小
Jan 16 Javascript
Node.js实现在目录中查找某个字符串及所在文件
Sep 03 Javascript
jQuery UI插件自定义confirm确认框的方法
Mar 20 Javascript
javascript中闭包概念与用法深入理解
Dec 15 Javascript
jQuery移除或禁用html元素点击事件常用方法小结
Feb 10 Javascript
Easyui Datagrid自定义按钮列(最后面的操作列)
Jul 13 Javascript
vue组件初学_弹射小球(实例讲解)
Sep 06 Javascript
jquery实现回车键触发事件(实例讲解)
Nov 21 jQuery
jQuery 防止相同的事件快速重复触发方法
Feb 08 jQuery
echarts实现词云自定义形状的示例代码
Feb 20 Javascript
vue实现微信获取用户信息的方法
Mar 21 Javascript
vue 实现上传组件
May 31 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安装问题
2006/10/09 PHP
用PHP编程语言开发动态WAP页面
2006/10/09 PHP
在同一窗体中使用PHP来处理多个提交任务
2006/10/09 PHP
PHP spl_autoload_register实现自动加载研究
2011/12/06 PHP
php中判断文件存在是用file_exists还是is_file的整理
2012/09/12 PHP
php列出一个目录下的所有文件的代码
2012/10/09 PHP
CodeIgniter辅助之第三方类库third_party用法分析
2016/01/20 PHP
Ajax实现对静态页面的文章访问统计功能示例
2016/10/10 PHP
php实例化一个类的具体方法
2019/09/19 PHP
jQuery图片播放8款精美插件分享
2013/02/17 Javascript
extjs 时间范围选择自动判断的实现代码
2014/06/24 Javascript
微信小程序的动画效果详解
2017/01/18 Javascript
js实现网页定位导航功能
2017/03/07 Javascript
JS与CSS3实现图片响应鼠标移动放大效果示例
2018/05/04 Javascript
layui固定下拉框的显示条数(有滚动条)的方法
2019/09/10 Javascript
分享一款超好用的JavaScript 打包压缩工具
2020/04/26 Javascript
js实现星星打分效果
2020/07/05 Javascript
js实现复制粘贴的两种方法
2020/12/04 Javascript
Python字典循环添加一键多值的用法实例
2019/01/20 Python
python机器人运动范围问题的解答
2019/04/29 Python
python 递归相关知识总结
2021/03/03 Python
程序员机试试题汇总
2012/03/07 面试题
UNIX文件系统常用命令
2012/05/25 面试题
团员的自我评价
2013/12/01 职场文书
社区八一活动方案
2014/02/03 职场文书
网络教育自我鉴定
2014/02/04 职场文书
表演方阵解说词
2014/02/08 职场文书
数控技校生自我鉴定
2014/03/02 职场文书
2015年社区统计工作总结
2015/04/21 职场文书
介绍信格式样本
2015/05/05 职场文书
全陪导游词开场白
2015/05/29 职场文书
寻找成龙观后感
2015/06/12 职场文书
关爱空巢老人感想
2015/08/11 职场文书
教师听课学习心得体会
2016/01/15 职场文书
2016年敬老月活动总结
2016/04/05 职场文书
JavaScript parseInt0.0000005打印5原理解析
2022/07/23 Javascript