[59880] trunk/base/src/package1.0

jmr at macports.org jmr at macports.org
Sun Oct 25 00:32:20 PDT 2009


Revision: 59880
          http://trac.macports.org/changeset/59880
Author:   jmr at macports.org
Date:     2009-10-25 00:32:16 -0700 (Sun, 25 Oct 2009)
Log Message:
-----------
try to do something sensible with universal archives

Modified Paths:
--------------
    trunk/base/src/package1.0/portarchive.tcl
    trunk/base/src/package1.0/portunarchive.tcl

Modified: trunk/base/src/package1.0/portarchive.tcl
===================================================================
--- trunk/base/src/package1.0/portarchive.tcl	2009-10-25 06:52:20 UTC (rev 59879)
+++ trunk/base/src/package1.0/portarchive.tcl	2009-10-25 07:32:16 UTC (rev 59880)
@@ -70,7 +70,7 @@
     global name version revision portvariants
     global archive.destpath archive.type archive.meta
     global archive.file archive.path archive.fulldestpath
-    global configure.build_arch
+    global configure.build_arch configure.universal_archs
 
     # Check mode in case archive called directly by user
     if {[option portarchivemode] != "yes"} {
@@ -91,7 +91,11 @@
 
     # Define archive destination directory and target filename
     if {![string equal ${archive.destpath} ${workpath}] && ![string equal ${archive.destpath} ""]} {
-        set archive.fulldestpath [file join ${archive.destpath} [option os.platform] ${configure.build_arch}]
+        if {[variant_exists universal] && [variant_isset universal]} {
+            set archive.fulldestpath [file join ${archive.destpath} [option os.platform] "universal"]
+        } else {
+            set archive.fulldestpath [file join ${archive.destpath} [option os.platform] ${configure.build_arch}]
+        }
     } else {
         set archive.fulldestpath ${archive.destpath}
     }
@@ -111,7 +115,12 @@
         set any_missing no
         foreach archive.type [option portarchivetype] {
             if {[catch {archiveTypeIsSupported ${archive.type}} errmsg] == 0} {
-                set archive.file "${name}-${version}_${revision}${portvariants}.${configure.build_arch}.${archive.type}"
+                if {[variant_exists universal] && [variant_isset universal]} {
+                    set archstring [join [lsort -ascii ${configure.universal_archs}] -]
+                } else {
+                    set archstring ${configure.build_arch}
+                }
+                set archive.file "${name}-${version}_${revision}${portvariants}.${archstring}.${archive.type}"
                 set archive.path "[file join ${archive.fulldestpath} ${archive.file}]"
                 if {![file exists ${archive.path}]} {
                     set any_missing yes
@@ -300,7 +309,7 @@
     global name epoch version revision portvariants
     global archive.fulldestpath archive.type archive.file archive.path
     global archive.meta archive.metaname archive.metapath
-    global os.platform os.arch configure.build_arch
+    global os.platform os.arch configure.build_arch configure.universal_archs
 
     # Create archive destination path (if needed)
     if {![file isdirectory ${archive.fulldestpath}]} {
@@ -354,6 +363,11 @@
     puts $fd "@portepoch ${epoch}"
     puts $fd "@portversion ${version}"
     puts $fd "@portrevision ${revision}"
+    if {[variant_exists universal] && [variant_isset universal]} {
+        puts $fd "@archs ${configure.universal_archs}"
+    } else {
+        puts $fd "@archs ${configure.build_arch}"
+    }
     set vlist [lsort -ascii [array names variations]]
     foreach v $vlist {
         if {![string equal $v [option os.platform]] && ![string equal $v [option os.arch]]} {
@@ -400,7 +414,11 @@
         putel $sd minor 0
 
         putel $sd platform ${os.platform}
-        putel $sd arch ${os.arch}
+        if {[variant_exists universal] && [variant_isset universal]} {
+            putlist $sd archs arch [lsort -ascii ${configure.universal_archs}]
+        } else {
+            putel $sd arch ${configure.build_arch}
+        }
         set vlist [lsort -ascii [array names variations]]
         putlist $sd variants variant $vlist
 
@@ -459,12 +477,17 @@
         close $sd
     }
 
+    if {[variant_exists universal] && [variant_isset universal]} {
+        set archstring [join [lsort -ascii ${configure.universal_archs}] -]
+    } else {
+        set archstring ${configure.build_arch}
+    }
     # Now create the archive(s)
     # Loop through archive types
     foreach archive.type [option portarchivetype] {
         if {[catch {archiveTypeIsSupported ${archive.type}} errmsg] == 0} {
             # Define archive file/path
-            set archive.file "${name}-${version}_${revision}${portvariants}.${configure.build_arch}.${archive.type}"
+            set archive.file "${name}-${version}_${revision}${portvariants}.${archstring}.${archive.type}"
             set archive.path "[file join ${archive.fulldestpath} ${archive.file}]"
 
             # Setup archive command

Modified: trunk/base/src/package1.0/portunarchive.tcl
===================================================================
--- trunk/base/src/package1.0/portunarchive.tcl	2009-10-25 06:52:20 UTC (rev 59879)
+++ trunk/base/src/package1.0/portunarchive.tcl	2009-10-25 07:32:16 UTC (rev 59880)
@@ -65,7 +65,7 @@
     global ports_force ports_source_only ports_binary_only
     global name version revision portvariants portpath
     global unarchive.srcpath unarchive.type unarchive.file unarchive.path unarchive.fullsrcpath
-    global configure.build_arch
+    global configure.build_arch configure.universal_archs
 
     # Check mode in case archive called directly by user
     if {[option portarchivemode] != "yes"} {
@@ -86,7 +86,11 @@
 
     # Define archive directory, file, and path
     if {![string equal ${unarchive.srcpath} ${workpath}] && ![string equal ${unarchive.srcpath} ""]} {
-        set unarchive.fullsrcpath [file join ${unarchive.srcpath} [option os.platform] ${configure.build_arch}]
+        if {[variant_exists universal] && [variant_isset universal]} {
+            set unarchive.fullsrcpath [file join ${unarchive.srcpath} [option os.platform] "universal"]
+        } else {
+            set unarchive.fullsrcpath [file join ${unarchive.srcpath} [option os.platform] ${configure.build_arch}]
+        }
     } else {
         set unarchive.fullsrcpath ${unarchive.srcpath}
     }
@@ -109,7 +113,12 @@
         set unsupported 0
         foreach unarchive.type [option portarchivetype] {
             if {[catch {archiveTypeIsSupported ${unarchive.type}} errmsg] == 0} {
-                set unarchive.file "${name}-${version}_${revision}${portvariants}.${configure.build_arch}.${unarchive.type}"
+                if {[variant_exists universal] && [variant_isset universal]} {
+                    set archstring [join [lsort -ascii ${configure.universal_archs}] -]
+                } else {
+                    set archstring ${configure.build_arch}
+                }
+                set unarchive.file "${name}-${version}_${revision}${portvariants}.${archstring}.${unarchive.type}"
                 set unarchive.path "[file join ${unarchive.fullsrcpath} ${unarchive.file}]"
                 if {[file exist ${unarchive.path}]} {
                     set found 1
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.macosforge.org/pipermail/macports-changes/attachments/20091025/4b04bb97/attachment.html>


More information about the macports-changes mailing list