diff options
Diffstat (limited to 'compiler/main/Settings.hs')
-rw-r--r-- | compiler/main/Settings.hs | 203 |
1 files changed, 203 insertions, 0 deletions
diff --git a/compiler/main/Settings.hs b/compiler/main/Settings.hs new file mode 100644 index 0000000000..5a5f5ca3c9 --- /dev/null +++ b/compiler/main/Settings.hs @@ -0,0 +1,203 @@ +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_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_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 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, [Option]) +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_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_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 |