2012-05-09 79 views
3

有沒有辦法改寫之一:驚天動地:有條件地覆蓋標誌默認值

flag llvm 
    description: compile via LLVM 
    default : if os(mingw32) 
        False 
       else 
        True 

flag llvm 
    description: compile via LLVM 
    default : True 

if os(mingw32) 
    ?SET-LLVM=False? 

,並得到cabal與它合作?


注:

在同一個文件再往下llvm標誌使用,如:

if flag(llvm) 
    ghc-options: -fllvm -optlo-O3 

還有許多其他單一的高層次的標記,它們翻譯成多個ghc-options條目,例如static-static -optl-static

回答

3

你可以做這樣的事情:

flag llvm 
    description: compile via LLVM 
    default : True 

-- ... 

Executable foo 
    if flag(llvm) && !os(windows) 
     ghc-options: -fllvm -optlo-O3 
+0

哇,這是相當聰明:) –

+0

現在我不能'在Windows -fllvm'。 = [ – strager