[53685] branches/gsoc09-gui/MacPorts_Framework

juanger at macports.org juanger at macports.org
Sat Jul 11 15:00:19 PDT 2009


Revision: 53685
          http://trac.macports.org/changeset/53685
Author:   juanger at macports.org
Date:     2009-07-11 15:00:19 -0700 (Sat, 11 Jul 2009)
Log Message:
-----------
MPPortProcess intial commit

Modified Paths:
--------------
    branches/gsoc09-gui/MacPorts_Framework/MacPorts.Framework.xcodeproj/project.pbxproj

Added Paths:
-----------
    branches/gsoc09-gui/MacPorts_Framework/MPPortProcess.h
    branches/gsoc09-gui/MacPorts_Framework/MPPortProcess.m

Added: branches/gsoc09-gui/MacPorts_Framework/MPPortProcess.h
===================================================================
--- branches/gsoc09-gui/MacPorts_Framework/MPPortProcess.h	                        (rev 0)
+++ branches/gsoc09-gui/MacPorts_Framework/MPPortProcess.h	2009-07-11 22:00:19 UTC (rev 53685)
@@ -0,0 +1,16 @@
+//
+//  MPPortProcess.h
+//  MacPorts.Framework
+//
+//  Created by Juan Germán Castañeda Echevarría on 7/9/09.
+//  Copyright 2009 UNAM. All rights reserved.
+//
+
+#include <Tcl/Tcl.h>
+
+ at interface MPPortProcess : NSObject {
+    Tcl_Interp *interpreter;
+    NSString *PKGPath;
+}
+
+ at end

Added: branches/gsoc09-gui/MacPorts_Framework/MPPortProcess.m
===================================================================
--- branches/gsoc09-gui/MacPorts_Framework/MPPortProcess.m	                        (rev 0)
+++ branches/gsoc09-gui/MacPorts_Framework/MPPortProcess.m	2009-07-11 22:00:19 UTC (rev 53685)
@@ -0,0 +1,81 @@
+//
+//  MPPortProcess.m
+//  MacPorts.Framework
+//
+//  Created by Juan Germán Castañeda Echevarría on 7/9/09.
+//  Copyright 2009 UNAM. All rights reserved.
+//
+
+#import "MPPortProcess.h"
+
+ at interface MPPortProcess (PrivateMethods)
+
+- (void)initializeInterpreter;
+
+ at end
+
+
+ at implementation MPPortProcess
+
+- (id)initWithPKGPath:(NSString*)path {
+    PKGPath = path;
+    [self initializeInterpreter];
+    return self;
+}
+
+- (oneway void)evaluateString:(byref id)statement {
+    // TODO Handle the posible errors and notifications
+    Tcl_Eval(interpreter, [statement UTF8String]);
+}
+
+#pragma mark Private Methods
+
+- (void)initializeInterpreter {
+    // Create interpreter
+    interpreter = Tcl_CreateInterp();
+	if(interpreter == NULL) {
+		NSLog(@"Error in Tcl_CreateInterp, aborting.");
+	}
+    // Initialize interpreter
+    if(Tcl_Init(interpreter) == TCL_ERROR) {
+		NSLog(@"Error in Tcl_Init: %s", Tcl_GetStringResult(interpreter));
+		Tcl_DeleteInterp(interpreter);
+	}
+    // Load macports_fastload.tcl from PKGPath/macports1.0
+    NSString * mport_fastload = [[@"source [file join \"" stringByAppendingString:PKGPath]
+								 stringByAppendingString:@"\" macports1.0 macports_fastload.tcl]"];
+	if(Tcl_Eval(interpreter, [mport_fastload UTF8String]) == TCL_ERROR) {
+		NSLog(@"Error in Tcl_EvalFile macports_fastload.tcl: %s", Tcl_GetStringResult(interpreter));
+		Tcl_DeleteInterp(interpreter);
+	}
+    // TODO Load distributed object messaging methods
+    
+    // TODO load portProcessInit.tcl
+}
+
+ at end
+
+int main(int argc, char const * argv[]) {
+    NSConnection *portProcessConnection; 
+    portProcessConnection = [NSConnection defaultConnection];
+    NSString *PKGPath = [[NSString alloc] initWithCString:argv[1] encoding:NSUTF8StringEncoding];
+    MPPortProcess *portProcess = [[MPPortProcess alloc] initWithPKGPath:PKGPath];
+    
+    // Vending portProcess
+    [portProcessConnection setRootObject:portProcess]; 
+    
+    // Register the named connection
+    if ( [portProcessConnection registerName:@"MPPortProcess"] ) {
+        NSLog( @"Successfully registered connection with port %@", 
+              [[portProcessConnection receivePort] description] );
+    } else {
+        NSLog( @"Name used by %@", 
+              [[[NSPortNameServer systemDefaultPortNameServer] portForName:@"MPPortProcess"] description] );
+    }
+    
+    // TODO Send a ready signal to "delegate"
+    
+    // Wait for any message
+    [[NSRunLoop currentRunLoop] run];
+    return 0;
+}
\ No newline at end of file

