成为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.mzph.cn/bicheng/47332.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

防火墙--带宽管理

目录 核心思想 带宽限制 带宽保证 连接数的限制 如何实现 接口带宽 队列调度 配置位置 在接口处配置 带宽策略配置位置 带宽通道 配置地方 接口带宽、带宽策略和带宽通道联系 配置顺序 带块通道在那里配置 选项解释 引用方式 策略独占 策略共享 重标记DSCP优先…

软件游戏缺失concrt140.dll的解决方法,轻松搞定dll丢失问题

为了解决concrt140.dll文件缺失的问题&#xff0c;首先需要了解concrt140.dll文件的具体情况。只有在充分了解的基础上&#xff0c;才能采取有效的解决措施。下面&#xff0c;将详细介绍concrt140.dll文件及其解决方案。 一、了解concrt140.dll是什么 concrt140.dll 是微软的一…

SmartPipe新增功能:自动识别含间隙的低质量模型与自动处理超过180度的圆弧管路

自2022年12月SmartPipe上市以来&#xff0c;我一直在不断迭代和升级其轴线识别算法。对于客户反馈的无法自动转换的模型&#xff0c;我都视若珍宝&#xff0c;将其视为提升算法性能的绝佳机会。经过一年半的积累&#xff0c;SmartPipe的测试模型从最初的10个逐步迭代到近100个。…

使用MySQL WorkBench导出SQL脚本

参考: 在MySQL workbench 中导出sql脚本文件_mysql workbench自动保存的脚本在哪-CSDN博客 需要注意的是: 选择高级选项 这里不勾选&#xff0c;这样生成的INSERT是逐条的。将每个ROW合并为一个INSERT语句。 这里选择dump structure and data

画册制作攻略,助你成为视觉传达大师

在数字时代&#xff0c;画册作为一种传统而又充满魅力的视觉传达工具&#xff0c;依旧在各个领域扮演着重要角色。无论是在企业宣传、个人作品展示&#xff0c;还是艺术创作中&#xff0c;一本精美的画册都能让你的作品更具吸引力。那么&#xff0c;如何制作出一本引人入胜的画…

STM32使用Wifi连接阿里云

目录 1 实现功能 2 器件 3 AT指令 4 阿里云配置 4.1 打开阿里云 4.2 创建产品 4.3 添加设备 5 STM32配置 5.1 基础参数 5.2 功能定义 6 STM32代码 本文主要是记述一下&#xff0c;如何使用阿里云物联网平台&#xff0c;创建一个简单的远程控制小灯示例。 完整工程&a…

深度学习入门——误差反向传播

要正确理解误差反向传播法&#xff0c;我个人认为有两种方法&#xff1a;一种是基于数学式&#xff1b;另一种是基于计算图&#xff08;computational graph&#xff09; 前者是比较常见的方法&#xff0c;机器学习相关的图书中多数都是以数学式为中心展开论述的。因为这种方法…

老司机减分宝典助手-学法减分扣分题目及答案 #经验分享#经验分享#职场发展

学法减分其实就是把我们驾驶证上面的分数一分一分地找回来&#xff0c;为什么说是一分一分地找回来呢&#xff1f;因为必须先把违章处理完才可以&#xff0c;无论这辆车是不是你的&#xff0c;无论这辆车挂靠在谁的公司名下或者是单位名下&#xff0c;你都可以把这个分找回来&a…

电源模块企业该如何解决测试中的痛点问题?

根据研究发现&#xff0c;超过76%的企业在进行测试时会对产品质量、可靠性和测试速度这三项核心指标尤为重视。但是随着近几年的发展&#xff0c;目前的测试方法和措施对于这三项指标的测试远远无法达到企业的预期。被测产品的整体质量参差不齐、测试数据的可靠性以及测试的速度…

N7翻译实战

&#x1f368; 本文为&#x1f517;365天深度学习训练营 中的学习记录博客&#x1f356; 原作者&#xff1a;K同学啊# 前言## 前言 本周完成项目实战用于训练一个简单的序列到序列&#xff08;seq2seq&#xff09;模型以实现英语到法语的翻译。数据预处理、模型构建、训练以及可…

