如何解决Meson / Ninja 构建系统 - 如何在卸载时运行自定义脚本?
Meson/Ninja 提供了一种在安装时运行脚本的简单方法。
例如,这一行会告诉 Meson 在 Linux 上运行 glib-compile-schemas
命令来编译 GSettings(系统配置选项)。
meson.add_install_script('glib-compile-schemas',schemas_dir)
(此命令会在用户执行ninja install
时自动运行)
如何告诉 Meson 在卸载时运行自定义命令?
在这种特定情况下,我想删除(或至少重置为默认值)GSettings 中的键值对。要重置它们,我发现命令是 gsettings reset-recursively <path>
(在终端中成功测试)。
解决方法
添加自定义卸载脚本是still being discussed,很久以前就有人提出过,但尚未实施。看起来这个任务通常留给包管理器(因此也留给相应的打包脚本)。
但我同意,介子 install 命令存在一些不合逻辑的不对称。作为一种解决方法,您可以创建自己的目标:
run_target('my-uninstall',command : ['scripts/uninstall.sh'])
当然,缺点是它应该被显式调用,不能覆盖、附加或重命名内部卸载目标和脚本应该具有可执行权限。
但是,内部保留的 uninstall target 会还原所有显式安装操作:
Meson 允许您通过调用 卸载目标。这将删除作为一部分安装的所有文件 安装。请注意,这不会恢复原始文件。 这也 不会撤消自定义安装脚本所做的更改(因为它们可以 执行任意安装操作)。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。