diff --git a/Cabal/Cabal.cabal b/Cabal/Cabal.cabal index 711f4dea636e0ca3bbf5dfcbb9ffdf943542c79c..4bd11d9b040e8dfa2cebb9fdbcf4b9a128188335 100644 --- a/Cabal/Cabal.cabal +++ b/Cabal/Cabal.cabal @@ -83,6 +83,7 @@ extra-source-files: tests/PackageTests/Haddock/CPP.hs tests/PackageTests/Haddock/Literate.lhs tests/PackageTests/Haddock/my.cabal + tests/PackageTests/Haddock/NoCPP.hs tests/PackageTests/Haddock/Simple.hs tests/PackageTests/OrderFlags/Foo.hs tests/PackageTests/OrderFlags/my.cabal diff --git a/Cabal/Distribution/Simple/Haddock.hs b/Cabal/Distribution/Simple/Haddock.hs index 79c7d050541b11dea8b749b1e7f5fb7cac282bbe..7e1b10a72b74a39624ad616a27d7d17e5e7a3c60 100644 --- a/Cabal/Distribution/Simple/Haddock.hs +++ b/Cabal/Distribution/Simple/Haddock.hs @@ -27,7 +27,7 @@ import Distribution.Package , PackageName(..), packageName ) import qualified Distribution.ModuleName as ModuleName import Distribution.PackageDescription as PD - ( PackageDescription(..), BuildInfo(..), allExtensions + ( PackageDescription(..), BuildInfo(..), usedExtensions , Library(..), hasLibs, Executable(..) , TestSuite(..), TestSuiteInterface(..) , Benchmark(..), BenchmarkInterface(..) ) @@ -365,7 +365,7 @@ getGhcCppOpts haddockVersion bi = ghcOptCppOptions = defines } where - needsCpp = EnableExtension CPP `elem` allExtensions bi + needsCpp = EnableExtension CPP `elem` usedExtensions bi defines = [haddockVersionMacro] haddockVersionMacro = "-D__HADDOCK_VERSION__=" ++ show (v1 * 1000 + v2 * 10 + v3) diff --git a/Cabal/tests/PackageTests/Haddock/Check.hs b/Cabal/tests/PackageTests/Haddock/Check.hs index cbfe522c0784d5aa87766c3f9aaa4bf55a27ac43..0d41dd45156220bab38f43d696aff657b56ca2c1 100644 --- a/Cabal/tests/PackageTests/Haddock/Check.hs +++ b/Cabal/tests/PackageTests/Haddock/Check.hs @@ -26,7 +26,7 @@ suite ghcPath = TestCase $ do assertHaddockSucceeded hResult let docFiles = map (haddocksDir </>) - ["CPP.html", "Literate.html", "Simple.html"] + ["CPP.html", "Literate.html", "NoCPP.html", "Simple.html"] mapM_ (assertFindInFile "For hiding needles.") docFiles assertFindInFile :: String -> FilePath -> Assertion diff --git a/Cabal/tests/PackageTests/Haddock/NoCPP.hs b/Cabal/tests/PackageTests/Haddock/NoCPP.hs new file mode 100644 index 0000000000000000000000000000000000000000..417f368b37c93539b7c92ccee05b53f978fbaa86 --- /dev/null +++ b/Cabal/tests/PackageTests/Haddock/NoCPP.hs @@ -0,0 +1,8 @@ +module NoCPP (Haystack) where + +-- | For hiding needles. +data Haystack = Haystack + +-- | Causes a build failure if the CPP language extension is enabled. +stringGap = "Foo\ +\Bar" diff --git a/Cabal/tests/PackageTests/Haddock/my.cabal b/Cabal/tests/PackageTests/Haddock/my.cabal index 63e9faa4a7ce876cdbadcbd8f74dd23bbffa8cbf..176ced9b4de447c8d6d13330b9f0be61ce1e20fa 100644 --- a/Cabal/tests/PackageTests/Haddock/my.cabal +++ b/Cabal/tests/PackageTests/Haddock/my.cabal @@ -11,6 +11,6 @@ description: Check that Cabal successfully invokes Haddock. Library - exposed-modules: CPP, Literate, Simple + exposed-modules: CPP, Literate, NoCPP, Simple other-extensions: CPP build-depends: base