main/Settings.hs

    module Settings
      ( Settings (..)
      , sProgramName
      , sProjectVersion
      , sGhcUsagePath
      , sGhciUsagePath
      , sToolDir
      , sTopDir
      , sTmpDir
      , sSystemPackageConfig
      , sLdSupportsCompactUnwind
      , sLdSupportsBuildId
      , sLdSupportsFilelist
      , sLdIsGnuLd
      , sGccSupportsNoPie
      , sPgm_L
      , sPgm_P
      , sPgm_F
      , sPgm_c
      , sPgm_a
      , sPgm_l
      , sPgm_lm
      , sPgm_dll
      , sPgm_T
      , sPgm_windres
      , sPgm_libtool
      , sPgm_ar
      , sPgm_ranlib
      , sPgm_lo
      , sPgm_lc
      , sPgm_lcc
      , sPgm_i
      , sOpt_L
      , sOpt_P
      , sOpt_P_fingerprint
      , sOpt_F
      , sOpt_c
      , sOpt_cxx
      , sOpt_a
      , sOpt_l
      , sOpt_lm
      , sOpt_windres
      , sOpt_lo
      , sOpt_lc
      , sOpt_lcc
      , sOpt_i
      , sExtraGccViaCFlags
      , sTargetPlatformString
      , sIntegerLibrary
      , sIntegerLibraryType
      , sGhcWithInterpreter
      , sGhcWithNativeCodeGen
      , sGhcWithSMP
      , sGhcRTSWays
      , sTablesNextToCode
      , sLeadingUnderscore
      , sLibFFI
      , sGhcThreaded
      , sGhcDebugged
      , sGhcRtsWithLibdw
      ) where

    import GhcPrelude

    import CliOption
    import Fingerprint
    import FileSettings
    import GhcNameVersion
    import GHC.Platform
    import PlatformConstants
    import ToolSettings

    data Settings = Settings
      { sGhcNameVersion    :: {-# UNPACk #-} !GhcNameVersion
      , sFileSettings      :: {-# UNPACK #-} !FileSettings
      , sTargetPlatform    :: Platform       -- Filled in by SysTools
      , sToolSettings      :: {-# UNPACK #-} !ToolSettings
      , sPlatformMisc      :: {-# UNPACK #-} !PlatformMisc
      , sPlatformConstants :: PlatformConstants

      -- You shouldn't need to look things up in rawSettings directly.
      -- They should have their own fields instead.
      , sRawSettings       :: [(String, String)]
      }

    -----------------------------------------------------------------------------
    -- Accessessors from 'Settings'

    sProgramName         :: Settings -> String
    sProgramName = ghcNameVersion_programName . sGhcNameVersion
    sProjectVersion      :: Settings -> String
    sProjectVersion = ghcNameVersion_projectVersion . sGhcNameVersion

    sGhcUsagePath        :: Settings -> FilePath
    sGhcUsagePath = fileSettings_ghcUsagePath . sFileSettings
    sGhciUsagePath       :: Settings -> FilePath
    sGhciUsagePath = fileSettings_ghciUsagePath . sFileSettings
    sToolDir             :: Settings -> Maybe FilePath
    sToolDir = fileSettings_toolDir . sFileSettings
    sTopDir              :: Settings -> FilePath
    sTopDir = fileSettings_topDir . sFileSettings
    sTmpDir              :: Settings -> String
    sTmpDir = fileSettings_tmpDir . sFileSettings
    sSystemPackageConfig :: Settings -> FilePath
    sSystemPackageConfig = fileSettings_systemPackageConfig . sFileSettings

    sLdSupportsCompactUnwind :: Settings -> Bool
    sLdSupportsCompactUnwind = toolSettings_ldSupportsCompactUnwind . sToolSettings
    sLdSupportsBuildId :: Settings -> Bool
    sLdSupportsBuildId = toolSettings_ldSupportsBuildId . sToolSettings
    sLdSupportsFilelist :: Settings -> Bool
    sLdSupportsFilelist = toolSettings_ldSupportsFilelist . sToolSettings
    sLdIsGnuLd :: Settings -> Bool
    sLdIsGnuLd = toolSettings_ldIsGnuLd . sToolSettings
    sGccSupportsNoPie :: Settings -> Bool
    sGccSupportsNoPie = toolSettings_ccSupportsNoPie . sToolSettings

    sPgm_L :: Settings -> String
    sPgm_L = toolSettings_pgm_L . sToolSettings
    sPgm_P :: Settings -> (String, [Option])
    sPgm_P = toolSettings_pgm_P . sToolSettings
    sPgm_F :: Settings -> String
    sPgm_F = toolSettings_pgm_F . sToolSettings
    sPgm_c :: Settings -> String
    sPgm_c = toolSettings_pgm_c . sToolSettings
    sPgm_a :: Settings -> (String, [Option])
    sPgm_a = toolSettings_pgm_a . sToolSettings
    sPgm_l :: Settings -> (String, [Option])
    sPgm_l = toolSettings_pgm_l . sToolSettings
    sPgm_lm :: Settings -> (String, [Option])
    sPgm_lm = toolSettings_pgm_lm . sToolSettings
    sPgm_dll :: Settings -> (String, [Option])
    sPgm_dll = toolSettings_pgm_dll . sToolSettings
    sPgm_T :: Settings -> String
    sPgm_T = toolSettings_pgm_T . sToolSettings
    sPgm_windres :: Settings -> String
    sPgm_windres = toolSettings_pgm_windres . sToolSettings
    sPgm_libtool :: Settings -> String
    sPgm_libtool = toolSettings_pgm_libtool . sToolSettings
    sPgm_ar :: Settings -> String
    sPgm_ar = toolSettings_pgm_ar . sToolSettings
    sPgm_ranlib :: Settings -> String
    sPgm_ranlib = toolSettings_pgm_ranlib . sToolSettings
    sPgm_lo :: Settings -> (String, [Option])
    sPgm_lo = toolSettings_pgm_lo . sToolSettings
    sPgm_lc :: Settings -> (String, [Option])
    sPgm_lc = toolSettings_pgm_lc . sToolSettings
    sPgm_lcc :: Settings -> (String, [Option])
    sPgm_lcc = toolSettings_pgm_lcc . sToolSettings
    sPgm_i :: Settings -> String
    sPgm_i = toolSettings_pgm_i . sToolSettings
    sOpt_L :: Settings -> [String]
    sOpt_L = toolSettings_opt_L . sToolSettings
    sOpt_P :: Settings -> [String]
    sOpt_P = toolSettings_opt_P . sToolSettings
    sOpt_P_fingerprint :: Settings -> Fingerprint
    sOpt_P_fingerprint = toolSettings_opt_P_fingerprint . sToolSettings
    sOpt_F :: Settings -> [String]
    sOpt_F = toolSettings_opt_F . sToolSettings
    sOpt_c :: Settings -> [String]
    sOpt_c = toolSettings_opt_c . sToolSettings
    sOpt_cxx :: Settings -> [String]
    sOpt_cxx = toolSettings_opt_cxx . sToolSettings
    sOpt_a :: Settings -> [String]
    sOpt_a = toolSettings_opt_a . sToolSettings
    sOpt_l :: Settings -> [String]
    sOpt_l = toolSettings_opt_l . sToolSettings
    sOpt_lm :: Settings -> [String]
    sOpt_lm = toolSettings_opt_lm . sToolSettings
    sOpt_windres :: Settings -> [String]
    sOpt_windres = toolSettings_opt_windres . sToolSettings
    sOpt_lo :: Settings -> [String]
    sOpt_lo = toolSettings_opt_lo . sToolSettings
    sOpt_lc :: Settings -> [String]
    sOpt_lc = toolSettings_opt_lc . sToolSettings
    sOpt_lcc :: Settings -> [String]
    sOpt_lcc = toolSettings_opt_lcc . sToolSettings
    sOpt_i :: Settings -> [String]
    sOpt_i = toolSettings_opt_i . sToolSettings

    sExtraGccViaCFlags :: Settings -> [String]
    sExtraGccViaCFlags = toolSettings_extraGccViaCFlags . sToolSettings

    sTargetPlatformString :: Settings -> String
    sTargetPlatformString = platformMisc_targetPlatformString . sPlatformMisc
    sIntegerLibrary :: Settings -> String
    sIntegerLibrary = platformMisc_integerLibrary . sPlatformMisc
    sIntegerLibraryType :: Settings -> IntegerLibrary
    sIntegerLibraryType = platformMisc_integerLibraryType . sPlatformMisc
    sGhcWithInterpreter :: Settings -> Bool
    sGhcWithInterpreter = platformMisc_ghcWithInterpreter . sPlatformMisc
    sGhcWithNativeCodeGen :: Settings -> Bool
    sGhcWithNativeCodeGen = platformMisc_ghcWithNativeCodeGen . sPlatformMisc
    sGhcWithSMP :: Settings -> Bool
    sGhcWithSMP = platformMisc_ghcWithSMP . sPlatformMisc
    sGhcRTSWays :: Settings -> String
    sGhcRTSWays = platformMisc_ghcRTSWays . sPlatformMisc
    sTablesNextToCode :: Settings -> Bool
    sTablesNextToCode = platformMisc_tablesNextToCode . sPlatformMisc
    sLeadingUnderscore :: Settings -> Bool
    sLeadingUnderscore = platformMisc_leadingUnderscore . sPlatformMisc
    sLibFFI :: Settings -> Bool
    sLibFFI = platformMisc_libFFI . sPlatformMisc
    sGhcThreaded :: Settings -> Bool
    sGhcThreaded = platformMisc_ghcThreaded . sPlatformMisc
    sGhcDebugged :: Settings -> Bool
    sGhcDebugged = platformMisc_ghcDebugged . sPlatformMisc
    sGhcRtsWithLibdw :: Settings -> Bool
    sGhcRtsWithLibdw = platformMisc_ghcRtsWithLibdw . sPlatformMisc