1

我正在编写一个使用自己的文件类型的应用程序。我想将文件关联与桌面环境集成。我知道这可以通过命令来完成,但是它应该如何与 autotools 集成呢?

目前,我的应用程序可以在没有 root 的情况下安装~/.local,例如。保留此功能会很好。

4

1 回答 1

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 文件格式的更多详细信息,请参阅教程

现在您需要弄清楚将 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 uninstallupdate-mime-database将该工具的检查添加到您的configure.ac. 然后将以下内容添加到您的Makefile.am

install-data-hook:
    $(UPDATE_MIME_DATABASE) "$(DESTDIR)$(mimedir)"

uninstall-hook:
    $(UPDATE_MIME_DATABASE) "$(DESTDIR)$(mimedir)"

我希望这能回答你的问题。

于 2011-06-27T08:26:03.600 回答