11 Commits

Author SHA1 Message Date
Jack Nagel
1981e78eb2 Eliminate mutation of Dependency objects 2014-02-27 14:22:43 -06:00
Jack Nagel
96df4fe1da Apply cyclic dependency hack unconditionally 2014-02-27 14:22:42 -06:00
Jack Nagel
677c78d77e Pass deps collection to be expanded as a parameter 2013-12-09 14:36:10 -06:00
Jack Nagel
2fb5ead38a Prevent deps of build-time deps from leaking into the build environment
When decided what dependencies should be part of the build environment
(and have appropriate entries added to variables like PKG_CONFIG_PATH),
we select the entire dependency tree except for

 (1) inactive optional and recommended deps (2) indirect build-time deps
 (i.e., build-time deps of other deps)

There is a third category that sould be excluded: dependencies of direct
build-time deps. These are irrelevant to the build, and including them
can cause unexpected linkages.
2013-11-13 10:38:14 -06:00
Jack Nagel
fcfc53df33 Check deps of satisfied deps 2013-07-22 21:36:11 -05:00
Jack Nagel
783f29fccb Uniqify tags when merging dependencies 2013-06-25 10:12:14 -05:00
Jack Nagel
59e6249862 Actually make the assertion we care about 2013-06-24 08:52:41 -05:00
Jack Nagel
6b5e73a2c3 Copy env_proc when merging deps 2013-06-24 08:52:41 -05:00
Jack Nagel
8cb861c695 Merge repeated deps with differing options
When expanding dependencies, repeated deps are treated as equal and all
but the first are discarded when #uniq is called on the resulting array.
However, they may have different sets of options attached, so we cannot
assume they are the same.

After the initial expansion, we group them by name and then create a new
Dependency object for each name, merging the options from each group.

Fixes Homebrew/homebrew#20335.
2013-06-08 12:23:15 -05:00
Jack Nagel
3d66808c0e test_dependency_expansion: dep names should always be strings 2013-06-07 21:54:27 -05:00
Jack Nagel
12f4ccd7f3 Refactor Dependency.expand 2013-05-10 23:45:05 -05:00