3

Cabal を使用してパッケージ化およびビルドされたライブラリがあり、一部のモジュールInternalが cabal ファイルの .xml に含まれていないとしますExposed-modules。プラグマを指定すると違いはありますか

{-# OPTIONS_HADDOCK hide #-}

の上部にありInternal.hsますか、それとも Haddock に従って既に自動的に非表示になっていますか?

違いがあるとすれば、どのような影響がありますか?

4

1 に答える 1

4

--internalパッケージのハドックがフラグ toで作成されている場合、違いがありますcabal haddock

$ cabal help haddock
Usage: cabal haddock [FLAGS]

Flags for haddock:
 -h --help                  Show this help text
 -v --verbose[=n]           Control verbosity (n is 0--3, default verbosity
                            level is 1)
  <snip>
    --executables           Run haddock for Executables targets
    --internal              Run haddock for internal modules and include all
                            symbols
  <snip>

--internalフラグなしでハドックが作成された場合、hidemodule 属性は効果がありません。とにかく、モジュールのドキュメントは作成されません。

が指定されている場合、属性を指定するモジュールを除き--internal、公開されていないモジュールのドキュメントが作成されます。hide

hideつまり、が設定されておらずが指定されているか--internalモジュールがエクスポートされている場合、ドキュメントが生成されます。

--internalforの使用は、 で指定するか、 を手動で呼び出す場合、またはインターフェイスでcabal haddock指定できます。cabal install --haddock-internalcabal haddockrunhaskell ./Setup.hs ...

ほとんどの人cabal installはデフォルトのオプションで実行するだけなので、違いに気付く人はほとんどいません。

于 2012-12-17T17:02:38.300 に答える