{-# LANGUAGE Safe #-}
module Config.CompilerConfig (
Backend(..),
LocalConfig(..),
Resolver(..),
) where
data LocalConfig =
LocalConfig {
LocalConfig -> Resolver
lcResolver :: Resolver,
LocalConfig -> Backend
lcBackend :: Backend
}
deriving (LocalConfig -> LocalConfig -> Bool
(LocalConfig -> LocalConfig -> Bool)
-> (LocalConfig -> LocalConfig -> Bool) -> Eq LocalConfig
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: LocalConfig -> LocalConfig -> Bool
== :: LocalConfig -> LocalConfig -> Bool
$c/= :: LocalConfig -> LocalConfig -> Bool
/= :: LocalConfig -> LocalConfig -> Bool
Eq,Int -> LocalConfig -> ShowS
[LocalConfig] -> ShowS
LocalConfig -> String
(Int -> LocalConfig -> ShowS)
-> (LocalConfig -> String)
-> ([LocalConfig] -> ShowS)
-> Show LocalConfig
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> LocalConfig -> ShowS
showsPrec :: Int -> LocalConfig -> ShowS
$cshow :: LocalConfig -> String
show :: LocalConfig -> String
$cshowList :: [LocalConfig] -> ShowS
showList :: [LocalConfig] -> ShowS
Show)
data Backend =
UnixBackend {
Backend -> String
ucCxxBinary :: FilePath,
Backend -> [String]
ucCompileFlags :: [String],
Backend -> [String]
ucLibraryFlags :: [String],
Backend -> [String]
ucBinaryFlags :: [String],
Backend -> String
ucArBinary :: FilePath
}
deriving (Backend -> Backend -> Bool
(Backend -> Backend -> Bool)
-> (Backend -> Backend -> Bool) -> Eq Backend
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: Backend -> Backend -> Bool
== :: Backend -> Backend -> Bool
$c/= :: Backend -> Backend -> Bool
/= :: Backend -> Backend -> Bool
Eq,Int -> Backend -> ShowS
[Backend] -> ShowS
Backend -> String
(Int -> Backend -> ShowS)
-> (Backend -> String) -> ([Backend] -> ShowS) -> Show Backend
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> Backend -> ShowS
showsPrec :: Int -> Backend -> ShowS
$cshow :: Backend -> String
show :: Backend -> String
$cshowList :: [Backend] -> ShowS
showList :: [Backend] -> ShowS
Show)
data Resolver =
SimpleResolver {
Resolver -> [String]
srVisibleSystem :: [FilePath],
:: [FilePath]
}
deriving (Resolver -> Resolver -> Bool
(Resolver -> Resolver -> Bool)
-> (Resolver -> Resolver -> Bool) -> Eq Resolver
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: Resolver -> Resolver -> Bool
== :: Resolver -> Resolver -> Bool
$c/= :: Resolver -> Resolver -> Bool
/= :: Resolver -> Resolver -> Bool
Eq,Int -> Resolver -> ShowS
[Resolver] -> ShowS
Resolver -> String
(Int -> Resolver -> ShowS)
-> (Resolver -> String) -> ([Resolver] -> ShowS) -> Show Resolver
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> Resolver -> ShowS
showsPrec :: Int -> Resolver -> ShowS
$cshow :: Resolver -> String
show :: Resolver -> String
$cshowList :: [Resolver] -> ShowS
showList :: [Resolver] -> ShowS
Show)