SysTools

ghc-8.10.7: The GHC API

Safe Haskell | None
Language | Haskell2010

SysTools

Contents

- Initialisation
- Interface to system tools
- General utilities
- Platform-specifics
- Mac OS X frameworks

Synopsis

- initSysTools :: String -> IO Settings
- lazyInitLlvmConfig :: String -> IO LlvmConfig
- module SysTools.Tasks
- module SysTools.Info
- linkDynLib :: DynFlags -> [String] -> [InstalledUnitId] -> IO ()
- copy :: DynFlags -> String -> FilePath -> FilePath -> IO ()
- copyWithHeader :: DynFlags -> String -> Maybe String -> FilePath -> FilePath -> IO ()
- data Option
  - = FileOption String String
  - | Option String
- expandTopDir :: FilePath -> String -> String
- libmLinkOpts :: [Option]
- getPkgFrameworkOpts :: DynFlags -> Platform -> [InstalledUnitId] -> IO [String]
- getFrameworkOpts :: DynFlags -> Platform -> [String]

# Initialisation

initSysTools :: String -> IO Settings Source #

lazyInitLlvmConfig :: String -> IO LlvmConfig Source #

# Interface to system tools

module SysTools.Tasks

module SysTools.Info

linkDynLib :: DynFlags -> [String] -> [InstalledUnitId] -> IO () Source #

copy :: DynFlags -> String -> FilePath -> FilePath -> IO () Source #

copyWithHeader :: DynFlags -> String -> Maybe String -> FilePath -> FilePath -> IO () Source #

# General utilities

data Option Source #

When invoking external tools as part of the compilation pipeline, we pass these a sequence of options on the command-line. Rather than just using a list of Strings, we use a type that allows us to distinguish between filepaths and 'other stuff'. The reason for this is that this type gives us a handle on transforming filenames, and filenames only, to whatever format they're expected to be on a particular platform.

Constructors

FileOption String String |
Option String |

#### Instances

Instances details

Eq Option # |
Instance details Defined in CliOption Methods (==) :: Option -> Option -> Bool # (/=) :: Option -> Option -> Bool #

expandTopDir :: FilePath -> String -> String Source #

Expand occurrences of the `$topdir` interpolation in a string.

# Platform-specifics

libmLinkOpts :: [Option] Source #

Some platforms require that we explicitly link against `libm` if any math-y things are used (which we assume to include all programs). See #14022.

# Mac OS X frameworks

getPkgFrameworkOpts :: DynFlags -> Platform -> [InstalledUnitId] -> IO [String] Source #

getFrameworkOpts :: DynFlags -> Platform -> [String] Source #