Skip to content

Commit 7e1b0fb

Browse files
committed
--skip-ghc-check commercialhaskell#423
1 parent 80b9df2 commit 7e1b0fb

5 files changed

Lines changed: 22 additions & 2 deletions

File tree

ChangeLog.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515
* Add the `stack dot` command
1616
* `stack upgrade` added [#237](https://github.com/commercialhaskell/stack/issues/237)
1717
* `--stack-yaml` command line flag [#378](https://github.com/commercialhaskell/stack/issues/378)
18+
* `--skip-ghc-check` command line flag [#423](https://github.com/commercialhaskell/stack/issues/423)
1819

1920
Bug fixes:
2021

src/Stack/Config.hs

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -115,6 +115,7 @@ configFromConfigMonoid configStackRoot mproject configMonoid@ConfigMonoid{..} =
115115

116116
configSystemGHC = fromMaybe True configMonoidSystemGHC
117117
configInstallGHC = fromMaybe False configMonoidInstallGHC
118+
configSkipGHCCheck = fromMaybe False configMonoidSkipGHCCheck
118119

119120
configExtraIncludeDirs = configMonoidExtraIncludeDirs
120121
configExtraLibDirs = configMonoidExtraLibDirs
@@ -158,10 +159,11 @@ configFromConfigMonoid configStackRoot mproject configMonoid@ConfigMonoid{..} =
158159
-- | Command-line arguments parser for configuration.
159160
configOptsParser :: Bool -> Parser ConfigMonoid
160161
configOptsParser docker =
161-
(\opts systemGHC installGHC arch os jobs includes libs -> mempty
162+
(\opts systemGHC installGHC arch os jobs includes libs skipGHCCheck -> mempty
162163
{ configMonoidDockerOpts = opts
163164
, configMonoidSystemGHC = systemGHC
164165
, configMonoidInstallGHC = installGHC
166+
, configMonoidSkipGHCCheck = skipGHCCheck
165167
, configMonoidArch = arch
166168
, configMonoidOS = os
167169
, configMonoidJobs = jobs
@@ -203,6 +205,10 @@ configOptsParser docker =
203205
<> metavar "DIR"
204206
<> help "Extra directories to check for libraries"
205207
))
208+
<*> maybeBoolFlags
209+
"skip-ghc-check"
210+
"skipping the GHC version and architecture check"
211+
idm
206212

207213
-- | Get the directory on Windows where we should install extra programs. For
208214
-- more information, see discussion at:

src/Stack/Setup.hs

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -73,6 +73,8 @@ data SetupOpts = SetupOpts
7373
, soptsForceReinstall :: !Bool
7474
, soptsSanityCheck :: !Bool
7575
-- ^ Run a sanity check on the selected GHC
76+
, soptsSkipGhcCheck :: !Bool
77+
-- ^ Don't check for a compatible GHC version/architecture
7678
}
7779
deriving Show
7880
data SetupException = UnsupportedSetupCombo OS Arch
@@ -122,6 +124,7 @@ setupEnv = do
122124
, soptsStackYaml = Just $ bcStackYaml bconfig
123125
, soptsForceReinstall = False
124126
, soptsSanityCheck = False
127+
, soptsSkipGhcCheck = configSkipGHCCheck $ bcConfig bconfig
125128
}
126129
mghcBin <- ensureGHC sopts
127130
menv0 <- getMinimalEnvOverride
@@ -245,6 +248,7 @@ ensureGHC sopts = do
245248

246249
let needLocal = case msystem of
247250
Nothing -> True
251+
Just _ | soptsSkipGhcCheck sopts -> False
248252
Just (system, arch) ->
249253
-- we allow a newer version of GHC within the same major series
250254
getMajorVersion system /= getMajorVersion expected ||

src/Stack/Types/Config.hs

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -85,6 +85,8 @@ data Config =
8585
,configInstallGHC :: !Bool
8686
-- ^ Should we automatically install GHC if missing or the wrong
8787
-- version is available? Can be overridden by command line options.
88+
,configSkipGHCCheck :: !Bool
89+
-- ^ Don't bother checking the GHC version or architecture.
8890
,configLocalBin :: !(Path Abs Dir)
8991
-- ^ Directory we should install executables into
9092
,configRequireStackVersion :: !VersionRange
@@ -412,6 +414,8 @@ data ConfigMonoid =
412414
-- ^ See: 'configSystemGHC'
413415
,configMonoidInstallGHC :: !(Maybe Bool)
414416
-- ^ See: 'configInstallGHC'
417+
,configMonoidSkipGHCCheck :: !(Maybe Bool)
418+
-- ^ See: 'configSkipGHCCheck'
415419
,configMonoidRequireStackVersion :: !VersionRange
416420
-- ^ See: 'configRequireStackVersion'
417421
,configMonoidOS :: !(Maybe String)
@@ -436,6 +440,7 @@ instance Monoid ConfigMonoid where
436440
, configMonoidPackageIndices = Nothing
437441
, configMonoidSystemGHC = Nothing
438442
, configMonoidInstallGHC = Nothing
443+
, configMonoidSkipGHCCheck = Nothing
439444
, configMonoidRequireStackVersion = anyVersion
440445
, configMonoidOS = Nothing
441446
, configMonoidArch = Nothing
@@ -449,7 +454,9 @@ instance Monoid ConfigMonoid where
449454
, configMonoidHideTHLoading = configMonoidHideTHLoading l <|> configMonoidHideTHLoading r
450455
, configMonoidLatestSnapshotUrl = configMonoidLatestSnapshotUrl l <|> configMonoidLatestSnapshotUrl r
451456
, configMonoidPackageIndices = configMonoidPackageIndices l <|> configMonoidPackageIndices r
452-
, configMonoidSystemGHC = configMonoidSystemGHC l <|> configMonoidSystemGHC r , configMonoidInstallGHC = configMonoidInstallGHC l <|> configMonoidInstallGHC r
457+
, configMonoidSystemGHC = configMonoidSystemGHC l <|> configMonoidSystemGHC r
458+
, configMonoidInstallGHC = configMonoidInstallGHC l <|> configMonoidInstallGHC r
459+
, configMonoidSkipGHCCheck = configMonoidSkipGHCCheck l <|> configMonoidSkipGHCCheck r
453460
, configMonoidRequireStackVersion = intersectVersionRanges (configMonoidRequireStackVersion l)
454461
(configMonoidRequireStackVersion r)
455462
, configMonoidOS = configMonoidOS l <|> configMonoidOS r
@@ -470,6 +477,7 @@ instance FromJSON ConfigMonoid where
470477
configMonoidPackageIndices <- obj .:? "package-indices"
471478
configMonoidSystemGHC <- obj .:? "system-ghc"
472479
configMonoidInstallGHC <- obj .:? "install-ghc"
480+
configMonoidSkipGHCCheck <- obj .:? "skip-ghc-check"
473481
configMonoidRequireStackVersion <- unVersionRangeJSON <$>
474482
obj .:? "require-stack-version"
475483
.!= VersionRangeJSON anyVersion

src/main/Main.hs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -425,6 +425,7 @@ setupCmd SetupCmdOpts{..} go@GlobalOpts{..} = do
425425
, soptsStackYaml = mstack
426426
, soptsForceReinstall = scoForceReinstall
427427
, soptsSanityCheck = True
428+
, soptsSkipGhcCheck = False
428429
}
429430
case mpaths of
430431
Nothing -> $logInfo "GHC on PATH would be used"

0 commit comments

Comments
 (0)