Cabal
にライブラリを構築中にすべてのモジュールを公開することはできますか?Cabal - ライブラリを構築中にすべてのモジュールを公開する
現在、私はExposed-modules
キャバルコンフィギュレーションファイルセクションに非常に長いモジュールリストを提供しなければなりません。
Cabal
にライブラリを構築中にすべてのモジュールを公開することはできますか?Cabal - ライブラリを構築中にすべてのモジュールを公開する
現在、私はExposed-modules
キャバルコンフィギュレーションファイルセクションに非常に長いモジュールリストを提供しなければなりません。
カバール設定ファイルにすべてのモジュールをリストする必要があります。あなたの場合は、exposed-module:
の後にモジュールのリストを置くだけです。モジュールのリストを書く簡単な方法はありません。
Cabalは、実行ファイルまたはライブラリの一部であるファイルを自動的に見つけることができないため、設定ファイルのモジュールのリストに依存します。 GHCとは異なり、キャバルはソースコードのインポートステートメントに基づいてモジュールを見つけることができません。すべてのモジュールを一覧表示しないと、GHCがソースファイルを見つけることができるため、プロジェクトをビルドできますが、cabal sdist
などの他のコマンドは、リストされていないソースファイルにはアクセスしません。
Cabalされていないソースツリーで 'cabal init'を実行すると' exposed-モジュールは自動的に更新されますが、後でフィールドを手動で更新する必要があります。 –
@MikhailGlushenkovこれはかなりばかげている。これは "init"(おそらく誰も使用していない)のimport文を解析できますが、他のコマンドでも同じことをすることはできません。これは間違いなく問題です。 –
'exposed-modules'を更新できる外部ツールはありますか?それとも、スタックすることができますか? –
'.cabal'ファイルに言及せずにモジュールをカバールプロジェクトに組み込む方法を聞いていますか? – Heatsink
@Heatsink、no - キャブールを使用してライブラリをコンパイルする場合、 '<...> .cabal'コンフィグレーションファイルを記述する必要があります。このファイルでは、 'Exposed-modules'セクションを提供しています。このセクションでは、公開するすべての**モジュールを一覧表示する必要があります。 **すべての**モジュールを公開したいと思います。 –
それは私の質問に答えません。すべてのモジュールは '.cabal'ファイルにリストされていなければなりません。内部モジュールも 'Other-modules'にリストアップする必要があります。あなたはすべてのモジュールをリストする別の方法を求めているのですか、それともモジュールをリストしないで使用する方法を求めていますか? – Heatsink