dep_target_os = @os
end
- sub_pkgs = @pkgsvr_client.get_install_dependent_packages(dep.package_name,
- dep_target_os, false, true)
+ pkg_names = [ dep.package_name ]
+ if not @parent.nil? and @parent.type == "MULTIBUILD" then
+ old_count = 0
+ while pkg_names.count != old_count
+ old_count = pkg_names.count
+ new_names = []
+ pkg_names.each { |p|
+ @parent.sub_jobs.each { |j|
+ new_names += j.pkginfo.get_install_dependencies(dep_target_os, p).map {|j| j.package_name}
+ }
+ }
+ pkg_names += new_names
+ pkg_names.uniq!
+ end
+ end
# search
- pkg_names = [ dep.package_name ]
- pkg_names += sub_pkgs
- pkg_names.uniq!
pkg_names.each { |pkg_name|
binpkgs = Dir.glob("#{src_path}/#{pkg_name}_*_#{dep_target_os}.zip")
if binpkgs.count > 0 then
# scan all install dependencies
- def get_install_dependencies( target_os )
+ def get_install_dependencies( target_os, pkg_name=nil )
# for all
list = []
for pkg in @packages
+ if not pkg_name.nil? and pkg.package_name != pkg_name then next end
# only package that used in target os
if not pkg.os_list.include?(target_os)
next