diff --git a/cabal-install/parser-tests/Tests/ParserTests.hs b/cabal-install/parser-tests/Tests/ParserTests.hs index 85f8f7a45df..9eaea4c1d0a 100644 --- a/cabal-install/parser-tests/Tests/ParserTests.hs +++ b/cabal-install/parser-tests/Tests/ParserTests.hs @@ -477,6 +477,7 @@ testProgramOptionsConcat = do Map.fromList [ ("ghc", ["-threaded", "-Wall", "-fno-state-hack"]) , ("gcc", ["-baz", "-foo", "-bar"]) + , ("haddock", ["--optghc=-optP -P"]) , ("ld", ["-Wl,--gc-sections"]) ] } diff --git a/cabal-install/parser-tests/Tests/files/program-options-concat/cabal.project b/cabal-install/parser-tests/Tests/files/program-options-concat/cabal.project index 558a5e45a65..a418091c0d5 100644 --- a/cabal-install/parser-tests/Tests/files/program-options-concat/cabal.project +++ b/cabal-install/parser-tests/Tests/files/program-options-concat/cabal.project @@ -1,6 +1,7 @@ program-options ghc-options: -fno-state-hack gcc-options: -foo -bar + haddock-options: --optghc="-optP -P" program-options ghc-options: -threaded -Wall diff --git a/cabal-install/src/Distribution/Client/ProjectConfig/Parsec.hs b/cabal-install/src/Distribution/Client/ProjectConfig/Parsec.hs index bb60645f58b..e6299a72f2b 100644 --- a/cabal-install/src/Distribution/Client/ProjectConfig/Parsec.hs +++ b/cabal-install/src/Distribution/Client/ProjectConfig/Parsec.hs @@ -355,6 +355,10 @@ parsePackageName pos args = case args of parser = P.choice [P.try (P.char '*' >> return AllPackages), SpecificPackage <$> parsec] +programArgsFieldGrammar :: ParsecFieldGrammar' [(String,[String])] +programArgsFieldGrammar = + monoidalFieldAla "ghc-options" (alaList' NoCommaFSep Token') oida + -- | Parse fields of a program-options stanza. parseProgramArgs :: ProgramDb -> Fields Position -> ParseResult (MapMappend String [String]) parseProgramArgs programDb fields = foldM parseField mempty (filter hasOptionsSuffix $ Map.toList fields)