{-# LANGUAGE CPP #-} {-# LANGUAGE NoRebindableSyntax #-} #if __GLASGOW_HASKELL__ >= 810 {-# OPTIONS_GHC -Wno-prepositive-qualified-module #-} #endif {-# OPTIONS_GHC -fno-warn-missing-import-lists #-} {-# OPTIONS_GHC -w #-} module Paths_Cabal ( version, getBinDir, getLibDir, getDynLibDir, getDataDir, getLibexecDir, getDataFileName, getSysconfDir ) where import qualified Control.Exception as Exception import qualified Data.List as List import Data.Version (Version(..)) import System.Environment (getEnv) import Prelude #if defined(VERSION_base) #if MIN_VERSION_base(4,0,0) catchIO :: IO a -> (Exception.IOException -> IO a) -> IO a #else catchIO :: IO a -> (Exception.Exception -> IO a) -> IO a #endif #else catchIO :: IO a -> (Exception.IOException -> IO a) -> IO a #endif catchIO :: forall a. IO a -> (IOException -> IO a) -> IO a catchIO = IO a -> (IOException -> IO a) -> IO a forall e a. Exception e => IO a -> (e -> IO a) -> IO a Exception.catch version :: Version version :: Version version = [Int] -> [String] -> Version Version [Int 3,Int 12,Int 0,Int 0] [] getDataFileName :: FilePath -> IO FilePath getDataFileName :: String -> IO String getDataFileName String name = do dir <- IO String getDataDir return (dir `joinFileName` name) getBinDir, getLibDir, getDynLibDir, getDataDir, getLibexecDir, getSysconfDir :: IO FilePath bindir, libdir, dynlibdir, datadir, libexecdir, sysconfdir :: FilePath bindir :: String bindir = String "${pkgroot}/../bin" libdir :: String libdir = String "${pkgroot}/../lib/x86_64-linux-ghc-9.10.0.20240426/Cabal-3.12.0.0-e2bf" dynlibdir :: String dynlibdir = String "${pkgroot}/../lib/x86_64-linux-ghc-9.10.0.20240426" datadir :: String datadir = String "${pkgroot}/../share/x86_64-linux-ghc-9.10.0.20240426/Cabal-3.12.0.0" libexecdir :: String libexecdir = String "${pkgroot}/../libexec/x86_64-linux-ghc-9.10.0.20240426/Cabal-3.12.0.0" sysconfdir :: String sysconfdir = String "${pkgroot}/../etc" getBinDir :: IO String getBinDir = IO String -> (IOException -> IO String) -> IO String forall a. IO a -> (IOException -> IO a) -> IO a catchIO (String -> IO String getEnv String "Cabal_bindir") (\IOException _ -> String -> IO String forall a. a -> IO a forall (m :: * -> *) a. Monad m => a -> m a return String bindir) getLibDir :: IO String getLibDir = IO String -> (IOException -> IO String) -> IO String forall a. IO a -> (IOException -> IO a) -> IO a catchIO (String -> IO String getEnv String "Cabal_libdir") (\IOException _ -> String -> IO String forall a. a -> IO a forall (m :: * -> *) a. Monad m => a -> m a return String libdir) getDynLibDir :: IO String getDynLibDir = IO String -> (IOException -> IO String) -> IO String forall a. IO a -> (IOException -> IO a) -> IO a catchIO (String -> IO String getEnv String "Cabal_dynlibdir") (\IOException _ -> String -> IO String forall a. a -> IO a forall (m :: * -> *) a. Monad m => a -> m a return String dynlibdir) getDataDir :: IO String getDataDir = IO String -> (IOException -> IO String) -> IO String forall a. IO a -> (IOException -> IO a) -> IO a catchIO (String -> IO String getEnv String "Cabal_datadir") (\IOException _ -> String -> IO String forall a. a -> IO a forall (m :: * -> *) a. Monad m => a -> m a return String datadir) getLibexecDir :: IO String getLibexecDir = IO String -> (IOException -> IO String) -> IO String forall a. IO a -> (IOException -> IO a) -> IO a catchIO (String -> IO String getEnv String "Cabal_libexecdir") (\IOException _ -> String -> IO String forall a. a -> IO a forall (m :: * -> *) a. Monad m => a -> m a return String libexecdir) getSysconfDir :: IO String getSysconfDir = IO String -> (IOException -> IO String) -> IO String forall a. IO a -> (IOException -> IO a) -> IO a catchIO (String -> IO String getEnv String "Cabal_sysconfdir") (\IOException _ -> String -> IO String forall a. a -> IO a forall (m :: * -> *) a. Monad m => a -> m a return String sysconfdir) joinFileName :: String -> String -> FilePath joinFileName :: String -> String -> String joinFileName String "" String fname = String fname joinFileName String "." String fname = String fname joinFileName String dir String "" = String dir joinFileName String dir String fname | Char -> Bool isPathSeparator (String -> Char forall a. HasCallStack => [a] -> a List.last String dir) = String dir String -> String -> String forall a. [a] -> [a] -> [a] ++ String fname | Bool otherwise = String dir String -> String -> String forall a. [a] -> [a] -> [a] ++ Char pathSeparator Char -> String -> String forall a. a -> [a] -> [a] : String fname pathSeparator :: Char pathSeparator :: Char pathSeparator = Char '/' isPathSeparator :: Char -> Bool isPathSeparator :: Char -> Bool isPathSeparator Char c = Char c Char -> Char -> Bool forall a. Eq a => a -> a -> Bool == Char '/'