浏览代码

chore: clean up xcode projects

Sam Jaffe 1 年之前
父节点
当前提交
040c771cb0
共有 2 个文件被更改,包括 265 次插入8 次删除
  1. 168 8
      engine/engine.xcodeproj/project.pbxproj
  2. 97 0
      graphics/graphics.xcodeproj/project.pbxproj

+ 168 - 8
engine/engine.xcodeproj/project.pbxproj

@@ -9,7 +9,6 @@
 /* Begin PBXBuildFile section */
 		CD1C83562298B55F00825C4E /* fps_counter.cxx in Sources */ = {isa = PBXBuildFile; fileRef = CD1C83542298B55F00825C4E /* fps_counter.cxx */; };
 		CD1C8419229A095600825C4E /* text_engine.cxx in Sources */ = {isa = PBXBuildFile; fileRef = CD1C8417229A095600825C4E /* text_engine.cxx */; };
-		CD39A88F22F521DB00FEC384 /* libjsoncpp.1.9.0.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = CD39A88D22F521A200FEC384 /* libjsoncpp.1.9.0.dylib */; };
 		CD39A89222F6052D00FEC384 /* entity_test.cxx in Sources */ = {isa = PBXBuildFile; fileRef = CD39A89122F6052D00FEC384 /* entity_test.cxx */; };
 		CD62D8462251A94C0023219A /* libgraphics.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = CD62D8452251A94C0023219A /* libgraphics.dylib */; };
 		CD62D8482251A9500023219A /* libmath.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = CD62D8472251A9500023219A /* libmath.dylib */; };
@@ -78,13 +77,74 @@
 			remoteGlobalIDString = 05818F851A685AEA0072A469;
 			remoteInfo = GoogleMock;
 		};
+		CD9F1BC82B7469130035EDF5 /* PBXContainerItemProxy */ = {
+			isa = PBXContainerItemProxy;
+			containerPortal = CD9F1BC42B7469130035EDF5 /* gameutils.xcodeproj */;
+			proxyType = 2;
+			remoteGlobalIDString = CD3AC7081D2C0726002B4BB0;
+			remoteInfo = gameutils;
+		};
+		CD9F1BCA2B7469340035EDF5 /* PBXContainerItemProxy */ = {
+			isa = PBXContainerItemProxy;
+			containerPortal = CD9F1BC42B7469130035EDF5 /* gameutils.xcodeproj */;
+			proxyType = 1;
+			remoteGlobalIDString = CD3AC7071D2C0726002B4BB0;
+			remoteInfo = gameutils;
+		};
+		CD9F1BE82B74697A0035EDF5 /* PBXContainerItemProxy */ = {
+			isa = PBXContainerItemProxy;
+			containerPortal = CD9F1BE22B74697A0035EDF5 /* graphics.xcodeproj */;
+			proxyType = 2;
+			remoteGlobalIDString = CD3AC6E21D2C0364002B4BB0;
+			remoteInfo = graphics;
+		};
+		CD9F1BEA2B74697A0035EDF5 /* PBXContainerItemProxy */ = {
+			isa = PBXContainerItemProxy;
+			containerPortal = CD9F1BE22B74697A0035EDF5 /* graphics.xcodeproj */;
+			proxyType = 2;
+			remoteGlobalIDString = CDED9C1422A2D6CD00AE5CE5;
+			remoteInfo = "graphics-test";
+		};
+		CD9F1BEC2B74697A0035EDF5 /* PBXContainerItemProxy */ = {
+			isa = PBXContainerItemProxy;
+			containerPortal = CD9F1BE22B74697A0035EDF5 /* graphics.xcodeproj */;
+			proxyType = 2;
+			remoteGlobalIDString = CD6CDB61234EA31500D76C1A;
+			remoteInfo = opengl_graphics;
+		};
+		CD9F1BF32B74697A0035EDF5 /* PBXContainerItemProxy */ = {
+			isa = PBXContainerItemProxy;
+			containerPortal = CD9F1BEE2B74697A0035EDF5 /* math.xcodeproj */;
+			proxyType = 2;
+			remoteGlobalIDString = CD3786181CF9F61100BE89B2;
+			remoteInfo = math;
+		};
+		CD9F1BF52B74697A0035EDF5 /* PBXContainerItemProxy */ = {
+			isa = PBXContainerItemProxy;
+			containerPortal = CD9F1BEE2B74697A0035EDF5 /* math.xcodeproj */;
+			proxyType = 2;
+			remoteGlobalIDString = CD1FCFCD227E194D00F9BF93;
+			remoteInfo = "math-test";
+		};
+		CD9F1BF72B7469810035EDF5 /* PBXContainerItemProxy */ = {
+			isa = PBXContainerItemProxy;
+			containerPortal = CD9F1BE22B74697A0035EDF5 /* graphics.xcodeproj */;
+			proxyType = 1;
+			remoteGlobalIDString = CD3AC6E11D2C0364002B4BB0;
+			remoteInfo = graphics;
+		};
+		CD9F1BF92B7469810035EDF5 /* PBXContainerItemProxy */ = {
+			isa = PBXContainerItemProxy;
+			containerPortal = CD9F1BEE2B74697A0035EDF5 /* math.xcodeproj */;
+			proxyType = 1;
+			remoteGlobalIDString = CD3786171CF9F61100BE89B2;
+			remoteInfo = math;
+		};
 /* End PBXContainerItemProxy section */
 
 /* Begin PBXFileReference section */
 		CD1C83542298B55F00825C4E /* fps_counter.cxx */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = fps_counter.cxx; sourceTree = "<group>"; };
 		CD1C8417229A095600825C4E /* text_engine.cxx */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = text_engine.cxx; sourceTree = "<group>"; };
