-
Edward Z. Yang authored
* toConfiguredComponents and friends are now monadic. This means we can report a user-friendly error when we fail to find a dependency in the dependency map. I had to rejigger a bit of the logic in ProjectPlanning since we were knot-tying through this function, but it all worked out. This means that unbuildable_external_lib_deps is no more. * cc_internal_build_tools is no more; instead it's cc_exe_deps, which tracks ALL dependencies. It also comes with a PackageId so we can build ConfiguredId cabal-install side. This change propagates all the way to 'ReadyComponent' * ProjectPlanning: Instead of recomputing dependencies from scratch, we instead use the ElaboratedConfiguredPackages we just finished making to build the ComponentDeps. * ProjectPlanning now constructs a skeletal setupComponent. This is used to setup the above with correct setup dependencies. In principle this component might also be used for building, but lots of functionality isn't written in yet. * filterExeMapDep is no more; it's all handled by Cabal now. * The ConfiguredComponentMap now handles both libraries and executables in one data structure. This is nice. * compSetupDependencies is no more, because elaborated components never have custom setup. Signed-off-by: Edward Z. Yang <ezyang@cs.stanford.edu>
9752f287