@@ -8,6 +8,7 @@ var Unipackage = require('./unipackage.js');
88var PackageLoader = require ( './package-loader.js' ) ;
99var uniload = require ( './uniload.js' ) ;
1010var bundler = require ( './bundler.js' ) ;
11+ var catalog = require ( './catalog.js' ) ;
1112
1213var compiler = exports ;
1314
@@ -81,8 +82,8 @@ compiler.eachUsedSlice = function (dependencies, arch, packageLoader, options,
8182// dependencies. Emits buildmessages if this is impossible.
8283//
8384// Output is an object with keys:
84- // - directDependencies: map from package name to version string, for
85- // the package's direct, ordered, strong, non-implied dependencies
85+ // - directDependencies: map from package name to version string, for the
86+ // package's direct, ordered, strong, non-implied dependencies.
8687// - pluginDependencies: map from plugin name to complete (transitive)
8788// version information for all packages used to build the plugin, as
8889// a map from package name to version string.
@@ -147,9 +148,10 @@ var determineBuildTimeDependencies = function (packageSource) {
147148
148149 ret . directDependencies = { } ;
149150 _ . each ( resolver . resolve ( constraints ) , function ( version , packageName ) {
150- // Take only direct dependencies
151- if ( _ . has ( constraints , packageName ) )
151+ // Take only direct dependencies.
152+ if ( _ . has ( constraints , packageName ) ) {
152153 ret . directDependencies [ packageName ] = version ;
154+ }
153155 } ) ;
154156
155157 // -- Plugins --
@@ -211,17 +213,14 @@ var compileSlice = function (unipackage, inputSlice, packageLoader) {
211213 // not some unrelated package in the target has a dependency. And we
212214 // skip unordered dependencies, because it's not going to work to
213215 // have circular build-time dependencies.
214- //
215- // We pass archinfo.host here, not inputSlice.arch, because it may be more
216- // specific, and because plugins always have to run on the host
217- // architecture.
218- compiler . eachUsedSlice (
219- inputSlice . uses , archinfo . host ( ) , packageLoader ,
220- { skipWeak : true , skipUnordered : true } ,
221- function ( usedSlice ) {
222- activePluginPackages . push ( usedSlice . pkg ) ;
216+ _ . each ( inputSlice . uses , function ( dependency ) {
217+ console . log ( dependency ) ;
218+ if ( ! dependency . weak && ! dependency . unordered &&
219+ packageLoader . containsPlugins ( dependency . package ) ) {
220+ activePluginPackages . push (
221+ packageLoader . getPackage ( dependency . package ) ) ;
223222 }
224- ) ;
223+ } ) ;
225224
226225 activePluginPackages = _ . uniq ( activePluginPackages ) ;
227226
@@ -567,7 +566,7 @@ var compileSlice = function (unipackage, inputSlice, packageLoader) {
567566
568567 // *** Output slice object
569568 unipackage . addSlice ( {
570- sliceName : inputSlice . sliceName ,
569+ name : inputSlice . sliceName ,
571570 arch : inputSlice . arch , // XXX: arch?
572571 uses : inputSlice . uses ,
573572 implies : inputSlice . implies ,
@@ -699,7 +698,7 @@ compiler.compile = function (packageSource) {
699698// objects with keys 'name', 'version' (the latter a version
700699// string). Yes, it is possible that multiple versions of some other
701700// package might be build-time dependencies (because of plugins).
702- compiler . getBuildTimeDependencies = function ( packageSource ) {
701+ compiler . getBuildOrderConstraints = function ( packageSource ) {
703702 var versions = { } ; // map from package name to version to true
704703 var addVersion = function ( version , name ) {
705704 if ( ! _ . has ( versions , name ) )
@@ -708,7 +707,13 @@ compiler.getBuildTimeDependencies = function (packageSource) {
708707 } ;
709708
710709 var buildTimeDeps = determineBuildTimeDependencies ( packageSource ) ;
711- _ . each ( buildTimeDeps . directDependencies , addVersion ) ;
710+ _ . each ( buildTimeDeps . directDependencies , function ( version , name ) {
711+ // Direct dependencies only create a build-order constraint if they contain
712+ // a plugin.
713+ if ( catalog . catalog . getVersion ( name , version ) . containsPlugins ) {
714+ addVersion ( version , name ) ;
715+ }
716+ } ) ;
712717 _ . each ( buildTimeDeps . pluginDependencies , function ( versions , pluginName ) {
713718 _ . each ( versions , addVersion ) ;
714719 } ) ;
@@ -784,4 +789,4 @@ compiler.checkUpToDate = function (packageSource, unipackage) {
784789 return false ;
785790
786791 return true ;
787- } ;
792+ } ;
0 commit comments