2017-10-08 30 views
0

私は、次のモジュールで探しています:キャバル/スタック内にCPP定義を追加するにはどうすればよいですか?

module Text.PrettyPrint.Boxes 
    (-- * Constructing boxes 
#ifdef TESTING 
     Box(Box, content) 
#else 
     Box 
#endif 

どのように私はTESTING値を定義/有効にすることができます - 開発目的のために:https://hackage.haskell.org/package/boxes-0.1.4/docs/src/Text-PrettyPrint-Boxes.html

の内容を持っていますか?理想的には、これをGHCiセッション内で構築/使用可能にしたいと思います。

+0

'stack test'を呼び出すと、フラグが自動的に設定されます - このCPPフラグを有効にするためのカバールフラグはありません。 – epsilonhalbe

答えて

1

私は自分自身を訂正する必要があります。私が与えたコメントはまったく間違っています。

> git clone git://github.com/treeowl/boxes.git 
> cd boxes 
> stack init 
> stack ghci --ghc-options=-DTESTING 
split-0.2.3.2: using precompiled package 
boxes-0.1.4: configure (lib) 
Configuring boxes-0.1.4... 
boxes-0.1.4: initial-build-steps (lib) 
Completed 2 action(s). 
Configuring GHCi with the following packages: boxes 
GHCi, version 8.0.2: http://www.haskell.org/ghc/ :? for help 
Loaded GHCi configuration from ... 
[1 of 1] Compiling Text.PrettyPrint.Boxes (.../boxes/Text/PrettyPrint/Boxes.hs, interpreted) 
Ok, modules loaded: Text.PrettyPrint.Boxes. 
Loaded GHCi configuration from /tmp/ghci28386/ghci-script 
*Text.PrettyPrint.Boxes Text.PrettyPrint.Boxes> :t content 
content :: Box -> Content 

でも問題ありません。

+0

これは 'stack ghci'が' cab'プロジェクトで呼び出されたときで、それがカバール経由で依存関係として含まれている場合にのみ機能します。 –

+1

ボックスにプルリクエストを送信し、カバールフラグを提供し、その間にgithubレポを使用できます。スタックには、レポをソースとして使用するオプションが組み込まれています。キャバルのために私はしばらくそれを使用していないので、これがオプションかどうかは分かりません。 – epsilonhalbe

+0

テスト目的以外の目的で 'content'関数が必要な場合、私はメンテナにその関数を隠そうとしているのかどうか尋ねます!便利なものはたくさんありますが、使用するとリスクやその他のものが増えます。 – epsilonhalbe

関連する問題