Modified: branches/gsoc09-gui/MacPorts_Framework/MacPorts.Framework.xcodeproj/project.pbxproj
===================================================================
--- branches/gsoc09-gui/MacPorts_Framework/MacPorts.Framework.xcodeproj/project.pbxproj	2009-07-11 21:58:41 UTC (rev 53684)
+++ branches/gsoc09-gui/MacPorts_Framework/MacPorts.Framework.xcodeproj/project.pbxproj	2009-07-11 22:00:19 UTC (rev 53685)
@@ -21,6 +21,9 @@
 /* End PBXAggregateTarget section */
 
 /* Begin PBXBuildFile section */
+		21D95442100940FF00DEF58A /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 6EB6FC900E45DEA80057962C /* Foundation.framework */; };
+		21D954431009411400DEF58A /* Tcl.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 6EA0F56E0DFEB55E00C15082 /* Tcl.framework */; };
+		21D954471009412F00DEF58A /* MPPortProcess.m in Sources */ = {isa = PBXBuildFile; fileRef = 21D954461009412F00DEF58A /* MPPortProcess.m */; };
 		481D04A20CDAAAFD00D4A550 /* MPMutableDictionary.h in Headers */ = {isa = PBXBuildFile; fileRef = 481D04A00CDAAAFC00D4A550 /* MPMutableDictionary.h */; settings = {ATTRIBUTES = (Public, ); }; };
 		481D04A30CDAAAFD00D4A550 /* MPMutableDictionary.m in Sources */ = {isa = PBXBuildFile; fileRef = 481D04A10CDAAAFD00D4A550 /* MPMutableDictionary.m */; };
 		4825ECC30CE6145B006B0385 /* MPRegistry.h in Headers */ = {isa = PBXBuildFile; fileRef = 48F811BE0CE4636A009630DE /* MPRegistry.h */; settings = {ATTRIBUTES = (Public, ); }; };
@@ -81,6 +84,13 @@
 /* End PBXBuildFile section */
 
 /* Begin PBXContainerItemProxy section */
+		21D9544B1009416100DEF58A /* PBXContainerItemProxy */ = {
+			isa = PBXContainerItemProxy;
+			containerPortal = 0867D690FE84028FC02AAC07 /* Project object */;
+			proxyType = 1;
+			remoteGlobalIDString = 21D9543D100940EE00DEF58A /* MPPortProcess */;
+			remoteInfo = MPPortProcess;
+		};
 		6E1AE8460E232D0700F6D7BC /* PBXContainerItemProxy */ = {
 			isa = PBXContainerItemProxy;
 			containerPortal = 0867D690FE84028FC02AAC07 /* Project object */;
@@ -116,6 +126,9 @@
 		089C1667FE841158C02AAC07 /* English */ = {isa = PBXFileReference; fileEncoding = 10; lastKnownFileType = text.plist.strings; name = English; path = English.lproj/InfoPlist.strings; sourceTree = "<group>"; };
 		1058C7B1FEA5585E11CA2CBB /* Cocoa.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Cocoa.framework; path = /System/Library/Frameworks/Cocoa.framework; sourceTree = "<absolute>"; };
 		21067BB50FE5B25800CAD732 /* Tests-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = "Tests-Info.plist"; sourceTree = "<group>"; };
+		21D9543E100940EE00DEF58A /* MPPortProcess */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; name = MPPortProcess; path = build/Release/MPPortProcess; sourceTree = "<group>"; };
+		21D954461009412F00DEF58A /* MPPortProcess.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MPPortProcess.m; sourceTree = "<group>"; };
+		21D954491009413800DEF58A /* MPPortProcess.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MPPortProcess.h; sourceTree = "<group>"; };
 		32DBCF5E0370ADEE00C91783 /* MacPorts.Framework_Prefix.pch */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MacPorts.Framework_Prefix.pch; sourceTree = "<group>"; };
 		481D04A00CDAAAFC00D4A550 /* MPMutableDictionary.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = MPMutableDictionary.h; sourceTree = "<group>"; };
 		481D04A10CDAAAFD00D4A550 /* MPMutableDictionary.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = MPMutableDictionary.m; sourceTree = "<group>"; };
@@ -178,6 +191,15 @@
 /* End PBXFileReference section */
 
 /* Begin PBXFrameworksBuildPhase section */