-		CD210443285E4CB100F15770 /* libjsoncpp_static.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libjsoncpp_static.a; path = ../../../../../../../opt/local/lib/libjsoncpp_static.a; sourceTree = "<group>"; };
-		CD39A88D22F521A200FEC384 /* libjsoncpp.1.9.0.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = libjsoncpp.1.9.0.dylib; path = ../../../../../../../opt/local/lib/libjsoncpp.1.9.0.dylib; sourceTree = "<group>"; };
 		CD39A89122F6052D00FEC384 /* entity_test.cxx */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = entity_test.cxx; sourceTree = "<group>"; };
 		CD62D8452251A94C0023219A /* libgraphics.dylib */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.dylib"; path = libgraphics.dylib; sourceTree = BUILT_PRODUCTS_DIR; };
 		CD62D8472251A9500023219A /* libmath.dylib */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.dylib"; path = libmath.dylib; sourceTree = BUILT_PRODUCTS_DIR; };
@@ -92,7 +152,6 @@
 		CD62FCC922904A8900376440 /* engine-test.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = "engine-test.xctest"; sourceTree = BUILT_PRODUCTS_DIR; };
 		CD62FCCD22904A8900376440 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
 		CD62FD33229364DB00376440 /* entity.cxx */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = entity.cxx; sourceTree = "<group>"; };
-		CD62FD3922936E9C00376440 /* libjsoncpp.1.8.4.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = libjsoncpp.1.8.4.dylib; path = ../../../../../../../opt/local/lib/libjsoncpp.1.8.4.dylib; sourceTree = "<group>"; };
 		CD62FD3E2293746900376440 /* serial.cxx */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = serial.cxx; sourceTree = "<group>"; };
 		CD7E87782295FAB400D877FE /* libgameutils.dylib */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.dylib"; path = libgameutils.dylib; sourceTree = BUILT_PRODUCTS_DIR; };
 		CD8064F322D2284500B9B4E4 /* data */ = {isa = PBXFileReference; lastKnownFileType = folder; path = data; sourceTree = "<group>"; };
