在Gnome Builder中查找Flatpak/Meson子项目GtkSourceView源码位置
我想要基于Gnome Text Editor(GTE)开发一款专用文本编辑器,计划把它的GtkSourceView组件替换成我基于GtkSourceView继承开发的自定义控件。我已经下载了GTE源码并在Gnome Builder中打开,Builder自动安装了所有依赖/SDK,构建并启动GTE的过程很顺利。由于我是gobject、gtk、flatpak和meson的新手,打算分步推进:第一步修改了subprojects/gtksourceview.wrap中指向GtkSourceView git仓库的两个URL,替换成我自定义控件的仓库地址(当前仓库内容是GtkSourceView的副本)。修改后想验证GTE是否使用了新仓库的代码,但重新构建时似乎没有下载新代码。我尝试在GTE的subprojects目录、~/.var/app/org.gnome.TextEditor.Devel/和~/.var/app/org.gnome.Builder中查找GtkSourceView的子项目源码,但都没找到。请问在哪里可以找到该源码,以验证它是否来自我的新git仓库?
清理构建缓存触发重新拉取
Meson和Flatpak会缓存已下载的子项目资源,修改gtksourceview.wrap后必须先清理旧缓存,才能让系统拉取新仓库的代码。在Gnome Builder中可通过顶部菜单「项目」→「清理构建目录」完成;如果手动操作,可删除GTE源码目录下的_build文件夹(本地构建场景),或删除~/.var/app/org.gnome.Builder/cache/flatpak-builder/build/下GTE对应的构建子目录(Flatpak开发环境场景)。定位子项目源码的位置
- Flatpak沙箱环境:通过Gnome Builder的「运行」→「打开终端」进入沙箱,在沙箱内的
/run/build/gnome-text-editor/subprojects/目录下可找到gtksourceview的源码; - 本地非Flatpak构建:清理缓存后重新构建,源码会直接下载到GTE源码根目录的
subprojects/文件夹中; - Flatpak全局缓存:检查
~/.cache/flatpak-builder/sources/目录,这里存放着Flatpak拉取的所有子项目源码缓存,可找到gtksourceview相关的git仓库文件,确认仓库地址是否已更新为你的自定义仓库。
- Flatpak沙箱环境:通过Gnome Builder的「运行」→「打开终端」进入沙箱,在沙箱内的
快速验证是否使用新代码
在你的自定义gtksourceview仓库中添加一个唯一标记,比如在某个核心头文件里加入注释/* Custom GtkSourceView Build */,清理缓存重新构建后,进入沙箱或本地构建目录,查看编译后的头文件,或者用strings命令检查GTE二进制文件中是否存在该标记,这种方式比单纯查找源码位置更直接有效。
内容的提问来源于stack exchange,提问作者user1876484

