Index: tools/gn/xcode_object.h |
diff --git a/tools/gn/xcode_object.h b/tools/gn/xcode_object.h |
index a6ab32ad8e06cb432c42631d34f6d16b8679d722..c695dbbeaad39f3d0f53d1387e3d49fe943270f3 100644 |
--- a/tools/gn/xcode_object.h |
+++ b/tools/gn/xcode_object.h |
@@ -33,6 +33,7 @@ enum PBXObjectClass { |
// Those values needs to stay sorted in alphabetic order. |
PBXAggregateTargetClass, |
PBXBuildFileClass, |
+ PBXContainerItemProxyClass, |
PBXFileReferenceClass, |
PBXFrameworksBuildPhaseClass, |
PBXGroupClass, |
@@ -40,6 +41,7 @@ enum PBXObjectClass { |
PBXProjectClass, |
PBXShellScriptBuildPhaseClass, |
PBXSourcesBuildPhaseClass, |
+ PBXTargetDependencyClass, |
XCBuildConfigurationClass, |
XCConfigurationListClass, |
}; |
@@ -50,8 +52,9 @@ const char* ToString(PBXObjectClass cls); |
class PBXAggregateTarget; |
class PBXBuildFile; |
-class PBXFileReference; |
class PBXBuildPhase; |
+class PBXContainerItemProxy; |
+class PBXFileReference; |
class PBXFrameworksBuildPhase; |
class PBXGroup; |
class PBXNativeTarget; |
@@ -60,6 +63,7 @@ class PBXProject; |
class PBXShellScriptBuildPhase; |
class PBXSourcesBuildPhase; |
class PBXTarget; |
+class PBXTargetDependency; |
class XCBuildConfiguration; |
class XCConfigurationList; |
@@ -122,13 +126,16 @@ class PBXTarget : public PBXObject { |
const PBXAttributes& attributes); |
~PBXTarget() override; |
- // PXBObject implementation. |
+ void AddDependency(std::unique_ptr<PBXTargetDependency> dependency); |
+ |
+ // PBXObject implementation. |
std::string Name() const override; |
void Visit(PBXObjectVisitor& visitor) override; |
protected: |
std::unique_ptr<XCConfigurationList> configurations_; |
std::vector<std::unique_ptr<PBXBuildPhase>> build_phases_; |
+ std::vector<std::unique_ptr<PBXTargetDependency>> dependencies_; |
PBXSourcesBuildPhase* source_build_phase_; |
std::string name_; |
@@ -146,7 +153,7 @@ class PBXAggregateTarget : public PBXTarget { |
const PBXAttributes& attributes); |
~PBXAggregateTarget() override; |
- // PXBObject implementation. |
+ // PBXObject implementation. |
PBXObjectClass Class() const override; |
void Print(std::ostream& out, unsigned indent) const override; |
@@ -163,7 +170,7 @@ class PBXBuildFile : public PBXObject { |
const CompilerFlags compiler_flag); |
~PBXBuildFile() override; |
- // PXBObject implementation. |
+ // PBXObject implementation. |
PBXObjectClass Class() const override; |
std::string Name() const override; |
void Print(std::ostream& out, unsigned indent) const override; |
@@ -176,6 +183,25 @@ class PBXBuildFile : public PBXObject { |
DISALLOW_COPY_AND_ASSIGN(PBXBuildFile); |
}; |
+// PBXContainerItemProxy ------------------------------------------------------ |
+class PBXContainerItemProxy : public PBXObject { |
+ public: |
+ PBXContainerItemProxy(const PBXProject* project, const PBXTarget* target); |
+ ~PBXContainerItemProxy() override; |
+ |
+ // PBXObject implementation. |
+ PBXObjectClass Class() const override; |
+ std::string Name() const override; |
+ void Visit(PBXObjectVisitor& visitor) override; |
+ void Print(std::ostream& out, unsigned indent) const override; |
+ |
+ private: |
+ const PBXProject* project_; |
+ const PBXTarget* target_; |
+ |
+ DISALLOW_COPY_AND_ASSIGN(PBXContainerItemProxy); |
+}; |
+ |
// PBXFileReference ----------------------------------------------------------- |
class PBXFileReference : public PBXObject { |
@@ -372,6 +398,27 @@ class PBXSourcesBuildPhase : public PBXBuildPhase { |
DISALLOW_COPY_AND_ASSIGN(PBXSourcesBuildPhase); |
}; |
+// PBXTargetDependency ----------------------------------------------------- |
+class PBXTargetDependency : public PBXObject { |
+ public: |
+ PBXTargetDependency( |
+ const PBXTarget* target, |
+ std::unique_ptr<PBXContainerItemProxy> container_item_proxy); |
+ ~PBXTargetDependency() override; |
+ |
+ // PBXObject implementation. |
+ PBXObjectClass Class() const override; |
+ std::string Name() const override; |
+ void Visit(PBXObjectVisitor& visitor) override; |
+ void Print(std::ostream& out, unsigned indent) const override; |
+ |
+ private: |
+ const PBXTarget* target_; |
+ std::unique_ptr<PBXContainerItemProxy> container_item_proxy_; |
+ |
+ DISALLOW_COPY_AND_ASSIGN(PBXTargetDependency); |
+}; |
+ |
// XCBuildConfiguration ------------------------------------------------------- |
class XCBuildConfiguration : public PBXObject { |