Skip to content

Commit e609aa0

Browse files
committed
Attempt to fix build with GHC 9.2 & 9.12
1 parent 75bec67 commit e609aa0

1 file changed

Lines changed: 34 additions & 16 deletions

File tree

Setup.hs

Lines changed: 34 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,35 +1,42 @@
1+
{-# LANGUAGE CPP #-}
2+
{-# LANGUAGE DataKinds #-}
3+
{-# LANGUAGE ImportQualifiedPost #-}
14
{-# LANGUAGE OverloadedRecordDot #-}
25
{-# LANGUAGE OverloadedStrings #-}
6+
{-# LANGUAGE PackageImports #-} -- Required for GHC9.2
37
import Data.Either
48

5-
import Distribution.Simple
6-
import Distribution.Simple.Setup
7-
import Distribution.Simple.LocalBuildInfo
8-
import Distribution.PackageDescription
9-
import Distribution.Types.BuildInfo
10-
import Distribution.Types.PackageDescription
11-
import Distribution.Types.CondTree
12-
import Distribution.Types.ForeignLib
13-
import Distribution.Types.UnqualComponentName
14-
import Distribution.Utils.Path
15-
import System.Process
9+
import Distribution.Simple (confHook, defaultMainWithHooks, simpleUserHooks)
10+
import Distribution.Simple.Setup (ConfigFlags(..))
11+
import Distribution.Simple.LocalBuildInfo (LocalBuildInfo)
12+
import "Cabal-syntax" Distribution.PackageDescription
13+
import "Cabal-syntax" Distribution.Types.BuildInfo
14+
import "Cabal-syntax" Distribution.Types.PackageDescription
15+
import "Cabal-syntax" Distribution.Types.CondTree
16+
import "Cabal-syntax" Distribution.Types.ForeignLib
17+
import "Cabal-syntax" Distribution.Types.UnqualComponentName
18+
import "Cabal-syntax" Distribution.Utils.Path
19+
import "Cabal-syntax" Distribution.Compat.Lens
20+
import "Cabal-syntax" Distribution.Types.BuildInfo.Lens qualified as L
21+
1622
import Data.List (intercalate, nub)
23+
import System.Process
1724

18-
import Distribution.Compat.Lens
19-
import qualified Distribution.Types.BuildInfo.Lens as L
2025

2126
main :: IO ()
2227
main = defaultMainWithHooks $ simpleUserHooks
2328
{ confHook = patchedConfHook }
2429

30+
31+
2532
patchedConfHook
2633
:: (GenericPackageDescription, HookedBuildInfo)
2734
-> ConfigFlags
2835
-> IO LocalBuildInfo
2936
patchedConfHook (gpd, hbi) flags
3037
| Just True <- lookupFlagAssignment ("python3-config") $ configConfigurationsFlags flags
3138
= do cflags_raw <- readProcess "python3-config" ["--cflags"] ""
32-
ldflags_raw <- readProcess "python3-config" ["--embed", "--ldflags"] ""
39+
ldflags_raw <- readProcess "python3-config" ["--embed", "--ldflags"] ""
3340
-- Split flags
3441
let (inc_dirs,cflags) = partitionEithers
3542
[ case flag of
@@ -46,10 +53,10 @@ patchedConfHook (gpd, hbi) flags
4653
]
4754
let tweakLib lib = case lib.libName of
4855
LMainLibName -> lib & L.ccOptions %~ (++ cflags)
49-
& L.includeDirs %~ (++ inc_dirs)
56+
& L.includeDirs %~ (++ (toSymb <$> inc_dirs))
5057
& L.ldOptions %~ (++ ldflags)
5158
& L.extraLibs %~ (++ libs)
52-
& L.extraLibDirs %~ (++ lib_dirs)
59+
& L.extraLibDirs %~ (++ (toSymb <$> lib_dirs))
5360
_ -> lib
5461
confHook simpleUserHooks
5562
( gpd { condLibrary = (fmap . fmap) tweakLib (condLibrary gpd) }
@@ -60,3 +67,14 @@ patchedConfHook (gpd, hbi) flags
6067

6168
tokenizeArguments :: String -> [String]
6269
tokenizeArguments = words
70+
71+
----------------------------------------------------------------
72+
-- Compatibility
73+
74+
#if MIN_VERSION_Cabal_syntax(3,14,0)
75+
toSymb :: String -> SymbolicPathX 'AllowAbsolute from to
76+
toSymb = makeSymbolicPath
77+
#else
78+
toSymb :: String -> String
79+
toSymb = id
80+
#endif

0 commit comments

Comments
 (0)