about summary refs log tree commit diff
path: root/pkgs/development/haskell-modules/patches/proto-lens-setup-0.4.0.2.patch
blob: a95df00e5dbf608d3fa047d750f0400774412add (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
diff --git a/src/Data/ProtoLens/Setup.hs b/src/Data/ProtoLens/Setup.hs
index e68f32b..f381199 100644
--- a/src/Data/ProtoLens/Setup.hs
+++ b/src/Data/ProtoLens/Setup.hs
@@ -41,9 +41,6 @@ import Distribution.PackageDescription
     , exeName
     , exposedModules
     , extraSrcFiles
-#if !MIN_VERSION_Cabal(2,0,0)
-    , hsSourceDirs
-#endif
 #if MIN_VERSION_Cabal(2,4,0)
     , specVersion
 #endif
@@ -53,7 +50,7 @@ import Distribution.PackageDescription
     , testBuildInfo
     , testName
     )
-import qualified Distribution.Simple.BuildPaths as BuildPaths
+import Distribution.Simple.BuildPaths (autogenComponentModulesDir)
 import Distribution.Simple.InstallDirs (datadir)
 import Distribution.Simple.LocalBuildInfo
     ( LocalBuildInfo(..)
@@ -61,9 +58,10 @@ import Distribution.Simple.LocalBuildInfo
     , ComponentName(..)
     , ComponentLocalBuildInfo
     , componentPackageDeps
-#if MIN_VERSION_Cabal(2,0,0)
     , allComponentsInBuildOrder
     , componentNameMap
+#if MIN_VERSION_Cabal(3,0,0)
+    , LibraryName(..)
 #endif
     )
 import qualified Distribution.Simple.PackageIndex as PackageIndex
