3Description : Utilities for interacting with the System.
6Maintainer : The Idris Community.
9module IRTS.System( getDataFileName
23import Paths_idris (version)
29import Control.Applicative ((<$>))
31import Data.Maybe (fromMaybe)
32import System.Environment
33import System.FilePath (addTrailingPathSeparator, (</>))
36getIdrisDataDir :: IO String
38 envValue <- lookupEnv "TARGET"
43 Just ddir -> return ddir
45overrideIdrisSubDirWith :: String -- ^ Sub directory in `getDataDir` location.
46 -> String -- ^ Environment variable to get new location from.
48overrideIdrisSubDirWith fp envVar = do
49 envValue <- lookupEnv envVar
52 ddir <- getIdrisDataDir
54 Just ddir -> return ddir
57getCC = fromMaybe "gcc" <$> lookupEnv "IDRIS_CC"
59getEnvFlags :: IO [String]
60getEnvFlags = maybe [] (splitOn " ") <$> lookupEnv "IDRIS_CFLAGS"
63#if defined(freebsd_HOST_OS) || defined(dragonfly_HOST_OS)\
64 || defined(openbsd_HOST_OS) || defined(netbsd_HOST_OS)
65extraLib = ["-L/usr/local/lib"]
66extraInclude = ["-I/usr/local/include"]
78getLibFlags = do dir <- getIdrisCRTSDir
79 return $ ["-L" ++ dir,
80 "-lidris_rts"] ++ extraLib ++ gmpLib ++ ["-lpthread"]
82getIdrisLibDir = addTrailingPathSeparator <$> overrideIdrisSubDirWith "libs" "IDRIS_LIBRARY_PATH"
84getIdrisDocDir = addTrailingPathSeparator <$> overrideIdrisSubDirWith "docs" "IDRIS_DOC_PATH"
87 ddir <- getIdrisDataDir
88 return $ addTrailingPathSeparator (ddir </> "jsrts")
91 ddir <- getIdrisDataDir
92 return $ addTrailingPathSeparator (ddir </> "rts")
94getIncFlags = do dir <- getIdrisCRTSDir
95 return $ ("-I" ++ dir) : extraInclude
keysesc to close
- j k
- move down, up
- enter
- open
- esc
- back, or up a level
- 1 2 3 4
- readme, files, commits, refs
- /
- filter
- y
- copy the clone command
- c
- compare the chosen commit with another (or shift-click both)
- ?
- show or hide this list