#include "tools/gn/builder_record.h"
#include "tools/gn/label.h"
#include "tools/gn/label_ptr.h"
+#include "tools/gn/unique_vector.h"
class Config;
class Err;
class Builder : public base::RefCountedThreadSafe<Builder> {
public:
- typedef base::Callback<void(const Item*)> ResolvedCallback;
+ typedef base::Callback<void(const BuilderRecord*)> ResolvedCallback;
Builder(Loader* loader);
virtual ~Builder();
bool TargetDefined(BuilderRecord* record, Err* err);
+ bool ToolchainDefined(BuilderRecord* record, Err* err);
// Returns the record associated with the given label. This function checks
// that if we already have references for it, the type matches. If no record
const LabelConfigVector& configs,
Err* err);
bool AddDeps(BuilderRecord* record,
+ const UniqueVector<LabelConfigPair>& configs,
+ Err* err);
+ bool AddDeps(BuilderRecord* record,
const LabelTargetVector& targets,
Err* err);
bool AddToolchainDep(BuilderRecord* record,
// that everything should be resolved by this point, so will return an error
// if anything isn't found or if the type doesn't match.
bool ResolveDeps(LabelTargetVector* deps, Err* err);
- bool ResolveConfigs(LabelConfigVector* configs, Err* err);
+ bool ResolveConfigs(UniqueVector<LabelConfigPair>* configs, Err* err);
bool ResolveForwardDependentConfigs(Target* target, Err* err);
// Given a list of unresolved records, tries to find any circular