浅谈C嘎嘎类与对象

本篇文章与大家浅谈一下C嘎嘎的类与对象知识点 类的定义 关键字&#xff1a;class 语法格式&#xff1a; class 类名 { }&#xff1b;//这里的分号不能少 此外&#xff0c;class有三个属性分别是private、public、protected&#xff0c;这三个属性是干啥的&#xff0c;相…

【Python与GUI开发】事件处理与打包分发

文章目录 前言 一、高级事件处理 1.自定义事件 2.拖放操作 3.复杂控件的事件处理 二、打包和分发 Tkinter 应用 1.PyInstaller 2.cx_Freeze 3.spec 文件 4.分发注意事项 三、实战示例&#xff1a;文件浏览器 总结 前言 在前面的讨论中&#xff0c;我们深入理解了 T…

Docker基本讲解及演示

Docker安装教程 Docker安装教程 1、Docker介绍 Docker是一个开源的应用容器引擎&#xff0c;允许开发者将应用程序及其依赖项打包成一个轻量级、可移植的容器&#xff0c;然后发布到任何支持 Docker 的环境中运行&#xff0c;无论是开发机、测试机还是生产环境。 Docker基于…

PCIe驱动开发(3)— 驱动设备文件的创建与操作

PCIe驱动开发&#xff08;3&#xff09;— 驱动设备文件的创建与操作 一、前言 在 Linux 中一切皆为文件&#xff0c;驱动加载成功以后会在“/dev”目录下生成一个相应的文件&#xff0c;应用程序通过对这个名为“/dev/xxx” (xxx 是具体的驱动文件名字)的文件进行相应的操作即…

VAE论文阅读

在网上看到的VAE解释&#xff0c;发现有两种版本&#xff1a; 按照原来论文中的公式纯数学推导&#xff0c;一般都是了解生成问题的人写的&#xff0c;对小白很不友好。按照实操版本的&#xff0c;非常简单易懂&#xff0c;比如苏神的。但是却忽略了论文中的公式推导&#xff…

信创学习笔记(四),信创之数据库DB思维导图

创作不易 只因热爱!! 热衷分享&#xff0c;一起成长! “你的鼓励就是我努力付出的动力” 一. 信创学习回顾 1.信创内容 信创内容思维导图 2.信创之CPU芯片架构 信创之CPU芯片架构思维导图 3.信创之操作系统OS 信创之操作系统OS思维导图 二. 信创之国产数据库DB思维导图 …

【学习笔记】无人机(UAV)在3GPP系统中的增强支持(四)-无人机系统(UAS)命令与控制(C2)通信用例

引言 本文是3GPP TR 22.829 V17.1.0技术报告&#xff0c;专注于无人机&#xff08;UAV&#xff09;在3GPP系统中的增强支持。文章提出了多个无人机应用场景&#xff0c;分析了相应的能力要求&#xff0c;并建议了新的服务级别要求和关键性能指标&#xff08;KPIs&#xff09;。…

对某根域的一次渗透测试

前言 两个月之前的一个渗透测试项目是基于某网站根域进行渗透测试&#xff0c;发现该项目其实挺好搞的&#xff0c;就纯粹的没有任何防御措施与安全意识所以该项目完成的挺快&#xff0c;但是并没有完成的很好&#xff0c;因为有好几处文件上传没有绕过&#xff08;虽然从一个…

Datawhale AI 夏令营 deepfake图像识别-Task02打卡

数据中存在正负类不平衡问题&#xff0c;目前采用直接每次随机抽取和负类数量相同的正类作为训练集。为了更随机&#xff0c;应该每次都随机选取1:1的正负类&#xff0c;然后加大训练量&#xff1f;目前更换了更好的基础模型&#xff0c;还在跑

Vue3项目基于Axios封装request请求

在 Vue 3 的项目开发中&#xff0c;使用 Axios 进行 HTTP 请求是非常常见的作法&#xff0c;为了更方便开发者更高效的进行代码编写和项目的维护&#xff0c;可以通过再次封装 Axios 来实现。 在本文中&#xff0c;博主将详细指导你如何在自己的 Vue 3 项目中使用 Axios 二次封…