+		21D9543C100940EE00DEF58A /* Frameworks */ = {
+			isa = PBXFrameworksBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+				21D95442100940FF00DEF58A /* Foundation.framework in Frameworks */,
+				21D954431009411400DEF58A /* Tcl.framework in Frameworks */,
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
 		489DD8F10C94365F00595506 /* Frameworks */ = {
 			isa = PBXFrameworksBuildPhase;
 			buildActionMask = 2147483647;
@@ -235,6 +257,7 @@
 				6ED12A4A0E3E552F0026773D /* MPHelperTool */,
 				6EC260870E426FF10013BC48 /* MPHelperInstallTool */,
 				6EE6DD9E0E626D2800FB2115 /* MPHelperToolIPCTester */,
+				21D9543E100940EE00DEF58A /* MPPortProcess */,
 			);
 			name = Products;
 			sourceTree = "<group>";
@@ -242,6 +265,7 @@
 		0867D691FE84028FC02AAC07 /* MacPorts Foundation */ = {
 			isa = PBXGroup;
 			children = (
+				21D954381009409E00DEF58A /* MPPortProcess */,
 				6EE6DDA80E626D8000FB2115 /* IPCTesting */,
 				6ED12A460E3E54A80026773D /* MPHelperTools */,
 				6EA293540E05C8C600902D12 /* Tcl Notifications  */,
@@ -324,6 +348,15 @@
 			name = "Other Frameworks";
 			sourceTree = "<group>";
 		};
+		21D954381009409E00DEF58A /* MPPortProcess */ = {
+			isa = PBXGroup;
+			children = (
+				21D954491009413800DEF58A /* MPPortProcess.h */,
+				21D954461009412F00DEF58A /* MPPortProcess.m */,
+			);
+			name = MPPortProcess;
+			sourceTree = "<group>";
+		};
 		32C88DFF0371C24200C91783 /* Other Sources */ = {
 			isa = PBXGroup;
 			children = (
@@ -431,6 +464,22 @@
 /* End PBXHeadersBuildPhase section */
 
 /* Begin PBXNativeTarget section */
+		21D9543D100940EE00DEF58A /* MPPortProcess */ = {
+			isa = PBXNativeTarget;
+			buildConfigurationList = 21D954481009413000DEF58A /* Build configuration list for PBXNativeTarget "MPPortProcess" */;
+			buildPhases = (
+				21D9543B100940EE00DEF58A /* Sources */,
+				21D9543C100940EE00DEF58A /* Frameworks */,
+			);
+			buildRules = (
+			);
+			dependencies = (
+			);
+			name = MPPortProcess;
+			productName = MPPortProcess;
+			productReference = 21D9543E100940EE00DEF58A /* MPPortProcess */;
+			productType = "com.apple.product-type.tool";
+		};
 		489DD8F30C94365F00595506 /* Test */ = {
 			isa = PBXNativeTarget;
 			buildConfigurationList = 489DD8F60C94366000595506 /* Build configuration list for PBXNativeTarget "Test" */;
@@ -516,6 +565,7 @@
 			dependencies = (
 				6ED12A530E3E55A50026773D /* PBXTargetDependency */,
 				6EC2608C0E4270110013BC48 /* PBXTargetDependency */,
+				21D9544C1009416100DEF58A /* PBXTargetDependency */,
 			);
 			name = MacPorts;
 			productInstallPath = "$(HOME)/Library/Frameworks";
@@ -545,6 +595,7 @@
 				489DD8F30C94365F00595506 /* Test */,
 				DFE353650CFB8F0C003BACFC /* Docs */,
 				6EE6DD9D0E626D2800FB2115 /* MPHelperToolIPCTester */,
+				21D9543D100940EE00DEF58A /* MPPortProcess */,
 			);
 		};
 /* End PBXProject section */
@@ -623,6 +674,14 @@
 /* End PBXShellScriptBuildPhase section */
 
 /* Begin PBXSourcesBuildPhase section */
+		21D9543B100940EE00DEF58A /* Sources */ = {
+			isa = PBXSourcesBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+				21D954471009412F00DEF58A /* MPPortProcess.m in Sources */,
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
 		489DD8F00C94365F00595506 /* Sources */ = {
 			isa = PBXSourcesBuildPhase;
 			buildActionMask = 2147483647;
@@ -683,6 +742,11 @@
 /* End PBXSourcesBuildPhase section */
 
 /* Begin PBXTargetDependency section */
+		21D9544C1009416100DEF58A /* PBXTargetDependency */ = {
+			isa = PBXTargetDependency;
+			target = 21D9543D100940EE00DEF58A /* MPPortProcess */;
+			targetProxy = 21D9544B1009416100DEF58A /* PBXContainerItemProxy */;
+		};
 		6E1AE8470E232D0700F6D7BC /* PBXTargetDependency */ = {
 			isa = PBXTargetDependency;
 			target = 8DC2EF4F0486A6940098B216 /* MacPorts */;
@@ -805,6 +869,52 @@
 			};
 			name = Release;
 		};
+		21D95440100940EF00DEF58A /* Debug */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				ALWAYS_SEARCH_USER_PATHS = NO;
+				COPY_PHASE_STRIP = NO;
+				GCC_DYNAMIC_NO_PIC = NO;
+				GCC_ENABLE_FIX_AND_CONTINUE = YES;
+				GCC_MODEL_TUNING = G5;
+				GCC_OPTIMIZATION_LEVEL = 0;
+				GCC_PRECOMPILE_PREFIX_HEADER = YES;
+				GCC_PREFIX_HEADER = "$(SYSTEM_LIBRARY_DIR)/Frameworks/AppKit.framework/Headers/AppKit.h";
+				INSTALL_PATH = /usr/local/bin;
+				OTHER_LDFLAGS = (
+					"-framework",
+					Foundation,
+					"-framework",
+					AppKit,
+				);
+				PREBINDING = NO;
+				PRODUCT_NAME = MPPortProcess;
+			};
+			name = Debug;
+		};
+		21D95441100940EF00DEF58A /* Release */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				ALWAYS_SEARCH_USER_PATHS = NO;
+				COPY_PHASE_STRIP = YES;
+				DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
+				GCC_ENABLE_FIX_AND_CONTINUE = NO;
+				GCC_MODEL_TUNING = G5;
+				GCC_PRECOMPILE_PREFIX_HEADER = YES;
+				GCC_PREFIX_HEADER = "$(SYSTEM_LIBRARY_DIR)/Frameworks/AppKit.framework/Headers/AppKit.h";
+				INSTALL_PATH = /usr/local/bin;
+				OTHER_LDFLAGS = (
+					"-framework",
+					Foundation,
+					"-framework",
+					AppKit,
+				);
+				PREBINDING = NO;
+				PRODUCT_NAME = MPPortProcess;
+				ZERO_LINK = NO;
+			};
+			name = Release;
+		};
 		489DD8F70C94366000595506 /* Debug */ = {
 			isa = XCBuildConfiguration;
 			buildSettings = {
@@ -1024,6 +1134,15 @@
 			defaultConfigurationIsVisible = 0;
 			defaultConfigurationName = Release;
 		};
+		21D954481009413000DEF58A /* Build configuration list for PBXNativeTarget "MPPortProcess" */ = {
+			isa = XCConfigurationList;
+			buildConfigurations = (
+				21D95440100940EF00DEF58A /* Debug */,
+				21D95441100940EF00DEF58A /* Release */,
+			);
+			defaultConfigurationIsVisible = 0;
+			defaultConfigurationName = Release;
+		};
 		489DD8F60C94366000595506 /* Build configuration list for PBXNativeTarget "Test" */ = {
 			isa = XCConfigurationList;
 			buildConfigurations = (
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.macosforge.org/pipermail/macports-changes/attachments/20090711/db35421d/attachment.html>


More information about the macports-changes mailing list