成为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 文件,内容如下:

bash 复制代码
#!/bin/bash

# This script generates /Application/CMakeDoc.app, which can be searched in launchpad
# You should have CMake installed in /Application/CMake.app already

mkdir -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
EOF

chmod +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>  
EOF

cp /Applications/CMake.app/Contents/Resources/CMakeSetup.icns ~/Applications/CMakeDoc.app/Contents/Resources/  
mv ~/Applications/CMakeDoc.app /Applications/  

效果:

相关推荐
书弋江山2 小时前
iOS一直讲的单元格优化
macos·ios·cocoa
阿四8 小时前
mac升级系统到macOS26后触控板滑动异常,原因竟然是这个!
macos
mortimer9 小时前
从 Python+venv+pip 迁移到 uv 全过程 及 处理 torch + cuda 的跨平台指南
pytorch·python·macos
2501_9159214311 小时前
iOS 26 电耗监测与优化,耗电问题实战 + 多工具 辅助策略
android·macos·ios·小程序·uni-app·cocoa·iphone
周之鸥17 小时前
Qt 项目国际化从零到一:用 Qt Linguist 实现多语言动态切换(含源码与踩坑指南)
qt·i18n·cmake·qmake·linguist·lupdate·lrelease
Mac技巧大咖1 天前
苹果电脑如何维护优化系统:让mac重获新生的系统维护优化全攻略
macos·苹果电脑系统优化
氷泠1 天前
解决MacOS上CLion调试的时候容器的值显示为0的问题
macos·调试·lldb·clion
他们都不看好你,偏偏你最不争气1 天前
【iOS】KVC总结
macos·ios·objective-c·cocoa·kvc
1024小神2 天前
关于在ios系统中签名并安装ipa文件的五种方法,PakePlus打包的ipa文件可以看看
macos·ios·cocoa
漂亮_大男孩2 天前
conda|如何通过命令行在mac上下载conda
macos·conda