当前位置: 首页 > news >正文

成为CMake砖家(2): macOS创建CMake本地文档的app

大家好,我是白鱼。 使用 CMake 的小伙伴, 有的是在 Windows 上, 还有的是在 macOS 上。之前咱们讲了 windows 上查看 cmake 本地 html 文档的方式, 这篇讲讲 macOS 上查看 cmake 本地 html 文档的方法。

1. 问题描述

当使用 CMake 做一些进阶的事情时, 需要查看文档。之前尝试过一些方案,都不理想。

举例: CMAKE_INSTALL_PREFIX 变量是我熟悉的, 但它是否被设定为了默认值, 文档里有专门的描述, 但我现在忘记了具体写法要查看文档。 或者 add_library() 的某个特性是 cmake 某个版本引入的,我忘记了, 需要查询确认。

尝试过的方案:

  • cmake 官方在线文档, 有时候网络不好打不开
  • Dash 印象中是收费的,于是尝试了 ZealDocs
  • Zeal Docs 和 Dash 的 CMake 文档是共用的, 全文检索关键字找不到,搜索框也有一些编辑方面的小问题

2. 解决方案

类似于 ubuntu 上安装 matlab/clion/smartgit 等软件后,没提供 .desktop 文件的情况, 用户可以手动创建 xxx.desktop 文件,从而在应用中可以搜索到。

在 macOS 上, 创建 /Application/CMakeDocs.app 目录,里面最关键的是 Info.plist 文件, 和 .desktop 文件作用类似。

首先通过 .dmg 文件安装 CMake, 会安装到 /Application/CMake.app 目录。提供的 html 文件、 icns 文件都被 CMakeDocs.app 依赖。

然后执行 CMakeDoc.sh 文件,内容如下:

#!/bin/bash# This script generates /Application/CMakeDoc.app, which can be searched in launchpad
# You should have CMake installed in /Application/CMake.app alreadymkdir -p ~/Applications/CMakeDoc.app/Contents/MacOS  
mkdir -p ~/Applications/CMakeDoc.app/Contents/Resources  cat <<EOF > ~/Applications/CMakeDoc.app/Contents/MacOS/CMakeDoc  
#!/bin/bash  
open /Applications/CMake.app/Contents/doc/cmake/html/index.html
EOFchmod +x ~/Applications/CMakeDoc.app/Contents/MacOS/CMakeDoc  cat <<EOF > ~/Applications/CMakeDoc.app/Contents/Info.plist  
<?xml version="1.0" encoding="UTF-8"?>  
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">  
<plist version="1.0">  
<dict>  <key>CFBundleExecutable</key>  <string>CMakeDoc</string>  <key>CFBundleIdentifier</key>  <string>org.cmake.doc</string>  <key>CFBundleName</key>  <string>CMakeDoc</string>  <key>CFBundleVersion</key>  <string>1.0</string>  <key>CFBundlePackageType</key>  <string>APPL</string>  <key>CFBundleIconFile</key><string>CMakeSetup.icns</string>
</dict>  
</plist>  
EOFcp /Applications/CMake.app/Contents/Resources/CMakeSetup.icns ~/Applications/CMakeDoc.app/Contents/Resources/  
mv ~/Applications/CMakeDoc.app /Applications/  

效果:
在这里插入图片描述

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • Sentinel-1 Level 1数据处理的详细算法定义(三)
  • 计算机网络高频面试题
  • sql面试题
  • 二次开发源码 借贷系统uniapp/借贷认证系统/小额信贷系统/工薪贷APP/资金贷系统h5
  • idea:解决Maven报错 Properties in parent definition are prohibited
  • 如何追查一个packet在linux 系统哪里丢失
  • urllib的使用
  • opencv学习:图像视频的读取截取部分图像数据颜色通道提取合并颜色通道边界填充数值计算图像融合
  • 14-- 二重积分
  • ubuntu系统Docker常用命令
  • 【Python】爬虫实战01:获取豆瓣Top250电影信息
  • 信创学习笔记(四),信创之数据库DB思维导图
  • NoSql选择题解
  • ubuntu 物理内存爆炸而不使用虚拟内存的问题
  • 速部署 HBase 测试环境
  • SegmentFault for Android 3.0 发布
  • “寒冬”下的金三银四跳槽季来了,帮你客观分析一下局面
  • classpath对获取配置文件的影响
  • Docker下部署自己的LNMP工作环境
  • go语言学习初探(一)
  • JAVA多线程机制解析-volatilesynchronized
  • Java反射-动态类加载和重新加载
  • JS专题之继承
  • 你真的知道 == 和 equals 的区别吗?
  • 微服务入门【系列视频课程】
  • 我是如何设计 Upload 上传组件的
  • 项目实战-Api的解决方案
  • 小程序开发之路(一)
  • 用mpvue开发微信小程序
  • 再次简单明了总结flex布局,一看就懂...
  • 掌握面试——弹出框的实现(一道题中包含布局/js设计模式)
  • ionic入门之数据绑定显示-1
  • 好程序员大数据教程Hadoop全分布安装(非HA)
  • 新海诚画集[秒速5センチメートル:樱花抄·春]
  • #APPINVENTOR学习记录
  • #WEB前端(HTML属性)
  • #使用清华镜像源 安装/更新 指定版本tensorflow
  • #数据结构 笔记三
  • %3cscript放入php,跟bWAPP学WEB安全(PHP代码)--XSS跨站脚本攻击
  • ()、[]、{}、(())、[[]]命令替换
  • (2)MFC+openGL单文档框架glFrame
  • (C++20) consteval立即函数
  • (day 12)JavaScript学习笔记(数组3)
  • (react踩过的坑)Antd Select(设置了labelInValue)在FormItem中initialValue的问题
  • (第61天)多租户架构(CDB/PDB)
  • (回溯) LeetCode 78. 子集
  • (接口自动化)Python3操作MySQL数据库
  • (十二)springboot实战——SSE服务推送事件案例实现
  • (一)硬件制作--从零开始自制linux掌上电脑(F1C200S) <嵌入式项目>
  • (原創) 系統分析和系統設計有什麼差別? (OO)
  • (转)es进行聚合操作时提示Fielddata is disabled on text fields by default
  • .net dataexcel winform控件 更新 日志
  • .NET 中 GetHashCode 的哈希值有多大概率会相同(哈希碰撞)
  • .NET/C# 获取一个正在运行的进程的命令行参数
  • .NET/C# 将一个命令行参数字符串转换为命令行参数数组 args