我正在编写一个使用自己文件类型的应用程序。我想将文件关联与桌面环境集成。我知道这可以完成with a command,但应该如何与autotools集成?
目前,我的应用可以在没有root的情况下安装到~/.local
。保留这个功能会很好。
答案 0 :(得分:3)
将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文件格式的更多详细信息,请参阅the tutorial。
现在您需要确定将XML文件安装到何处。在我的项目中,我为--with-xdgdatadir
提供configure
选项,这是作为练习给读者留下的。默认情况下,XDGDATADIR
应为${prefix}/share
(即${datarootdir}
)。将以下内容添加到您的Makefile.am
:
xdgdatadir=@XDGDATADIR@
mimedir=$(xdgdatadir)/mime
xmldir=$(mimedir)/packages
xml_DATA = myapp.xml
这将确保正确安装MIME数据。
最后,有必要确保在make install
和make uninstall
上更新MIME数据库。将update-mime-database
工具的检查添加到configure.ac
。然后将以下内容添加到Makefile.am
:
install-data-hook:
$(UPDATE_MIME_DATABASE) "$(DESTDIR)$(mimedir)"
uninstall-hook:
$(UPDATE_MIME_DATABASE) "$(DESTDIR)$(mimedir)"
我希望能回答你的问题。