Cabal-3.18.1.0: src/Distribution/Simple/BuildWay.hs
{-# LANGUAGE LambdaCase #-}
module Distribution.Simple.BuildWay
( BuildWay (..)
, buildWayObjectExtension
, buildWayInterfaceExtension
) where
data BuildWay = StaticWay | DynWay | ProfWay | ProfDynWay
deriving (Eq, Ord, Show, Read, Enum)
-- | Returns the object extension for the given build way (e.g. "dyn_o" for 'DynWay' on ELF)
buildWayObjectExtension :: String -> BuildWay -> String
buildWayObjectExtension ext = \case
StaticWay -> ext
ProfWay -> "p_" ++ ext
DynWay -> "dyn_" ++ ext
ProfDynWay -> "p_dyn_" ++ ext
buildWayInterfaceExtension :: BuildWay -> String
buildWayInterfaceExtension = buildWayObjectExtension "hi"