当前位置: 首页 > 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/  

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

http://www.lryc.cn/news/401980.html

相关文章:

  • 基于opencv的图片加水印实现方案
  • STM32 IAP 需要关注的一些事
  • 高并发服务器-使用多进程(Multi-Process)实现【C语言】
  • 线程控制
  • Spring Data Jpa 原生SQL联表查询返回自定义DTO
  • Hadoop3:HDFS存储优化之小文件归档
  • Golang | Leetcode Golang题解之第234题回文链表
  • Unity Apple Vision Pro 开发(四):体积相机 Volume Camera
  • C语言 | Leetcode C语言题解之第231题2的幂
  • GitHub备份代码的学习笔记
  • 微信小程序与本地MySQL数据库通信
  • Flutter热更新技术探索
  • 【机器学习-00】机器学习是什么?
  • 【BUG】已解决:WslRegisterDistribution failed with error: 0x800701bc
  • 无人机监测的必要性及方法
  • PHP框架详解:Symfony框架
  • 在 Navicat BI 创建自定义字段:类型更改字段
  • llama-index,uncharted and llama2:7b run locally to generate Index
  • vue、js截取视频任意一帧图片
  • STM32智能家居系统教程
  • uniapp 开发 App 对接官方更新功能
  • 【PostgreSQL】PostgreSQL 教程
  • Qt类 | QLabel类详解
  • 深入剖析 Android 开源库 EventBus 的源码详解
  • End-to-End Object Detection with Transformers【目标检测-方法详细解读】
  • CSS3实现提示工具的渐入渐出效果及CSS3动画简介
  • JVM 垃圾回收算法
  • 吴恩达大模型系列课程《Prompt Compression and Query Optimization》中文学习打开方式
  • 2.javaWeb_请求和响应的处理(Request,Response)
  • 用C++、Python、Rust编写的有安全问题的B树