@@ -205,16 +203,6 @@ generatingSpecificProtos root getProtos hooks = hooks
     { buildHook = \p l h f -> generate l >> buildHook hooks p l h f
     , haddockHook = \p l h f -> generate l >> haddockHook hooks p l h f
     , replHook = \p l h f args -> generate l >> replHook hooks p l h f args
-#if !MIN_VERSION_Cabal(2,0,0)
-    -- Older versions of Cabal don't support the autogen-modules field.
-    -- Work around it by manually generating the modules and putting them
-    -- in a place where `cabal sdist` will pick them up.
-    , sDistHook = \p maybe_l h f -> case maybe_l of
-            Nothing -> error "Can't run protoc; run 'cabal configure' first."
-            Just l -> do
-                        generate l
-                        sDistHook hooks (fudgePackageDesc l p) maybe_l h f
-#endif
     , postCopy = \a flags pkg lbi -> do
                   let verb = fromFlag $ copyVerbosity flags
                   let destDir = datadir (absoluteInstallDirs pkg lbi
@@ -316,39 +304,6 @@ copyProtosToDataDir verb root destDir files = do
 protoLensImportsPrefix :: FilePath
 protoLensImportsPrefix = "proto-lens-imports"
 
-#if !MIN_VERSION_Cabal(2,0,0)
--- | Add the autogen directory to the hs-source-dirs of all the targets in the
--- .cabal file.  Used to fool 'sdist' by pointing it to the generated source
--- files.
-fudgePackageDesc :: LocalBuildInfo -> PackageDescription -> PackageDescription
-fudgePackageDesc lbi p = p
-    { library =
-        (\lib -> lib { libBuildInfo = fudgeBuildInfo CLibName $ libBuildInfo lib })
-            <$> library p
-    , executables =
-        (\exe -> exe { buildInfo = fudgeBuildInfo (CExeName $ exeName exe)
-                                        $ buildInfo exe })
-            <$> executables p
-    , testSuites =
-        (\test -> test { testBuildInfo = fudgeBuildInfo (CTestName $ testName test)
-                                            $ testBuildInfo test })
-            <$> testSuites p
-    , benchmarks =
-        (\bench -> bench { benchmarkBuildInfo =
-                              fudgeBuildInfo (CBenchName $ benchmarkName bench)
-                                  $ benchmarkBuildInfo bench })
-            <$> benchmarks p
-    }
-  where
-    comps = allComponents lbi
-    fudgeBuildInfo n bi
-        | Just compLBI <- Map.lookup n comps
-            = bi { hsSourceDirs = autogenComponentModulesDir lbi compLBI
-                                    : hsSourceDirs bi }
-        | otherwise = bi -- Could happen if a component isn't active; try
-                         -- anyway and see whether Cabal complains later on.
-#endif
-
 -- | Returns whether the @root@ is a parent folder of @f@.
 isSubdirectoryOf :: FilePath -> FilePath -> Bool
 isSubdirectoryOf root f
@@ -423,15 +378,18 @@ collectActiveModules
 collectActiveModules l = map (\(n, c) -> (c, f n)) $ Map.toList $ allComponents l
   where
     p = localPkgDescr l
-    f CLibName = maybeToList (library p) >>=
+#if MIN_VERSION_Cabal(3,0,0)
+    f (CLibName LMainLibName)
+#else
+    f CLibName
+#endif
+        = maybeToList (library p) >>=
                     \lib -> exposedModules lib
                                 ++ otherModules (libBuildInfo lib)
     f (CExeName n) = otherModules . buildInfo $ exes Map.! n
     f (CTestName n) = otherModules . testBuildInfo $ tests Map.! n
     f (CBenchName n) = otherModules . benchmarkBuildInfo $ benchs Map.! n
-#if MIN_VERSION_Cabal(2,0,0)
     f _ = []  -- TODO: other lib kinds; for now just suppress the warning
-#endif
     exes = Map.fromList [(exeName e, e) | e <- executables p]
     tests = Map.fromList [(testName e, e) | e <- testSuites p]
     benchs = Map.fromList [(benchmarkName e, e) | e <- benchmarks p]
@@ -441,22 +399,14 @@ collectActiveModules l = map (\(n, c) -> (c, f n)) $ Map.toList $ allComponents
 
 -- | List all the packages that this one depends on.
 collectDeps :: LocalBuildInfo -> [InstalledPackageInfo.InstalledPackageInfo]
-#if MIN_VERSION_Cabal(2,0,0)
 collectDeps l = do
     c <- allComponentsInBuildOrder l
     (i,_) <- componentPackageDeps c
     Just p <- [PackageIndex.lookupUnitId (installedPkgs l) i]
     return p
-#else
-collectDeps l = do
-    (_, c ,_) <- componentsConfigs l
-    (_, i) <- componentPackageDeps c
-    PackageIndex.lookupSourcePackageId (installedPkgs l) i
-#endif
 
 -- | All the components that will be built by this Cabal command.
 allComponents :: LocalBuildInfo -> Map.Map ComponentName ComponentLocalBuildInfo
-#if MIN_VERSION_Cabal(2,0,0)
 allComponents l = fmap requireOne $ componentNameMap l
   where
     -- TODO: this doesn't support Backpack, which can have more than one
@@ -464,16 +414,3 @@ allComponents l = fmap requireOne $ componentNameMap l
     requireOne [x] = x
     requireOne xs = error $ "Data.ProtoLens.Setup.allComponents: expected one "
                           ++ "component per name, got " ++ show xs
-
-#else
-allComponents l = Map.fromList [(c, b) | (c, b, _) <- componentsConfigs l]
-#endif
-
--- | Get the component-level "autogen" directory where we're putting the
--- generated .hs files.  (For Cabal-1.0, use the shared 'BuildPaths.autogenModulesDir'.)
-autogenComponentModulesDir :: LocalBuildInfo -> ComponentLocalBuildInfo -> FilePath
-#if MIN_VERSION_Cabal(2,0,0)
-autogenComponentModulesDir = BuildPaths.autogenComponentModulesDir
-#else
-autogenComponentModulesDir lbi _ = BuildPaths.autogenModulesDir lbi
-#endif