在不编译源代码的情况下构建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.hsBoardgame/Web.hs

以上是在不编译源代码的情况下构建Haddock文档的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>