19
19
--
20
20
-----------------------------------------------------------------------------
21
21
22
- module Development.IDE.GHC.CPP (doCpp ) where
22
+ module Development.IDE.GHC.CPP (doCpp , addOptP )
23
+ where
23
24
24
25
import Development.IDE.GHC.Compat
25
26
import Packages
@@ -33,6 +34,10 @@ import LlvmCodeGen (llvmVersionList)
33
34
#elif MIN_GHC_API_VERSION(8,8,0)
34
35
import LlvmCodeGen (LlvmVersion (.. ))
35
36
#endif
37
+ #if MIN_GHC_API_VERSION (8,10,0)
38
+ import Fingerprint
39
+ import ToolSettings
40
+ #endif
36
41
37
42
import System.Directory
38
43
import System.FilePath
@@ -162,6 +167,22 @@ getBackendDefs dflags | hscTarget dflags == HscLlvm = do
162
167
getBackendDefs _ =
163
168
return []
164
169
170
+ addOptP :: String -> DynFlags -> DynFlags
171
+ #if MIN_GHC_API_VERSION (8,10,0)
172
+ addOptP f = alterToolSettings $ \ s -> s
173
+ { toolSettings_opt_P = f : toolSettings_opt_P s
174
+ , toolSettings_opt_P_fingerprint = fingerprintStrings (f : toolSettings_opt_P s)
175
+ }
176
+ where
177
+ fingerprintStrings ss = fingerprintFingerprints $ map fingerprintString ss
178
+ alterToolSettings f dynFlags = dynFlags { toolSettings = f (toolSettings dynFlags) }
179
+ #else
180
+ addOptP opt = onSettings (onOptP (opt: ))
181
+ where
182
+ onSettings f x = x{settings = f $ settings x}
183
+ onOptP f x = x{sOpt_P = f $ sOpt_P x}
184
+ #endif
185
+
165
186
-- ---------------------------------------------------------------------------
166
187
-- Macros (cribbed from Cabal)
167
188
0 commit comments