Skip to content
GitLab
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in / Register
Toggle navigation
Menu
Open sidebar
Glasgow Haskell Compiler
Packages
Cabal
Commits
c5a8b0b3
Commit
c5a8b0b3
authored
Jan 26, 2009
by
Duncan Coutts
Browse files
Change the install and configure modules to use the extended config flags
parent
04f10838
Changes
3
Hide whitespace changes
Inline
Side-by-side
cabal-install/Distribution/Client/Configure.hs
View file @
c5a8b0b3
...
...
@@ -29,7 +29,7 @@ import Distribution.Client.InstallPlan (InstallPlan)
import
Distribution.Client.IndexUtils
as
IndexUtils
(
getAvailablePackages
)
import
Distribution.Client.Setup
(
Install
Flags
(
..
),
configureCommand
,
filterConfigureFlags
)
(
ConfigEx
Flags
(
..
),
configureCommand
,
filterConfigureFlags
)
import
Distribution.Client.Types
as
Available
(
AvailablePackage
(
..
),
AvailablePackageSource
(
..
),
Repo
(
..
)
,
AvailablePackageDb
(
..
),
ConfiguredPackage
(
..
)
)
...
...
@@ -74,14 +74,16 @@ configure :: Verbosity
->
Compiler
->
ProgramConfiguration
->
ConfigFlags
->
Install
Flags
->
ConfigEx
Flags
->
[
String
]
->
IO
()
configure
verbosity
packageDB
repos
comp
conf
configFlags
installFlags
extraArgs
=
do
configure
verbosity
packageDB
repos
comp
conf
configFlags
configExFlags
extraArgs
=
do
installed
<-
getInstalledPackages
verbosity
comp
packageDB
conf
available
<-
getAvailablePackages
verbosity
repos
progress
<-
planLocalPackage
verbosity
comp
configFlags
install
Flags
progress
<-
planLocalPackage
verbosity
comp
configFlags
configEx
Flags
installed
available
notice
verbosity
"Resolving dependencies..."
...
...
@@ -107,7 +109,7 @@ configure verbosity packageDB repos comp conf configFlags installFlags extraArgs
where
setupScriptOptions
index
=
SetupScriptOptions
{
useCabalVersion
=
maybe
AnyVersion
ThisVersion
(
flagToMaybe
(
install
CabalVersion
install
Flags
)),
(
flagToMaybe
(
config
CabalVersion
configEx
Flags
)),
useCompiler
=
Just
comp
,
-- Hack: we typically want to allow the UserPackageDB for finding the
-- Cabal lib when compiling any Setup.hs even if we're doing a global
...
...
@@ -130,11 +132,11 @@ configure verbosity packageDB repos comp conf configFlags installFlags extraArgs
-- and all its dependencies.
--
planLocalPackage
::
Verbosity
->
Compiler
->
ConfigFlags
->
Install
Flags
->
ConfigFlags
->
ConfigEx
Flags
->
Maybe
(
PackageIndex
InstalledPackageInfo
)
->
AvailablePackageDb
->
IO
(
Progress
String
String
InstallPlan
)
planLocalPackage
verbosity
comp
configFlags
install
Flags
installed
planLocalPackage
verbosity
comp
configFlags
configEx
Flags
installed
(
AvailablePackageDb
_
availablePrefs
)
=
do
pkg
<-
readPackageDescription
verbosity
=<<
defaultPackageDesc
verbosity
let
-- The trick is, we add the local package to the available index and
...
...
@@ -156,7 +158,7 @@ planLocalPackage verbosity comp configFlags installFlags installed
++
[
PackageVersionConstraint
name
ver
|
Dependency
name
ver
<-
configConstraints
configFlags
]
preferences
=
mergePackagePrefs
PreferLatestForSelected
availablePrefs
install
Flags
availablePrefs
configEx
Flags
return
$
resolveDependenciesWithProgress
buildPlatform
(
compilerId
comp
)
installed'
available'
preferences
constraints
targets
...
...
@@ -164,16 +166,16 @@ planLocalPackage verbosity comp configFlags installFlags installed
mergePackagePrefs
::
PackagesPreferenceDefault
->
Map
.
Map
PackageName
VersionRange
->
Install
Flags
->
ConfigEx
Flags
->
PackagesPreference
mergePackagePrefs
defaultPref
availablePrefs
install
Flags
=
mergePackagePrefs
defaultPref
availablePrefs
configEx
Flags
=
PackagesPreference
defaultPref
$
-- The preferences that come from the hackage index
[
PackageVersionPreference
name
ver
|
(
name
,
ver
)
<-
Map
.
toList
availablePrefs
]
-- additional preferences from the config file or command line
++
[
PackageVersionPreference
name
ver
|
Dependency
name
ver
<-
install
Preferences
install
Flags
]
|
Dependency
name
ver
<-
config
Preferences
configEx
Flags
]
-- | Call an installer for an 'AvailablePackage' but override the configure
-- flags with the ones given by the 'ConfiguredPackage'. In particular the
...
...
cabal-install/Distribution/Client/Install.hs
View file @
c5a8b0b3
...
...
@@ -48,7 +48,7 @@ import qualified Distribution.Client.InstallPlan as InstallPlan
import
Distribution.Client.InstallPlan
(
InstallPlan
)
import
Distribution.Client.Setup
(
ConfigFlags
(
..
),
configureCommand
,
filterConfigureFlags
,
InstallFlags
(
..
)
)
,
ConfigExFlags
(
..
),
InstallFlags
(
..
)
)
import
Distribution.Client.Config
(
defaultLogsDir
,
defaultCabalDir
)
import
Distribution.Client.Tar
(
extractTarGzFile
)
...
...
@@ -126,27 +126,35 @@ install, upgrade
->
Compiler
->
ProgramConfiguration
->
ConfigFlags
->
ConfigExFlags
->
InstallFlags
->
[
UnresolvedDependency
]
->
IO
()
install
verbosity
packageDB
repos
comp
conf
configFlags
installFlags
deps
=
install
verbosity
packageDB
repos
comp
conf
configFlags
configExFlags
installFlags
deps
=
installWithPlanner
planner
verbosity
packageDB
repos
comp
conf
configFlags
installFlags
verbosity
packageDB
repos
comp
conf
configFlags
configExFlags
installFlags
where
planner
::
Planner
planner
|
null
deps
=
planLocalPackage
verbosity
comp
configFlags
install
Flags
comp
configFlags
configEx
Flags
|
otherwise
=
planRepoPackages
PreferLatestForSelected
comp
configFlags
installFlags
deps
comp
configFlags
configExFlags
installFlags
deps
upgrade
verbosity
packageDB
repos
comp
conf
configFlags
configExFlags
installFlags
deps
=
upgrade
verbosity
packageDB
repos
comp
conf
configFlags
installFlags
deps
=
installWithPlanner
planner
verbosity
packageDB
repos
comp
conf
configFlags
installFlags
verbosity
packageDB
repos
comp
conf
configFlags
configExFlags
installFlags
where
planner
::
Planner
planner
|
null
deps
=
planUpgradePackages
comp
configFlags
installFlags
planner
|
null
deps
=
planUpgradePackages
comp
configFlags
configExFlags
|
otherwise
=
planRepoPackages
PreferAllLatest
comp
configFlags
installFlags
deps
comp
configFlags
configExFlags
installFlags
deps
type
Planner
=
Maybe
(
PackageIndex
InstalledPackageInfo
)
->
AvailablePackageDb
...
...
@@ -161,9 +169,12 @@ installWithPlanner ::
->
Compiler
->
ProgramConfiguration
->
ConfigFlags
->
ConfigExFlags
->
InstallFlags
->
IO
()
installWithPlanner
planner
verbosity
packageDB
repos
comp
conf
configFlags
installFlags
=
do
installWithPlanner
planner
verbosity
packageDB
repos
comp
conf
configFlags
configExFlags
installFlags
=
do
installed
<-
getInstalledPackages
verbosity
comp
packageDB
conf
available
<-
getAvailablePackages
verbosity
repos
...
...
@@ -243,7 +254,7 @@ installWithPlanner planner verbosity packageDB repos comp conf configFlags insta
rootCmd
=
if
fromFlag
(
configUserInstall
configFlags
)
then
Nothing
-- ignore --root-cmd if --user.
else
flagToMaybe
(
installRootCmd
installFlags
),
libVersion
=
flagToMaybe
(
install
CabalVersion
install
Flags
)
libVersion
=
flagToMaybe
(
config
CabalVersion
configEx
Flags
)
}
storeDetailedBuildReports
::
Verbosity
->
FilePath
...
...
@@ -282,8 +293,8 @@ storeDetailedBuildReports verbosity logsDir reports = sequence_
-- and all its dependencies.
--
planLocalPackage
::
Verbosity
->
Compiler
->
ConfigFlags
->
Install
Flags
->
Planner
planLocalPackage
verbosity
comp
configFlags
install
Flags
installed
->
ConfigFlags
->
ConfigEx
Flags
->
Planner
planLocalPackage
verbosity
comp
configFlags
configEx
Flags
installed
(
AvailablePackageDb
available
availablePrefs
)
=
do
pkg
<-
readPackageDescription
verbosity
=<<
defaultPackageDesc
verbosity
let
-- The trick is, we add the local package to the available index and
...
...
@@ -305,7 +316,7 @@ planLocalPackage verbosity comp configFlags installFlags installed
++
[
PackageVersionConstraint
name
ver
|
Dependency
name
ver
<-
configConstraints
configFlags
]
preferences
=
mergePackagePrefs
PreferLatestForSelected
availablePrefs
install
Flags
availablePrefs
configEx
Flags
return
$
resolveDependenciesWithProgress
buildPlatform
(
compilerId
comp
)
installed'
available'
preferences
constraints
targets
...
...
@@ -313,10 +324,11 @@ planLocalPackage verbosity comp configFlags installFlags installed
-- | Make an 'InstallPlan' for the given dependencies.
--
planRepoPackages
::
PackagesPreferenceDefault
->
Compiler
->
ConfigFlags
->
InstallFlags
->
ConfigFlags
->
ConfigExFlags
->
InstallFlags
->
[
UnresolvedDependency
]
->
Planner
planRepoPackages
defaultPref
comp
configFlags
installFlags
deps
installed
(
AvailablePackageDb
available
availablePrefs
)
=
do
planRepoPackages
defaultPref
comp
configFlags
configExFlags
installFlags
deps
installed
(
AvailablePackageDb
available
availablePrefs
)
=
do
deps'
<-
IndexUtils
.
disambiguateDependencies
available
deps
let
installed'
|
fromFlagOrDefault
False
(
installReinstall
installFlags
)
...
...
@@ -326,7 +338,7 @@ planRepoPackages defaultPref comp configFlags installFlags deps installed
constraints
=
dependencyConstraints
deps'
++
[
PackageVersionConstraint
name
ver
|
Dependency
name
ver
<-
configConstraints
configFlags
]
preferences
=
mergePackagePrefs
defaultPref
availablePrefs
install
Flags
preferences
=
mergePackagePrefs
defaultPref
availablePrefs
configEx
Flags
return
$
resolveDependenciesWithProgress
buildPlatform
(
compilerId
comp
)
installed'
available
preferences
constraints
targets
where
...
...
@@ -334,14 +346,14 @@ planRepoPackages defaultPref comp configFlags installFlags deps installed
foldr
PackageIndex
.
deletePackageName
index
[
name
|
UnresolvedDependency
(
Dependency
name
_
)
_
<-
pkgs
]
planUpgradePackages
::
Compiler
->
ConfigFlags
->
Install
Flags
->
Planner
planUpgradePackages
comp
configFlags
install
Flags
(
Just
installed
)
planUpgradePackages
::
Compiler
->
ConfigFlags
->
ConfigEx
Flags
->
Planner
planUpgradePackages
comp
configFlags
configEx
Flags
(
Just
installed
)
(
AvailablePackageDb
available
availablePrefs
)
=
return
$
resolveDependenciesWithProgress
buildPlatform
(
compilerId
comp
)
(
Just
installed
)
available
preferences
constraints
targets
where
deps
=
upgradableDependencies
installed
available
preferences
=
mergePackagePrefs
PreferAllLatest
availablePrefs
install
Flags
preferences
=
mergePackagePrefs
PreferAllLatest
availablePrefs
configEx
Flags
constraints
=
[
PackageVersionConstraint
name
ver
|
Dependency
name
ver
<-
deps
]
++
[
PackageVersionConstraint
name
ver
...
...
@@ -355,16 +367,16 @@ planUpgradePackages comp _ _ _ _ =
mergePackagePrefs
::
PackagesPreferenceDefault
->
Map
.
Map
PackageName
VersionRange
->
Install
Flags
->
ConfigEx
Flags
->
PackagesPreference
mergePackagePrefs
defaultPref
availablePrefs
install
Flags
=
mergePackagePrefs
defaultPref
availablePrefs
configEx
Flags
=
PackagesPreference
defaultPref
$
-- The preferences that come from the hackage index
[
PackageVersionPreference
name
ver
|
(
name
,
ver
)
<-
Map
.
toList
availablePrefs
]
-- additional preferences from the config file or command line
++
[
PackageVersionPreference
name
ver
|
Dependency
name
ver
<-
install
Preferences
install
Flags
]
|
Dependency
name
ver
<-
config
Preferences
configEx
Flags
]
printDryRun
::
Verbosity
->
Maybe
(
PackageIndex
InstalledPackageInfo
)
->
InstallPlan
->
IO
()
...
...
cabal-install/Main.hs
View file @
c5a8b0b3
...
...
@@ -168,13 +168,13 @@ configureAction (configFlags, configExFlags) extraArgs globalFlags = do
let
verbosity
=
fromFlagOrDefault
normal
(
configVerbosity
configFlags
)
config
<-
loadConfig
verbosity
(
globalConfigFile
globalFlags
)
(
configUserInstall
configFlags
)
let
configFlags'
=
savedConfigureFlags
config
`
mappend
`
configFlags
install
Flags'
=
saved
Install
Flags
config
--TODO:
`mappend`
install
Flags
globalFlags'
=
savedGlobalFlags
config
`
mappend
`
globalFlags
let
configFlags'
=
savedConfigureFlags
config
`
mappend
`
configFlags
configEx
Flags'
=
saved
ConfigureEx
Flags
config
`
mappend
`
configEx
Flags
globalFlags'
=
savedGlobalFlags
config
`
mappend
`
globalFlags
(
comp
,
conf
)
<-
configCompilerAux
configFlags'
configure
verbosity
(
configPackageDB'
configFlags'
)
(
globalRepos
globalFlags'
)
comp
conf
configFlags'
install
Flags'
extraArgs
comp
conf
configFlags'
configEx
Flags'
extraArgs
installAction
::
(
ConfigFlags
,
ConfigExFlags
,
InstallFlags
)
->
[
String
]
->
GlobalFlags
->
IO
()
...
...
@@ -190,13 +190,14 @@ installAction (configFlags, configExFlags, installFlags)
let
verbosity
=
fromFlagOrDefault
normal
(
configVerbosity
configFlags
)
config
<-
loadConfig
verbosity
(
globalConfigFile
globalFlags
)
(
configUserInstall
configFlags
)
let
configFlags'
=
savedConfigureFlags
config
`
mappend
`
configFlags
installFlags'
=
savedInstallFlags
config
`
mappend
`
installFlags
globalFlags'
=
savedGlobalFlags
config
`
mappend
`
globalFlags
let
configFlags'
=
savedConfigureFlags
config
`
mappend
`
configFlags
configExFlags'
=
savedConfigureExFlags
config
`
mappend
`
configExFlags
installFlags'
=
savedInstallFlags
config
`
mappend
`
installFlags
globalFlags'
=
savedGlobalFlags
config
`
mappend
`
globalFlags
(
comp
,
conf
)
<-
configCompilerAux
configFlags'
install
verbosity
(
configPackageDB'
configFlags'
)
(
globalRepos
globalFlags'
)
comp
conf
configFlags'
installFlags'
comp
conf
configFlags'
configExFlags'
installFlags'
[
UnresolvedDependency
pkg
(
configConfigurationsFlags
configFlags'
)
|
pkg
<-
pkgs
]
...
...
@@ -248,13 +249,14 @@ upgradeAction (configFlags, configExFlags, installFlags)
let
verbosity
=
fromFlagOrDefault
normal
(
configVerbosity
configFlags
)
config
<-
loadConfig
verbosity
(
globalConfigFile
globalFlags
)
(
configUserInstall
configFlags
)
let
configFlags'
=
savedConfigureFlags
config
`
mappend
`
configFlags
installFlags'
=
savedInstallFlags
config
`
mappend
`
installFlags
globalFlags'
=
savedGlobalFlags
config
`
mappend
`
globalFlags
let
configFlags'
=
savedConfigureFlags
config
`
mappend
`
configFlags
configExFlags'
=
savedConfigureExFlags
config
`
mappend
`
configExFlags
installFlags'
=
savedInstallFlags
config
`
mappend
`
installFlags
globalFlags'
=
savedGlobalFlags
config
`
mappend
`
globalFlags
(
comp
,
conf
)
<-
configCompilerAux
configFlags'
upgrade
verbosity
(
configPackageDB'
configFlags'
)
(
globalRepos
globalFlags'
)
comp
conf
configFlags'
installFlags'
comp
conf
configFlags'
configExFlags'
installFlags'
[
UnresolvedDependency
pkg
(
configConfigurationsFlags
configFlags'
)
|
pkg
<-
pkgs
]
...
...
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment