2017-10-08 121 views
0

我期待在以下模塊:https://hackage.haskell.org/package/boxes-0.1.4/docs/src/Text-PrettyPrint-Boxes.html如何在cabal/stack中添加CPP定義?

其中有內容:

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

我怎麼可以啓用/定義TESTING值 - 用於開發目的?理想情況下,我希望在GHCi會話中構建/啓用此功能。

+0

如果您調用'stack test',則標誌會自動設置 - 現在沒有cabal標誌來啓用此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

這似乎只在'boxes'項目上調用stack ghci時才起作用,而不是通過cabal將其作爲依賴項包含在內。 –

+1

你可以發送一個pull請求到box並提供一個cabal標誌,並在此期間使用你的github回購,堆棧內置了使用回購作爲源的選項;對於cabal我有一段時間沒有使用它,所以我不知道這是否是一個選項。 – epsilonhalbe

+0

如果你需要'內容'功能的東西,而不是測試目的 - 我會問維護者有關隱藏所述功能的意圖!有很多方便的東西,但使用時增加一些風險或其他。 – epsilonhalbe

相關問題