[100302] trunk/dports/_resources/port1.0/group/active_variants-1.1.tcl

cal at macports.org cal at macports.org
Fri Dec 7 13:46:00 PST 2012


Revision: 100302
          https://trac.macports.org/changeset/100302
Author:   cal at macports.org
Date:     2012-12-07 13:46:00 -0800 (Fri, 07 Dec 2012)
Log Message:
-----------
active_variants 1.1: fix incorrect attempt at putting require_active_variants into pre-configure automatically

Modified Paths:
--------------
    trunk/dports/_resources/port1.0/group/active_variants-1.1.tcl

Modified: trunk/dports/_resources/port1.0/group/active_variants-1.1.tcl
===================================================================
--- trunk/dports/_resources/port1.0/group/active_variants-1.1.tcl	2012-12-07 20:43:08 UTC (rev 100301)
+++ trunk/dports/_resources/port1.0/group/active_variants-1.1.tcl	2012-12-07 21:46:00 UTC (rev 100302)
@@ -137,8 +137,32 @@
 	return 1
 }
 
+proc _variant_in_variant_list {needle haystack} {
+	foreach variant $haystack {
+		if {$variant == $needle} {
+			return 1
+		}
+	}
+	return 0
+}
+
+# global list holding all items the should be checked for and cause an error if
+# not present
+set _require_active_variants_list [list]
+
 proc require_active_variants {name required {forbidden {}}} {
-	pre-configure {
+	global _require_active_variants_list
+	lappend _require_active_variants_list [list $name $required $forbidden]
+}
+
+# function to be called in pre-configure to check for all items added using
+# require_active_variants
+proc _check_require_active_variants {} {
+	global _require_active_variants_list
+	foreach _require_active_variant $_require_active_variants_list {
+		set name [lindex $_require_active_variant 0]
+		set required [lindex $_require_active_variant 1]
+		set forbidden [lindex $_require_active_variant 2]
 		if {[catch {set result [active_variants $name $required $forbidden]}] != 0} {
 			error "$name is required, but not active."
 		}
@@ -160,11 +184,7 @@
 	}
 }
 
-proc _variant_in_variant_list {needle haystack} {
-	foreach variant $haystack {
-		if {$variant == $needle} {
-			return 1
-		}
-	}
-	return 0
+# register pre-configure handler that checks for all requested variants
+pre-configure {
+	_check_require_active_variants
 }
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.macosforge.org/pipermail/macports-changes/attachments/20121207/df45967b/attachment.html>


More information about the macports-changes mailing list