3Description : Utilities for interacting with the System.
6Maintainer : The Idris Community.
9module IRTS.System( getIdrisDataFileByName
23import Paths_idris (version)
28import BuildFlags_idris
30import Control.Applicative ((<$>))
32import Data.Maybe (fromMaybe)
33import System.Environment
34import System.FilePath (addTrailingPathSeparator, dropTrailingPathSeparator,
38getIdrisDataDir :: IO String
40 envValue <- lookupEnv "TARGET"
45 Just ddir -> return ddir
47getIdrisDataFileByName :: String -> IO FilePath
48getIdrisDataFileByName fn = do
49 dir <- getIdrisDataDir
52overrideIdrisSubDirWith :: String -- ^ Sub directory in `getDataDir` location.
53 -> String -- ^ Environment variable to get new location from.
55overrideIdrisSubDirWith fp envVar = do
56 envValue <- lookupEnv envVar
59 ddir <- getIdrisDataDir
61 Just ddir -> return ddir
64getCC = fromMaybe cc <$> lookupEnv "IDRIS_CC"
72getEnvFlags :: IO [String]
73getEnvFlags = maybe [] (splitOn " ") <$> lookupEnv "IDRIS_CFLAGS"
76#if defined(freebsd_HOST_OS) || defined(dragonfly_HOST_OS)\
77 || defined(openbsd_HOST_OS) || defined(netbsd_HOST_OS)
78extraLib = ["-L/usr/local/lib"]
79extraInclude = ["-I/usr/local/include"]
86gmpLib = ["-lgmp", "-DIDRIS_GMP"]
91extraLibFlags = map ("-L" ++) extraLibDirs
93getLibFlags = do dir <- getIdrisCRTSDir
94 return $ extraLibFlags
96 ++ ["-L" ++ dropTrailingPathSeparator dir, "-lidris_rts"]
100getIdrisLibDir = addTrailingPathSeparator <$> overrideIdrisSubDirWith "libs" "IDRIS_LIBRARY_PATH"
102getIdrisDocDir = addTrailingPathSeparator <$> overrideIdrisSubDirWith "docs" "IDRIS_DOC_PATH"
105 ddir <- getIdrisDataDir
106 return $ addTrailingPathSeparator (ddir </> "jsrts")
109 ddir <- getIdrisDataDir
110 return $ addTrailingPathSeparator (ddir </> "rts")
112getIncFlags = do dir <- getIdrisCRTSDir
113 return $ ("-I" ++ dropTrailingPathSeparator 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