[108039] trunk/base/src/port1.0/portconfigure.tcl

larryv at macports.org larryv at macports.org
Wed Jul 10 20:06:49 PDT 2013


Revision: 108039
          https://trac.macports.org/changeset/108039
Author:   larryv at macports.org
Date:     2013-07-10 20:06:49 -0700 (Wed, 10 Jul 2013)
Log Message:
-----------
portconfigure.tcl: Rewrite compiler_port_name to use "format".

Modified Paths:
--------------
    trunk/base/src/port1.0/portconfigure.tcl

Modified: trunk/base/src/port1.0/portconfigure.tcl
===================================================================
--- trunk/base/src/port1.0/portconfigure.tcl	2013-07-11 02:46:40 UTC (rev 108038)
+++ trunk/base/src/port1.0/portconfigure.tcl	2013-07-11 03:06:49 UTC (rev 108039)
@@ -398,20 +398,22 @@
         macports-dragonegg-3.3  dragonegg-3.3
 }
 
+# Mapping from compiler names to compiler ports, for private use by
+# compiler_port_name. Do not access directly.
+set portconfigure::valid_compiler_ports {
+    {^apple-gcc-(\d+)\.(\d+)$}              {apple-gcc%s%s}
+    {^macports-clang-(\d+\.\d+)$}           {clang-%s}
+    {^macports-dragonegg-(\d+\.\d+)$}       {dragonegg-%s}
+    {^macports-(llvm-)?gcc-(\d+)\.(\d+)$}   {%sgcc%s%s}
+}
+
 proc portconfigure::compiler_port_name {compiler} {
-    if {[regexp {apple-gcc-(.*)\.(.*)} ${compiler} -> major minor]} {
-        return "apple-gcc${major}${minor}"
-    } elseif {[regexp {macports-clang-(.*)\.(.*)} ${compiler} -> major minor]} {
-        return "clang-${major}.${minor}"
-    } elseif {[regexp {macports-dragonegg-(.*)\.(.*)} ${compiler} -> major minor]} {
-        return "dragonegg-${major}.${minor}"
-    } elseif {[regexp {macports-gcc-(.*)\.(.*)} ${compiler} -> major minor]} {
-        return "gcc${major}${minor}"
-    } elseif {[regexp {macports-llvm-gcc-(.*)\.(.*)} ${compiler} -> major minor]} {
-        return "llvm-gcc${major}${minor}"
+    foreach {re fmt} $portconfigure::valid_compiler_ports {
+        if {[set matches [regexp -inline $re $compiler]] ne {}} {
+            return [eval [linsert [lrange $matches 1 end] 0 format $fmt]]
+        }
     }
-
-    return ""
+    return {}
 }
 
 proc portconfigure::compiler_is_port {compiler} {
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.macosforge.org/pipermail/macports-changes/attachments/20130710/0cbb1de8/attachment.html>


More information about the macports-changes mailing list