[138302] branches/gsoc15-dependency/base/src/macports1.0

ijackson at macports.org ijackson at macports.org
Sun Jul 5 01:16:59 PDT 2015


Revision: 138302
          https://trac.macports.org/changeset/138302
Author:   ijackson at macports.org
Date:     2015-07-05 01:16:58 -0700 (Sun, 05 Jul 2015)
Log Message:
-----------
WIP: Dependency calculation using libsolv
Use libsolv depcalc when -l option is passed.
Set flags and call [$pool select arg flags] where arg
is the portname passed to mportexec. If nothing matches call 
[$pool select] after Binary OR'ing flags with NOCASE flag.

Modified Paths:
--------------
    branches/gsoc15-dependency/base/src/macports1.0/macports.tcl
    branches/gsoc15-dependency/base/src/macports1.0/macports_libsolv.tcl

Modified: branches/gsoc15-dependency/base/src/macports1.0/macports.tcl
===================================================================
--- branches/gsoc15-dependency/base/src/macports1.0/macports.tcl	2015-07-05 07:16:55 UTC (rev 138301)
+++ branches/gsoc15-dependency/base/src/macports1.0/macports.tcl	2015-07-05 08:16:58 UTC (rev 138302)
@@ -2047,9 +2047,12 @@
         }
     }
 
-    if {[macports::_target_needs_deps $target]} {
-        macports::libsolv::create_pool
-        set dep_res [macports::libsolv::dep_calc $portname]
+    ## Use libsolv Dependency Calculation if -l is passed
+    if {[info exists macports::global_options(ports_depengine)]} {
+        if {[macports::_target_needs_deps $target]} {
+            macports::libsolv::create_pool
+            set dep_res [macports::libsolv::dep_calc $portname]
+        }
     }
 
     # Before we build the port, we must build its dependencies.

Modified: branches/gsoc15-dependency/base/src/macports1.0/macports_libsolv.tcl
===================================================================
--- branches/gsoc15-dependency/base/src/macports1.0/macports_libsolv.tcl	2015-07-05 07:16:55 UTC (rev 138301)
+++ branches/gsoc15-dependency/base/src/macports1.0/macports_libsolv.tcl	2015-07-05 08:16:58 UTC (rev 138302)
@@ -251,14 +251,18 @@
     ## Dependency calculation using libsolv
     proc dep_calc {portname} {
         variable pool
-        ui_msg -nonewline "$macports::ui_prefix Computing dependencies for $portname using libsolv"
+        ui_msg "$macports::ui_prefix Computing dependencies for $portname using libsolv"
         set jobs [list]
         foreach arg $portname {
-            # lappend jobs [$solv::Pool_Job $solv::Job_SOLVER_SOLVABLE [$arg cget -id]]
-            # puts "Jobs = $jobs"
             set portid [$pool str2id $portname]
-            set dep_results [[$sel solvables] lookup_deparray $portid]
-            puts "Dep list = $dep_results"
+            set flags [expr $solv::Selection_SELECTION_NAME | $solv::Selection_SELECTION_PROVIDES \
+            | $solv::Selection_SELECTION_CANON | $solv::Selection_SELECTION_DOTARCH \
+            | $solv::Selection_SELECTION_REL]
+            set sel [$pool select $arg $flags]
+            if {[$sel isempty]} {
+                set sel [$pool select $arg [expr $flags | $solv::Selection_SELECTION_NOCASE]]
+            }
+            lappend jobs [$sel jobs $solv::Job_SOLVER_INSTALL]
         }
     }
 }
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.macosforge.org/pipermail/macports-changes/attachments/20150705/c84f6cc0/attachment-0001.html>


More information about the macports-changes mailing list