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 formValidator表单验证插件开源了 含API帮助、源码、示例
Aug 14 Javascript
红米手机抢购的js代码
Mar 10 Javascript
jquery实现漂亮的二级下拉菜单代码
Aug 26 Javascript
详解JavaScript编程中的数组结构
Oct 24 Javascript
10个JavaScript中易犯小错误
Feb 14 Javascript
微信公众号开发 实现点击返回按钮就返回到聊天界面
Dec 15 Javascript
AngularJS执行流程详解
Feb 17 Javascript
基于jQuery使用Ajax动态执行模糊查询功能
Jul 05 jQuery
Vue 中对图片地址进行拼接的方法
Sep 03 Javascript
简单谈谈javascript高级特性
Sep 04 Javascript
ES2020 新特性(种草)
Jan 12 Javascript
js基于div丝滑实现贝塞尔曲线
Sep 23 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实例
2013/12/24 PHP
php中unserialize返回false的解决方法
2014/09/22 PHP
php如何控制用户对图片的访问 PHP禁止图片盗链
2016/03/25 PHP
PHP页面跳转操作实例分析(header方法)
2016/09/28 PHP
ThinkPHP实现分页功能
2017/04/28 PHP
javascript 密码强弱度检测万能插件
2009/02/25 Javascript
jQuery验证Checkbox是否选中的代码 推荐
2011/09/04 Javascript
Jquery在指定DIV加载HTML示例代码
2014/02/17 Javascript
JavaScript拖拽、碰撞、重力及弹性运动实例分析
2016/01/08 Javascript
浅析Bootstrap缩略图组件与警示框组件
2016/04/29 Javascript
jQuery实现邮箱下拉列表自动补全功能
2016/09/08 Javascript
jQuery修改DOM结构_动力节点Java学院整理
2017/07/05 jQuery
ionic3+Angular4实现接口请求及本地json文件读取示例
2017/10/11 Javascript
在vue中实现简单页面逆传值的方法
2017/11/27 Javascript
Vue 页面切换效果之 BubbleTransition(推荐)
2018/04/08 Javascript
JS实现电话号码的字母组合算法示例
2019/02/26 Javascript
微信小程序select下拉框实现效果
2019/05/15 Javascript
原生js实现抽奖小游戏
2019/06/27 Javascript
微信小程序实现传递多个参数与事件处理
2019/08/12 Javascript
python调用cmd命令行制作刷博器
2014/01/13 Python
python中sets模块的用法实例
2014/09/30 Python
python中set常用操作汇总
2016/06/30 Python
VScode编写第一个Python程序HelloWorld步骤
2018/04/06 Python
python XlsxWriter模块创建aexcel表格的实例讲解
2018/05/03 Python
Django框架文件上传与自定义图片上传路径、上传文件名操作分析
2019/05/10 Python
用Python获取摄像头并实时控制人脸的实现示例
2019/07/11 Python
使用pycharm和pylint检查python代码规范操作
2020/06/09 Python
大学生职业生涯规划范文
2014/01/22 职场文书
2014年三八妇女节活动方案
2014/02/28 职场文书
青蓝工程实施方案
2014/03/27 职场文书
护士节活动总结
2014/08/29 职场文书
学校2015年纠风工作总结
2015/05/15 职场文书
实习单位意见
2015/06/04 职场文书
SpringBoot+VUE实现数据表格的实战
2021/08/02 Java/Android
MySQL的InnoDB存储引擎的数据页结构详解
2022/03/03 MySQL
2021年国产动漫公司排行前十名,玄机科技上榜,第二推出过铠甲勇士
2022/03/18 杂记