在不编译源代码的情况下构建Haddock文档
我的工作包含目标WebAssembly使用(WASM)部分哈斯克尔库阿斯特斯。这些部分不能用正常编译ghc,因此我们有排除/包含 WASM 部分的标志。
尝试使用 Asterius 构建文档ahc-cabal new-haddock失败。它似乎恢复ghc了 Haddock 命令的正常状态。
我的问题是:我可以在不编译它描述的源代码的情况下构建 Haddock 文档吗?
我的文件摘录可能相关:
我的阴谋文件的一部分:
flag wasm
description: Eanbles builds targeting WASM.
default: False
manual: True
library
exposed-modules: Boardgame
build-depends: base >= 4.12 && < 5.0
if flag(wasm)
exposed-modules: Boardgame.Web
build-depends:
aeson >= 1.4 && < 1.6
, asterius-prelude == 0.0.1
, scientific >= 0.3 && < 0.4
CPP-options: "-DWASM"
部分Boardgame.hs:
#ifdef WASM
import Data.Aeson (ToJSON(toJSON), Value(Number, Null))
import Data.Scientific (fromFloatDigits)
#endif
-- | Represents one of the two players.
data Player = Player1 | Player2
deriving (Show, Eq)
#ifdef WASM
instance ToJSON Player where
toJSON = Number . fromFloatDigits . fromIntegral . playerToInt
#endif
部分Boardgame/Web.hs:
module Boardgame.Web (
addWebGame
) where
foreign import javascript "wrapper" jsMakeCallback :: IO () -> IO JSVal
foreign import javascript "boardgame.games[$1] = $2" jsSetGame :: JSVal -> JSVal -> IO ()
-- | Adds a named game to the list of games accessible from JavaScript.
addWebGame :: (ToJSON a, ToJSON c, FromJSON c, PositionalGame a c) => String -> a -> IO ()
addWebGame name startState = do
callback <- jsMakeCallback $ playWeb startState
jsSetGame (jsonToJSVal name) callback
我的主文件 ( Boardgame.hs) 包含“隐藏”在 WASM 标志后面的代码,但没有任何代码有任何文档。Boardgame/Web.hs仅在指定了 WASM 标志并且具有一些带有文档的功能时才包括在内。
我想建立的文档,在这两个文件的所有功能Boardgame.hs和Boardgame/Web.hs。