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
62526dd6
Commit
62526dd6
authored
Oct 18, 2016
by
Edward Z. Yang
Browse files
Revert "Add support for build --assume-deps-up-to-date flag, partial fix to #2775 (#3287)"
This reverts commit
85a76c9d
.
parent
e79122c2
Changes
8
Hide whitespace changes
Inline
Side-by-side
Cabal/Cabal.cabal
View file @
62526dd6
...
...
@@ -107,7 +107,6 @@ extra-source-files:
tests/PackageTests/BenchmarkOptions/BenchmarkOptions.cabal
tests/PackageTests/BenchmarkOptions/test-BenchmarkOptions.hs
tests/PackageTests/BenchmarkStanza/my.cabal
tests/PackageTests/BuildAssumeDepsUpToDate/BuildAssumeDepsUpToDate.cabal
tests/PackageTests/BuildDeps/GlobalBuildDepsNotAdditive1/GlobalBuildDepsNotAdditive1.cabal
tests/PackageTests/BuildDeps/GlobalBuildDepsNotAdditive1/MyLibrary.hs
tests/PackageTests/BuildDeps/GlobalBuildDepsNotAdditive2/GlobalBuildDepsNotAdditive2.cabal
...
...
Cabal/Distribution/Simple/Build.hs
View file @
62526dd6
...
...
@@ -81,35 +81,7 @@ build :: PackageDescription -- ^ Mostly information from the .cabal file
->
BuildFlags
-- ^ Flags that the user passed to build
->
[
PPSuffixHandler
]
-- ^ preprocessors to run before compiling
->
IO
()
build
pkg_descr
lbi
flags
suffixes
|
fromFlag
(
buildAssumeDepsUpToDate
flags
)
=
do
-- TODO: if checkBuildTargets ignores a target we may accept
-- a --assume-deps-up-to-date with multiple arguments. Arguably, we should
-- error early in this case.
target
<-
readTargetInfos
verbosity
pkg_descr
lbi
(
buildArgs
flags
)
>>=
\
r
->
case
r
of
[]
->
die
"In --assume-deps-up-to-date mode you must specify a target"
[
target
]
->
return
target
_
->
die
"In --assume-deps-up-to-date mode you can only build a single target"
-- NB: do NOT 'createInternalPackageDB'; we don't want to delete it.
-- But this means we have to be careful about unregistering
-- ourselves.
let
dbPath
=
internalPackageDBPath
lbi
distPref
internalPackageDB
=
SpecificPackageDB
dbPath
clbi
=
targetCLBI
target
comp
=
targetComponent
target
-- TODO: do we need to unregister libraries? In any case, this would
-- need to be done in the buildLib functionality.
-- Do the build
initialBuildSteps
distPref
pkg_descr
lbi
clbi
verbosity
let
bi
=
componentBuildInfo
comp
progs'
=
addInternalBuildTools
pkg_descr
lbi
bi
(
withPrograms
lbi
)
lbi'
=
lbi
{
withPrograms
=
progs'
,
withPackageDB
=
withPackageDB
lbi
++
[
internalPackageDB
]
}
buildComponent
verbosity
(
buildNumJobs
flags
)
pkg_descr
lbi'
suffixes
comp
clbi
distPref
|
otherwise
=
do
build
pkg_descr
lbi
flags
suffixes
=
do
targets
<-
readTargetInfos
verbosity
pkg_descr
lbi
(
buildArgs
flags
)
let
componentsToBuild
=
neededTargetsInBuildOrder'
pkg_descr
lbi
(
map
nodeKey
targets
)
info
verbosity
$
"Component build order: "
...
...
Cabal/Distribution/Simple/Setup.hs
View file @
62526dd6
...
...
@@ -1598,9 +1598,6 @@ data BuildFlags = BuildFlags {
buildDistPref
::
Flag
FilePath
,
buildVerbosity
::
Flag
Verbosity
,
buildNumJobs
::
Flag
(
Maybe
Int
),
-- | If this is true, we don't build the dependencies of
-- 'buildArgs': only the directly referenced components.
buildAssumeDepsUpToDate
::
Flag
Bool
,
-- TODO: this one should not be here, it's just that the silly
-- UserHooks stop us from passing extra info in other ways
buildArgs
::
[
String
]
...
...
@@ -1618,7 +1615,6 @@ defaultBuildFlags = BuildFlags {
buildDistPref
=
mempty
,
buildVerbosity
=
Flag
normal
,
buildNumJobs
=
mempty
,
buildAssumeDepsUpToDate
=
Flag
False
,
buildArgs
=
[]
}
...
...
@@ -1666,11 +1662,6 @@ buildOptions :: ProgramDb -> ShowOrParseArgs
buildOptions
progDb
showOrParseArgs
=
[
optionNumJobs
buildNumJobs
(
\
v
flags
->
flags
{
buildNumJobs
=
v
})
,
option
""
[
"assume-deps-up-to-date"
]
"One-shot build"
buildAssumeDepsUpToDate
(
\
c
flags
->
flags
{
buildAssumeDepsUpToDate
=
c
})
trueArg
]
++
programDbPaths
progDb
showOrParseArgs
...
...
Cabal/tests/PackageTests/BuildAssumeDepsUpToDate/.gitignore
deleted
100644 → 0
View file @
e79122c2
*.hs
Cabal/tests/PackageTests/BuildAssumeDepsUpToDate/BuildAssumeDepsUpToDate.cabal
deleted
100644 → 0
View file @
e79122c2
-- Initial BuildAssumeDepsUpToDate.cabal generated by cabal init. For further
-- documentation, see http://haskell.org/cabal/users-guide/
name: BuildAssumeDepsUpToDate
version: 0.1.0.0
license: BSD3
author: Edward Z. Yang
maintainer: ezyang@cs.stanford.edu
build-type: Simple
cabal-version: >=1.10
library
exposed-modules: A
build-depends: base
default-language: Haskell2010
executable myprog
main-is: Main.hs
hs-source-dirs: myprog
build-depends: BuildAssumeDepsUpToDate, base
default-language: Haskell2010
Cabal/tests/PackageTests/BuildAssumeDepsUpToDate/myprog/.gitignore
deleted
100644 → 0
View file @
e79122c2
*.hs
Cabal/tests/PackageTests/Tests.hs
View file @
62526dd6
...
...
@@ -526,24 +526,6 @@ tests config = do
tc
"Regression/T3847"
$
do
cabal
"configure"
[
"--disable-tests"
]
-- Test build --assume-deps-up-to-date
mtc
"BuildAssumeDepsUpToDate"
$
\
step
->
do
step
"Initial build"
pkg_dir
<-
packageDir
liftIO
$
writeFile
(
pkg_dir
</>
"A.hs"
)
"module A where
\n
a =
\"
a1
\"
"
liftIO
$
writeFile
(
pkg_dir
</>
"myprog/Main.hs"
)
"import A
\n
main = print (a ++
\"
b1
\"
)"
cabal_build
[]
runExe'
"myprog"
[]
>>=
assertOutputContains
"a1 b1"
step
"Rebuild executable only"
ghcFileModDelay
liftIO
$
writeFile
(
pkg_dir
</>
"A.hs"
)
"module A where
\n
a =
\"
a2
\"
"
liftIO
$
writeFile
(
pkg_dir
</>
"myprog/Main.hs"
)
"import A
\n
main = print (a ++
\"
b2
\"
)"
cabal
"build"
[
"--assume-deps-up-to-date"
,
"myprog"
]
runExe'
"myprog"
[]
>>=
assertOutputContains
"a1 b2"
-- Test error message we report when a non-buildable target is
-- requested to be built
-- TODO: We can give a better error message here, see #3858.
...
...
cabal-install/Distribution/Client/ProjectPlanning.hs
View file @
62526dd6
...
...
@@ -2659,7 +2659,6 @@ setupHsBuildFlags _ _ verbosity builddir =
buildProgramArgs
=
mempty
,
--unused, set at configure time
buildVerbosity
=
toFlag
verbosity
,
buildDistPref
=
toFlag
builddir
,
buildAssumeDepsUpToDate
=
toFlag
False
,
buildNumJobs
=
mempty
,
--TODO: [nice to have] sometimes want to use toFlag (Just numBuildJobs),
buildArgs
=
mempty
-- unused, passed via args not flags
}
...
...
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