Next: シェル向けの設定の構文(アウトプットトランスレーション), Previous: アウトプットトランスレーションを設定するDSL, Up: ASDFがコンパイルされたファイルを保持する場所を設定する [Contents][Index]
設定ディレクトリ内の.confファイルのDSLは、アウトプットトランスレーションを設定するDSLと少し異なります。まず、ディレクティブを(:output-translations ...)
で囲む必要はありません。また、継承ディレクティブ:inherit-configuration
、:ignore-inherited-configuration
は使えず、ディレクティブのリストの末尾に暗黙に:inherit-configuration
が加わります。これらに反した設定ファイルを読み込むと、ASDFはuiop:invalid-configuration
エラーを通知するでしょう。なお、ディレクトリ中の設定ファイルは、そのネームストリングに従ってstring<
の順で読み込まれ、ディレクティブもこの順番で結合されます。
Common Lispソフトウェアのディストリビューションは、自身の設定ファイル(例えば10-foo.conf)を設置する際、すべてのユーザーに対する設定は/etc/common-lisp/asdf-output-translations.conf.d/10-foo.confを、ユーザー単位の設定は~/.config/common-lisp/asdf-output-translations.conf.d/10-foo.confを使うことができます。そうすれば、インストールされるソフトウェアの設定情報を、容易かつモジュール化された形で登録できるでしょう。例えばDebianのパッケージや、将来のバージョンのclbuild
がそうなることでしょう。51
設定ディレクトリ内の設定ファイル名は、上で挙げたように2つの数字から始めるのが慣習です。こうすることで、設定が読み込まれる順番を決めることができます。また、ファイル形式は.confでなければなりません。この仕様のメリットは、単に実装が簡単であるだけでなく、設定ファイルを無効にするにはただファイル形式を変えればよい、という点にもあります。
設定ファイル内で別の設定ディレクトリをインクルードしたい場合は、ディレクトリのパス名か文字列を:include
ディレクティブに指定してください:
(:include "/foo/bar/")