git.iko.soy/typeable/cabal2nix
on master help sign in
Enable benchmarks during Cabal post-processing.
bf8a622Peter Simons
src/Distribution/Nixpkgs/Haskell/FromCabal.hs+10−1
@@ -40,7 +40,7 @@ fromGenericPackageDescription haskellResolver nixpkgsResolver arch compiler flag
40 -- We have to call the Cabal finalizer several times with different resolver
40 -- We have to call the Cabal finalizer several times with different resolver
41 -- functions, and this convenience function makes our code shorter.
41 -- functions, and this convenience function makes our code shorter.
42 finalize :: HaskellResolver -> Either [Dependency] (PackageDescription,FlagAssignment)
42 finalize :: HaskellResolver -> Either [Dependency] (PackageDescription,FlagAssignment)
43− finalize resolver = finalizePackageDescription flags resolver arch compiler constraints (enableTests genDesc)
43+ finalize resolver = finalizePackageDescription flags resolver arch compiler constraints (enableBenchmarks (enableTests genDesc))
44
44
45 descr :: PackageDescription; missingDeps :: [Dependency]
45 descr :: PackageDescription; missingDeps :: [Dependency]
46 (descr,missingDeps) = case finalize jailbrokenResolver of
46 (descr,missingDeps) = case finalize jailbrokenResolver of
@@ -132,3 +132,12 @@ enableTests gd = gd { condTestSuites = flaggedTests }
132
132
133 enableTest :: TestSuite -> TestSuite
133 enableTest :: TestSuite -> TestSuite
134 enableTest t = t { testEnabled = True }
134 enableTest t = t { testEnabled = True }
135+
136+enableBenchmarks :: GenericPackageDescription -> GenericPackageDescription
137+enableBenchmarks gd = gd { condBenchmarks = flaggedBenchmarks }
138+ where
139+ flaggedBenchmarks :: [(String, CondTree ConfVar [Dependency] Benchmark)]
140+ flaggedBenchmarks = map (second (mapTreeData enableBenchmark)) (condBenchmarks gd)
141+
142+ enableBenchmark :: Benchmark -> Benchmark
143+ enableBenchmark t = t { benchmarkEnabled = True }