[44895] users/toby/objcports

toby at macports.org toby at macports.org
Sun Jan 4 07:11:28 PST 2009


Revision: 44895
          http://trac.macports.org/changeset/44895
Author:   toby at macports.org
Date:     2009-01-04 07:11:28 -0800 (Sun, 04 Jan 2009)
Log Message:
-----------
etc

Modified Paths:
--------------
    users/toby/objcports/MPParser.m
    users/toby/objcports/MPPort.h
    users/toby/objcports/MPPort.m

Modified: users/toby/objcports/MPParser.m
===================================================================
--- users/toby/objcports/MPParser.m	2009-01-04 15:02:37 UTC (rev 44894)
+++ users/toby/objcports/MPParser.m	2009-01-04 15:11:28 UTC (rev 44895)
@@ -6,8 +6,7 @@
 #include "MPArrayAdditions.h"
 #include "MPStringAdditions.h"
 
-static int _target(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]);
-static int _option(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]);
+static int _nslog(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]);
 static int _unknown(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]);
 static char *_default(ClientData clientData, Tcl_Interp *interp, const char *name1, const char *name2, int flags);
 static void info(Tcl_Interp *interp, const char *command); // debugging
@@ -34,6 +33,8 @@
 			Tcl_TraceVar(_interp, [def UTF8String], TCL_TRACE_READS, _default, port);
 		}
 
+		Tcl_CreateObjCommand(_interp, "nslog", _nslog, NULL, NULL);
+
 		/* Handle *all* commands via the "unknown" mechanism. */
 		Tcl_CreateObjCommand(_interp, "unknown", _unknown, self, NULL);
 
@@ -42,6 +43,8 @@
 			NSLog(@"Tcl_EvalFile(%@): %s", portfile, Tcl_GetStringResult(_interp));
 		}
 
