getVerbFlag,
updOptLevel,
setTmpDir,
+ setPackageName,
-- parsing DynFlags
parseDynamicFlags,
allFlags,
-- misc stuff
- machdepCCOpts, picCCOpts,
+ machdepCCOpts, picCCOpts
) where
#include "HsVersions.h"
import Util ( notNull, splitLongestPrefix, normalisePath )
import Maybes ( fromJust, orElse )
import SrcLoc ( SrcSpan )
+import Outputable
+import {-# SOURCE #-} ErrUtils ( Severity(..), Message, mkLocMessage )
-import DATA_IOREF ( readIORef )
-import EXCEPTION ( throwDyn )
-import Monad ( when )
+import Data.IORef ( readIORef )
+import Control.Exception ( throwDyn )
+import Control.Monad ( when )
#ifdef mingw32_TARGET_OS
import Data.List ( isPrefixOf )
#else
import Util ( split )
#endif
-import Char ( isDigit, isUpper )
-import Outputable
+import Data.Char ( isDigit, isUpper )
import System.IO ( hPutStrLn, stderr )
-import {-# SOURCE #-} ErrUtils ( Severity(..), Message, mkLocMessage )
-- -----------------------------------------------------------------------------
-- DynFlags
| Opt_StgStats
| Opt_HideAllPackages
| Opt_PrintBindResult
+ | Opt_Haddock
-- keeping stuff
| Opt_KeepHiDiffs
, ( "F" , NoArg (setDynFlag Opt_Pp))
, ( "#include" , HasArg (addCmdlineHCInclude) )
, ( "v" , OptIntSuffix setVerbosity )
-
------- Specific phases --------------------------------------------
, ( "pgmL" , HasArg (upd . setPgmL) )
, ( "pgmP" , HasArg (upd . setPgmP) )
------- Miscellaneous ----------------------------------------------
, ( "no-hs-main" , NoArg (setDynFlag Opt_NoHsMain))
, ( "main-is" , SepArg setMainIs )
+ , ( "haddock" , NoArg (setDynFlag Opt_Haddock) )
------- recompilation checker (DEPRECATED, use -fforce-recomp) -----
, ( "recomp" , NoArg (unSetDynFlag Opt_ForceRecomp) )
------- Packages ----------------------------------------------------
, ( "package-conf" , HasArg extraPkgConf_ )
, ( "no-user-package-conf", NoArg (unSetDynFlag Opt_ReadUserPackageConf) )
- , ( "package-name" , HasArg setPackageName )
+ , ( "package-name" , HasArg (upd . setPackageName) )
, ( "package" , HasArg exposePackage )
, ( "hide-package" , HasArg hidePackage )
, ( "hide-all-packages", NoArg (setDynFlag Opt_HideAllPackages) )
upd (\s -> s{ packageFlags = HidePackage p : packageFlags s })
ignorePackage p =
upd (\s -> s{ packageFlags = IgnorePackage p : packageFlags s })
+
setPackageName p
| Nothing <- unpackPackageId pid
= throwDyn (CmdLineError ("cannot parse \'" ++ p ++ "\' as a package identifier"))
| otherwise
- = upd (\s -> s{ thisPackage = pid })
+ = \s -> s{ thisPackage = pid }
where
pid = stringToPackageId p