@@ -114,6 +173,9 @@
 		CD9F1BAB2B7446E10035EDF5 /* AVFoundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AVFoundation.framework; path = System/Library/Frameworks/AVFoundation.framework; sourceTree = SDKROOT; };
 		CD9F1BAD2B7446EC0035EDF5 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; };
 		CD9F1BAF2B7447080035EDF5 /* Cocoa.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Cocoa.framework; path = System/Library/Frameworks/Cocoa.framework; sourceTree = SDKROOT; };
+		CD9F1BC42B7469130035EDF5 /* gameutils.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = gameutils.xcodeproj; path = ../util/gameutils.xcodeproj; sourceTree = "<group>"; };
+		CD9F1BE22B74697A0035EDF5 /* graphics.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = graphics.xcodeproj; path = ../graphics/graphics.xcodeproj; sourceTree = "<group>"; };
+		CD9F1BEE2B74697A0035EDF5 /* math.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = math.xcodeproj; path = ../math/math.xcodeproj; sourceTree = "<group>"; };
 		CDA34D8422515C99008036A7 /* game */ = {isa = PBXFileReference; lastKnownFileType = folder; name = game; path = include/game; sourceTree = "<group>"; };
 		CDB1F8AE1D7A30CD00700C6B /* libengine.dylib */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.dylib"; includeInIndex = 0; path = libengine.dylib; sourceTree = BUILT_PRODUCTS_DIR; };
 		CDB1F8C61D7A312B00700C6B /* game_dispatch.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = game_dispatch.cpp; sourceTree = "<group>"; };
@@ -128,7 +190,6 @@
 			isa = PBXFrameworksBuildPhase;
 			buildActionMask = 2147483647;
 			files = (
-				CD39A88F22F521DB00FEC384 /* libjsoncpp.1.9.0.dylib in Frameworks */,
 				CD8064FE22DA621200B9B4E4 /* libmath.dylib in Frameworks */,
 				CD8064F722D22BF500B9B4E4 /* libgameutils.dylib in Frameworks */,
 				CD8064EF22D21EB500B9B4E4 /* libgraphics.dylib in Frameworks */,
@@ -159,10 +220,7 @@
 				CD9F1BAD2B7446EC0035EDF5 /* Foundation.framework */,
 				CD9F1BAB2B7446E10035EDF5 /* AVFoundation.framework */,
 				CD9F1BA92B7446A80035EDF5 /* libjsoncpp.a */,
-				CD210443285E4CB100F15770 /* libjsoncpp_static.a */,
-				CD39A88D22F521A200FEC384 /* libjsoncpp.1.9.0.dylib */,
 				CD7E87782295FAB400D877FE /* libgameutils.dylib */,
-				CD62FD3922936E9C00376440 /* libjsoncpp.1.8.4.dylib */,
 				CD62D8452251A94C0023219A /* libgraphics.dylib */,
 				CD62D8472251A9500023219A /* libmath.dylib */,
 			);
@@ -229,6 +287,33 @@
 			path = include/game/osx;
 			sourceTree = SOURCE_ROOT;
 		};
