我正在编写一个使用自己的文件类型的应用程序。我想将文件关联与桌面环境集成。我知道这可以通过命令来完成,但是它应该如何与 autotools 集成呢?
目前,我的应用程序可以在没有 root 的情况下安装~/.local
,例如。保留此功能会很好。
我正在编写一个使用自己的文件类型的应用程序。我想将文件关联与桌面环境集成。我知道这可以通过命令来完成,但是它应该如何与 autotools 集成呢?
目前,我的应用程序可以在没有 root 的情况下安装~/.local
,例如。保留此功能会很好。
添加一个myapp.xml
包含所需 MIME 数据的项目。它看起来像:
<?xml version="1.0" encoding="UTF-8"?>
<mime-info xmlns="http://www.freedesktop.org/standards/shared-mime-info">
<mime-type type="image/png">
<comment xml:lang="en">PNG image</comment>
<comment xml:lang="af">png beeld</comment>
...
<magic priority="50">
<match type="string" value="\x89PNG" offset="0"/>
</magic>
<glob pattern="*.png"/>
</mime-type>
</mime-info>
有关 XML 文件格式的更多详细信息,请参阅教程。
现在您需要弄清楚将 XML 文件安装到哪里。在我的项目中,我提供了 的--with-xdgdatadir
选项configure
,留给读者作为练习。默认情况下,XDGDATADIR
应该是${prefix}/share
(即${datarootdir}
)。将以下内容添加到您的Makefile.am
:
xdgdatadir=@XDGDATADIR@
mimedir=$(xdgdatadir)/mime
xmldir=$(mimedir)/packages
xml_DATA = myapp.xml
这将确保正确安装 MIME 数据。
最后,有必要确保 MIME 数据库在make install
和上更新make uninstall
。update-mime-database
将该工具的检查添加到您的configure.ac
. 然后将以下内容添加到您的Makefile.am
:
install-data-hook:
$(UPDATE_MIME_DATABASE) "$(DESTDIR)$(mimedir)"
uninstall-hook:
$(UPDATE_MIME_DATABASE) "$(DESTDIR)$(mimedir)"
我希望这能回答你的问题。