+		//fprintf(stderr, "%s\n", Tcl_GetString(Tcl_SubstObj(_interp, Tcl_NewStringObj("$prefix/${extract.suffix}", -1), TCL_SUBST_ALL)));
+
 		Tcl_Release(_interp);
 	}
 	@catch (NSException *exception) {
@@ -94,8 +97,8 @@
 		// (ugh, more tcl parsing)
 	} else if ([command isEqualToString:@"platform"]) {
 		NSUInteger count = [args count];
-		NSString *os, *arch;
-		NSInteger release;
+		NSString *os, *arch = nil;
+		NSInteger release = 0;
 
 		if (count < 2 || count > 4) {
 			NSLog(@"bogus platform declaration");
@@ -148,6 +151,8 @@
 		if (YES) {
 			Tcl_Eval(_interp, [[args lastObject] UTF8String]);
 		}
+	} else if ([[_port procs] containsObject:command]) {
+		// callback somewhere...
 	} else if ([_port isTarget:command]) {
 		// XXX: store for later use...
 	} else {
@@ -213,27 +218,16 @@
 
 @end
 
-static int
-_target(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[])
+static int _nslog(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[])
 {
-	NSArray *args = [[NSArray alloc] initWithTclObjects:objv count:objc];
-	NSLog(@"_target %@", args);
+	NSArray *args = [[NSArray alloc] initWithTclObjects:++objv count:--objc];
+	NSLog(@"%@", [args componentsJoinedByString:@" "]);
 	[args release];
 
 	return TCL_OK;
 }
 
 static int
-_option(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[])
-{
-	NSArray *args = [[NSArray alloc] initWithTclObjects:objv count:objc];
-	NSLog(@"_option %@", args);
-	[args release];
-
-	return TCL_OK;
-}
-
-static int
 _unknown(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[])
 {
 	assert(objc >= 2);

Modified: users/toby/objcports/MPPort.h
===================================================================
--- users/toby/objcports/MPPort.h	2009-01-04 15:02:37 UTC (rev 44894)
+++ users/toby/objcports/MPPort.h	2009-01-04 15:11:28 UTC (rev 44895)
@@ -5,16 +5,20 @@
 	NSString *_portfile;
 	MPParser *_parser;
 
+	NSMutableArray *_procs; 
+
 	NSMutableArray *_targets;
 
 	NSMutableArray *_options;
-	NSMutableArray *_defaults;
+	NSMutableDictionary *_defaults;
 }
 
 - (id)initWithPortfile:(NSString *)port options:(NSDictionary *)options;
 
 - (NSString *)portfile;
 
+- (NSArray *)procs;
+
 - (NSArray *)targets;
 - (BOOL)isTarget:(NSString *)target;
 

Modified: users/toby/objcports/MPPort.m
===================================================================
--- users/toby/objcports/MPPort.m	2009-01-04 15:02:37 UTC (rev 44894)
+++ users/toby/objcports/MPPort.m	2009-01-04 15:11:28 UTC (rev 44895)
@@ -15,15 +15,29 @@
 	self = [super init];
 	_portfile = [portfile retain];
 
+	_procs = [[NSMutableArray alloc] initWithCapacity:0];
+	[_procs addObject:@"variant_isset"];
+	[_procs addObject:@"strsed"];
+
 	_targets = [[NSMutableArray alloc] initWithCapacity:0];
+	[_targets addObject:@"fetch"];
+	[_targets addObject:@"extract"];
+	[_targets addObject:@"patch"];
 	[_targets addObject:@"configure"];
 	[_targets addObject:@"build"];
 	[_targets addObject:@"destroot"];
 
 	_options = [[NSMutableArray alloc] initWithCapacity:0];
+	[self addCommand:@"autoconf"];
 	[self addCommand:@"configure"];
+	[self addCommand:@"extract"];
+	[self addCommand:@"patch"];
+	[self addCommand:@"fetch"];
+	[self addCommand:@"build"];
+	[self addCommand:@"destroot"];
 	[_options addObject:@"name"];
 	[_options addObject:@"version"];
+	[_options addObject:@"revision"];
 	[_options addObject:@"categories"];
 	[_options addObject:@"maintainers"];
 	[_options addObject:@"homepage"];
@@ -34,16 +48,33 @@
 	[_options addObject:@"long_description"];
 	[_options addObject:@"master_sites"];
 	[_options addObject:@"checksums"];
+	[_options addObject:@"patchfiles"];
+	[_options addObject:@"depends_run"];
 	[_options addObject:@"depends_build"];
 	[_options addObject:@"depends_lib"];
-
+	[_options addObject:@"distname"];
+	[_options addObject:@"extract.suffix"];
+	[_options addObject:@"use_zip"];
+	[_options addObject:@"universal_variant"];
+	[_options addObject:@"build.target"];
 	[_options addObject:@"test.run"];
 	[_options addObject:@"test.target"];
-
+	[_options addObject:@"destroot.destdir"];
 	[_options addObject:@"livecheck.check"];
+	[_options addObject:@"livecheck.url"];
+	[_options addObject:@"livecheck.regex"];
+	[_options addObject:@"livecheck.distname"];
+	[_options addObject:@"worksrcdir"];
 
-	_defaults = [[NSMutableArray alloc] initWithCapacity:0];
-	[_defaults addObject:@"prefix"];
+	// *some* overlap with options
+	_defaults = [[NSMutableDictionary alloc] initWithCapacity:0];
+	[_defaults setObject:@"/opt/local" forKey:@"prefix"];
+	[_defaults setObject:@"" forKey:@"destroot"];
+	[_defaults setObject:@"" forKey:@"distname"];
+	[_defaults setObject:@"" forKey:@"os.arch"];
+	[_defaults setObject:@"" forKey:@"configure.cflags"];
+	[_defaults setObject:@"" forKey:@"configure.ldflags"];
+	[_defaults setObject:@".tar.gz" forKey:@"extract.suffix"];
 
 	_parser = [[MPParser alloc] initWithPort:self];
 
@@ -55,6 +86,7 @@
 	[_parser release];
 	[_portfile release];
 
+	[_procs release];
 	[_targets release];
 	[_options release];
 	[_defaults release];
@@ -67,6 +99,11 @@
 	return _portfile;
 }
 
+- (NSArray *)procs
+{
+	return _procs;
+}
+
 - (NSArray *)targets
 {
 	return _targets;
@@ -85,13 +122,13 @@
 
 - (NSArray *)defaults
 {
-	return _defaults;
+	return [_defaults allKeys];
 }
 
 - (NSString *)default:(NSString *)def
 {
 	// XXX: selector (NSInvocation?) or constant NSString...
-	return def;
+	return [_defaults objectForKey:def];
 }
 
 - (NSArray *)options
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.macosforge.org/pipermail/macports-changes/attachments/20090104/57d7de7d/attachment.html>


More information about the macports-changes mailing list