+		CD9F1BC52B7469130035EDF5 /* Products */ = {
+			isa = PBXGroup;
+			children = (
+				CD9F1BC92B7469130035EDF5 /* libgameutils.dylib */,
+			);
+			name = Products;
+			sourceTree = "<group>";
+		};
+		CD9F1BE32B74697A0035EDF5 /* Products */ = {
+			isa = PBXGroup;
+			children = (
+				CD9F1BE92B74697A0035EDF5 /* libgraphics.dylib */,
+				CD9F1BEB2B74697A0035EDF5 /* graphics-test.xctest */,
+				CD9F1BED2B74697A0035EDF5 /* libopengl_graphics.dylib */,
+			);
+			name = Products;
+			sourceTree = "<group>";
+		};
+		CD9F1BEF2B74697A0035EDF5 /* Products */ = {
+			isa = PBXGroup;
+			children = (
+				CD9F1BF42B74697A0035EDF5 /* libmath.dylib */,
+				CD9F1BF62B74697A0035EDF5 /* math-test.xctest */,
+			);
+			name = Products;
+			sourceTree = "<group>";
+		};
 		CDA34D8522515CA9008036A7 /* test */ = {
 			isa = PBXGroup;
 			children = (
@@ -247,6 +332,9 @@
 		CDB1F8A51D7A30CD00700C6B = {
 			isa = PBXGroup;
 			children = (
+				CD9F1BC42B7469130035EDF5 /* gameutils.xcodeproj */,
+				CD9F1BE22B74697A0035EDF5 /* graphics.xcodeproj */,
+				CD9F1BEE2B74697A0035EDF5 /* math.xcodeproj */,
 				CD62FCB622904A7B00376440 /* GoogleMock.xcodeproj */,
 				CDA34D8422515C99008036A7 /* game */,
 				CD8FBC7F2B743A7D00CE38F1 /* include */,
@@ -326,6 +414,9 @@
 			buildRules = (
 			);
 			dependencies = (
+				CD9F1BF82B7469810035EDF5 /* PBXTargetDependency */,
+				CD9F1BFA2B7469810035EDF5 /* PBXTargetDependency */,
+				CD9F1BCB2B7469340035EDF5 /* PBXTargetDependency */,
 			);
 			name = engine;
 			productName = engine;
@@ -363,10 +454,22 @@
 			productRefGroup = CDB1F8AF1D7A30CD00700C6B /* Products */;
 			projectDirPath = "";
 			projectReferences = (
+				{
+					ProductGroup = CD9F1BC52B7469130035EDF5 /* Products */;
+					ProjectRef = CD9F1BC42B7469130035EDF5 /* gameutils.xcodeproj */;
+				},
 				{
 					ProductGroup = CD62FCB722904A7B00376440 /* Products */;
 					ProjectRef = CD62FCB622904A7B00376440 /* GoogleMock.xcodeproj */;
 				},
+				{
+					ProductGroup = CD9F1BE32B74697A0035EDF5 /* Products */;
+					ProjectRef = CD9F1BE22B74697A0035EDF5 /* graphics.xcodeproj */;
+				},
+				{
+					ProductGroup = CD9F1BEF2B74697A0035EDF5 /* Products */;
+					ProjectRef = CD9F1BEE2B74697A0035EDF5 /* math.xcodeproj */;
+				},
 			);
 			projectRoot = "";
 			targets = (
@@ -405,6 +508,48 @@
 			remoteRef = CD62FCC322904A7C00376440 /* PBXContainerItemProxy */;
 			sourceTree = BUILT_PRODUCTS_DIR;
 		};
+		CD9F1BC92B7469130035EDF5 /* libgameutils.dylib */ = {
+			isa = PBXReferenceProxy;
+			fileType = "compiled.mach-o.dylib";
+			path = libgameutils.dylib;
+			remoteRef = CD9F1BC82B7469130035EDF5 /* PBXContainerItemProxy */;
+			sourceTree = BUILT_PRODUCTS_DIR;
+		};
+		CD9F1BE92B74697A0035EDF5 /* libgraphics.dylib */ = {
+			isa = PBXReferenceProxy;
+			fileType = "compiled.mach-o.dylib";
+			path = libgraphics.dylib;
+			remoteRef = CD9F1BE82B74697A0035EDF5 /* PBXContainerItemProxy */;
+			sourceTree = BUILT_PRODUCTS_DIR;
+		};
+		CD9F1BEB2B74697A0035EDF5 /* graphics-test.xctest */ = {
+			isa = PBXReferenceProxy;
+			fileType = wrapper.cfbundle;
+			path = "graphics-test.xctest";
+			remoteRef = CD9F1BEA2B74697A0035EDF5 /* PBXContainerItemProxy */;
+			sourceTree = BUILT_PRODUCTS_DIR;
+		};
+		CD9F1BED2B74697A0035EDF5 /* libopengl_graphics.dylib */ = {
+			isa = PBXReferenceProxy;
+			fileType = "compiled.mach-o.dylib";
+			path = libopengl_graphics.dylib;
+			remoteRef = CD9F1BEC2B74697A0035EDF5 /* PBXContainerItemProxy */;
+			sourceTree = BUILT_PRODUCTS_DIR;
+		};
+		CD9F1BF42B74697A0035EDF5 /* libmath.dylib */ = {
+			isa = PBXReferenceProxy;
+			fileType = "compiled.mach-o.dylib";
+			path = libmath.dylib;
+			remoteRef = CD9F1BF32B74697A0035EDF5 /* PBXContainerItemProxy */;
+			sourceTree = BUILT_PRODUCTS_DIR;
+		};
+		CD9F1BF62B74697A0035EDF5 /* math-test.xctest */ = {
+			isa = PBXReferenceProxy;
+			fileType = wrapper.cfbundle;
+			path = "math-test.xctest";
+			remoteRef = CD9F1BF52B74697A0035EDF5 /* PBXContainerItemProxy */;
+			sourceTree = BUILT_PRODUCTS_DIR;
+		};
 /* End PBXReferenceProxy section */
 
 /* Begin PBXResourcesBuildPhase section */
@@ -480,6 +625,21 @@
 			name = GoogleMock;
 			targetProxy = CD62FCD422904A9700376440 /* PBXContainerItemProxy */;
 		};
+		CD9F1BCB2B7469340035EDF5 /* PBXTargetDependency */ = {
+			isa = PBXTargetDependency;
+			name = gameutils;
+			targetProxy = CD9F1BCA2B7469340035EDF5 /* PBXContainerItemProxy */;
+		};
+		CD9F1BF82B7469810035EDF5 /* PBXTargetDependency */ = {
+			isa = PBXTargetDependency;
+			name = graphics;
+			targetProxy = CD9F1BF72B7469810035EDF5 /* PBXContainerItemProxy */;
+		};
+		CD9F1BFA2B7469810035EDF5 /* PBXTargetDependency */ = {
+			isa = PBXTargetDependency;
+			name = math;
+			targetProxy = CD9F1BF92B7469810035EDF5 /* PBXContainerItemProxy */;
+		};
 /* End PBXTargetDependency section */
 
 /* Begin XCBuildConfiguration section */

+ 97 - 0
graphics/graphics.xcodeproj/project.pbxproj

@@ -75,6 +75,41 @@
 			remoteGlobalIDString = CD3AC6E11D2C0364002B4BB0;
 			remoteInfo = graphics;
 		};
+		CD9F1BD02B7469540035EDF5 /* PBXContainerItemProxy */ = {
+			isa = PBXContainerItemProxy;
+			containerPortal = CD9F1BCC2B7469540035EDF5 /* gameutils.xcodeproj */;
+			proxyType = 2;
+			remoteGlobalIDString = CD3AC7081D2C0726002B4BB0;
+			remoteInfo = gameutils;
+		};
+		CD9F1BD52B74695C0035EDF5 /* PBXContainerItemProxy */ = {
+			isa = PBXContainerItemProxy;
+			containerPortal = CD9F1BCC2B7469540035EDF5 /* gameutils.xcodeproj */;
+			proxyType = 1;
+			remoteGlobalIDString = CD3AC7071D2C0726002B4BB0;
+			remoteInfo = gameutils;
+		};
+		CD9F1BDC2B7469600035EDF5 /* PBXContainerItemProxy */ = {
+			isa = PBXContainerItemProxy;
+			containerPortal = CD9F1BD72B7469600035EDF5 /* math.xcodeproj */;
+			proxyType = 2;
+			remoteGlobalIDString = CD3786181CF9F61100BE89B2;
+			remoteInfo = math;
+		};
+		CD9F1BDE2B7469600035EDF5 /* PBXContainerItemProxy */ = {
+			isa = PBXContainerItemProxy;
+			containerPortal = CD9F1BD72B7469600035EDF5 /* math.xcodeproj */;
+			proxyType = 2;
+			remoteGlobalIDString = CD1FCFCD227E194D00F9BF93;
+			remoteInfo = "math-test";
+		};
+		CD9F1BE02B7469640035EDF5 /* PBXContainerItemProxy */ = {
+			isa = PBXContainerItemProxy;
+			containerPortal = CD9F1BD72B7469600035EDF5 /* math.xcodeproj */;
+			proxyType = 1;
+			remoteGlobalIDString = CD3786171CF9F61100BE89B2;
+			remoteInfo = math;
+		};
 		CDED9C1A22A2D6CE00AE5CE5 /* PBXContainerItemProxy */ = {
 			isa = PBXContainerItemProxy;
 			containerPortal = CD3AC6DA1D2C0364002B4BB0 /* Project object */;
@@ -127,6 +162,8 @@
 		CD62FD202292C76B00376440 /* renderer_impl.hpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.h; path = renderer_impl.hpp; sourceTree = "<group>"; };
 		CD62FD212292C76B00376440 /* opengl_renderer.cxx */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = opengl_renderer.cxx; sourceTree = "<group>"; };
 		CD6CDB61234EA31500D76C1A /* libopengl_graphics.dylib */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.dylib"; includeInIndex = 0; path = libopengl_graphics.dylib; sourceTree = BUILT_PRODUCTS_DIR; };
+		CD9F1BCC2B7469540035EDF5 /* gameutils.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = gameutils.xcodeproj; path = ../util/gameutils.xcodeproj; sourceTree = "<group>"; };
+		CD9F1BD72B7469600035EDF5 /* math.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = math.xcodeproj; path = ../math/math.xcodeproj; sourceTree = "<group>"; };
 		CDA34D86225171AA008036A7 /* game */ = {isa = PBXFileReference; lastKnownFileType = folder; name = game; path = include/game; sourceTree = "<group>"; };
 		CDA34D9922517A3D008036A7 /* libmath.dylib */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.dylib"; path = libmath.dylib; sourceTree = BUILT_PRODUCTS_DIR; };
 		CDED9C1422A2D6CD00AE5CE5 /* graphics-test.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = "graphics-test.xctest"; sourceTree = BUILT_PRODUCTS_DIR; };
@@ -186,6 +223,8 @@
 		CD3AC6D91D2C0364002B4BB0 = {
 			isa = PBXGroup;
 			children = (
+				CD9F1BCC2B7469540035EDF5 /* gameutils.xcodeproj */,
+				CD9F1BD72B7469600035EDF5 /* math.xcodeproj */,
 				CD62FCD722904AD100376440 /* GoogleMock.xcodeproj */,
 				CDA34D86225171AA008036A7 /* game */,
 				CD3AC6E41D2C0364002B4BB0 /* src */,
@@ -252,6 +291,23 @@
 			name = renderer;
 			sourceTree = "<group>";
 		};
+		CD9F1BCD2B7469540035EDF5 /* Products */ = {
+			isa = PBXGroup;
+			children = (
+				CD9F1BD12B7469540035EDF5 /* libgameutils.dylib */,
+			);
+			name = Products;
+			sourceTree = "<group>";
+		};
+		CD9F1BD82B7469600035EDF5 /* Products */ = {
+			isa = PBXGroup;
+			children = (
+				CD9F1BDD2B7469600035EDF5 /* libmath.dylib */,
+				CD9F1BDF2B7469600035EDF5 /* math-test.xctest */,
+			);
+			name = Products;
+			sourceTree = "<group>";
+		};
 		CDA34D9822517A3D008036A7 /* Frameworks */ = {
 			isa = PBXGroup;
 			children = (
@@ -315,6 +371,8 @@
 			buildRules = (
 			);
 			dependencies = (
+				CD9F1BE12B7469640035EDF5 /* PBXTargetDependency */,
+				CD9F1BD62B74695C0035EDF5 /* PBXTargetDependency */,
 			);
 			name = graphics;
 			productName = graphics;
@@ -393,10 +451,18 @@
 			productRefGroup = CD3AC6E31D2C0364002B4BB0 /* Products */;
 			projectDirPath = "";
 			projectReferences = (
+				{
+					ProductGroup = CD9F1BCD2B7469540035EDF5 /* Products */;
+					ProjectRef = CD9F1BCC2B7469540035EDF5 /* gameutils.xcodeproj */;
+				},
 				{
 					ProductGroup = CD62FCD822904AD100376440 /* Products */;
 					ProjectRef = CD62FCD722904AD100376440 /* GoogleMock.xcodeproj */;
 				},
+				{
+					ProductGroup = CD9F1BD82B7469600035EDF5 /* Products */;
+					ProjectRef = CD9F1BD72B7469600035EDF5 /* math.xcodeproj */;
+				},
 			);
 			projectRoot = "";
 			targets = (
@@ -436,6 +502,27 @@
 			remoteRef = CD62FCE422904AD100376440 /* PBXContainerItemProxy */;
 			sourceTree = BUILT_PRODUCTS_DIR;
 		};
+		CD9F1BD12B7469540035EDF5 /* libgameutils.dylib */ = {
+			isa = PBXReferenceProxy;
+			fileType = "compiled.mach-o.dylib";
+			path = libgameutils.dylib;
+			remoteRef = CD9F1BD02B7469540035EDF5 /* PBXContainerItemProxy */;
+			sourceTree = BUILT_PRODUCTS_DIR;
+		};
+		CD9F1BDD2B7469600035EDF5 /* libmath.dylib */ = {
+			isa = PBXReferenceProxy;
+			fileType = "compiled.mach-o.dylib";
+			path = libmath.dylib;
+			remoteRef = CD9F1BDC2B7469600035EDF5 /* PBXContainerItemProxy */;
+			sourceTree = BUILT_PRODUCTS_DIR;
+		};
+		CD9F1BDF2B7469600035EDF5 /* math-test.xctest */ = {
+			isa = PBXReferenceProxy;
+			fileType = wrapper.cfbundle;
+			path = "math-test.xctest";
+			remoteRef = CD9F1BDE2B7469600035EDF5 /* PBXContainerItemProxy */;
+			sourceTree = BUILT_PRODUCTS_DIR;
+		};
 /* End PBXReferenceProxy section */
 
 /* Begin PBXResourcesBuildPhase section */
@@ -512,6 +599,16 @@
 			target = CD3AC6E11D2C0364002B4BB0 /* graphics */;
 			targetProxy = CD6CDB74234EA70700D76C1A /* PBXContainerItemProxy */;
 		};
+		CD9F1BD62B74695C0035EDF5 /* PBXTargetDependency */ = {
+			isa = PBXTargetDependency;
+			name = gameutils;
+			targetProxy = CD9F1BD52B74695C0035EDF5 /* PBXContainerItemProxy */;
+		};
+		CD9F1BE12B7469640035EDF5 /* PBXTargetDependency */ = {
+			isa = PBXTargetDependency;
+			name = math;
+			targetProxy = CD9F1BE02B7469640035EDF5 /* PBXContainerItemProxy */;
+		};
 		CDED9C1B22A2D6CE00AE5CE5 /* PBXTargetDependency */ = {
 			isa = PBXTargetDependency;
 			target = CD3AC6E11D2C0364002B4BB0 /* graphics */;