4

したがって、ファイル埋め込みパッケージを使用しています:

import qualified Data.ByteString as B
import qualified Data.ByteString.Internal as B (w2c)
import qualified Data.FileEmbed as E

initWindow = do
    b <- Gtk.builderNew
    let glade = map B.w2c $ B.unpack $ $(E.embedFile "window.glade") in
        Gtk.builderAddFromString b glade
    ...

空き地ファイルのみが変更された場合でも、cabal にこのファイルを再構築させることは可能ですか?

4

1 に答える 1

4

このサポートは GHC 7.4/7.6 で追加される予定です。問題は、コンパイラが TemplateHaskell スプライスによるファイル依存関係の追加をまだ許可していないことです。詳細については、このチケットを参照してください。

この変更が行われると、次のコードを使用して新しいembedFile'関数を作成できます。

import Data.FileEmbed

import Language.Haskell.TH.Syntax
import Language.Haskell.TH.Lib

embedFile' :: FilePath -> Q Exp
embedFile' path = do
  qAddDependentFile path
  embedFile path

これは、TH 関数を使用する場所とは別のモジュールにある必要があります。

于 2011-12-20T04:20:36.330 に答える