git.iko.soy/typeable/cabal2nix
on master help sign in
cabal2nix: added support for hard-coded flag selections

Currently, this feature is used to enable highlighting support in Pandoc.

commit96e068ba73064ee6c42fa37c3825d3f7d020f20a authorPeter Simons <simons@cryp.to> dateTue 23 Aug 2011, 13:56 (15 years ago) parent4c991c0
3 files changed+23−1
cabal2nix.cabal+2 src/Cabal2Nix/Flags.hs+17 src/Cabal2Nix/Package.hs+4−1
cabal2nix.cabal+2
@@ -59,6 +59,7 @@ Executable cabal2nix
5959 Extensions: PatternGuards, RecordWildCards, CPP
6060 Ghc-Options: -Wall
6161 other-modules: Cabal2Nix.CorePackages
62+ Cabal2Nix.Flags
6263 Cabal2Nix.Hackage
6364 Cabal2Nix.Name
6465 Cabal2Nix.Normalize
@@ -77,6 +78,7 @@ Executable hackage4nix
7778 Extensions: PatternGuards, RecordWildCards, CPP
7879 Ghc-Options: -Wall
7980 other-modules: Cabal2Nix.CorePackages
81+ Cabal2Nix.Flags
8082 Cabal2Nix.Name
8183 Cabal2Nix.Normalize
8284 Cabal2Nix.Package
src/Cabal2Nix/Flags.hsnew file+17
@@ -0,0 +1,17 @@
1+module Cabal2Nix.Flags ( configureFlags ) where
2+
3+import Distribution.Package
4+import Distribution.PackageDescription
5+import Distribution.PackageDescription.Configuration
6+
7+configureFlags :: PackageIdentifier -> FlagAssignment
8+configureFlags (PackageIdentifier (PackageName name) version)
9+ | name == "pandoc" = [enable "highlighting", enable "threaded"]
10+ | otherwise = []
11+
12+
13+enable :: String -> (FlagName,Bool)
14+enable name = (FlagName name, True)
15+
16+disable :: String -> (FlagName,Bool)
17+disable name = (FlagName name, False)
src/Cabal2Nix/Package.hs+4−1
@@ -3,6 +3,7 @@ module Cabal2Nix.Package ( cabal2nix ) where
33import Cabal2Nix.License
44import Cabal2Nix.PostProcess
55import Cabal2Nix.Normalize
6+import Cabal2Nix.Flags
67import Data.Maybe
78import Distribution.Compiler
89import qualified Distribution.Package as Cabal
@@ -41,7 +42,9 @@ cabal2nix cabal = normalize $ postProcess $ MkDerivation
4142 tools = concatMap Cabal.buildTools (libDeps ++ exeDeps)
4243 libs = concatMap Cabal.extraLibs (libDeps ++ exeDeps)
4344 pcs = map unDep (concatMap Cabal.pkgconfigDepends (libDeps ++ exeDeps))
44− Right (tpkg, _) = finalizePackageDescription [] (const True)
45+ Right (tpkg, _) = finalizePackageDescription
46+ (configureFlags pkg)
47+ (const True)
4548 (Platform I386 Linux) -- shouldn't be hardcoded
4649 (CompilerId GHC (Version [7,0,4] [])) -- dito
4750 [] cabal