Advertisement
Guest User

Untitled

a guest
Oct 18th, 2019
110
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.97 KB | None | 0 0
  1. @pwd = Dir.pwd
  2. @package_list = []
  3.  
  4. class DirInfo
  5. attr_accessor :x86d, :x86r, :x64d, :x64r
  6.  
  7. def initialize()
  8. @x86d = []
  9. @x86r = []
  10. @x64d = []
  11. @x64r = []
  12. end
  13. end
  14.  
  15. class Package
  16. attr_accessor :name, :include_list, :library_list, :depend_list, :library_info, :depend_info
  17.  
  18. def initialize(name)
  19. @name = name
  20. @include_list = []
  21. @library_list = []
  22. @depend_list = []
  23. @library_info = DirInfo.new
  24. @depend_info = DirInfo.new
  25. end
  26.  
  27. def empty?()
  28. @include_list.length == 0 &&
  29. @library_list.length == 0 &&
  30. @depend_list.length == 0
  31. end
  32. end
  33.  
  34.  
  35. def include_lib_or_dll(path)
  36. if File.file?(path)
  37. return false
  38. end
  39. count = 0
  40. Dir.open(path) do |dir|
  41. dir.each do |file|
  42. if file.end_with?(".lib") || file.end_with?(".dll")
  43. count += 1
  44. end
  45. end
  46. end
  47. count > 0
  48. end
  49.  
  50. def find_dir(dest, packagePath)
  51. Dir.open(packagePath) do |dir|
  52. dir.each do |file|
  53. next if file == '.' || file == '..'
  54. path = packagePath + '/' + file
  55. if File.directory?(path)
  56. find_dir(dest, path)
  57. end
  58. if path.include?("include") && !path.include?("include/") && File.directory?(path)
  59. dest.include_list << path
  60. end
  61. if include_lib_or_dll(path) && path.include?("lib") && File.directory?(path)
  62. dest.library_list << path
  63. end
  64. if path.include?("lib") && File.file?(path)
  65. dest.depend_list << path
  66. end
  67. end
  68. end
  69. end
  70.  
  71. def check_package(name, packagePath)
  72. pack = Package.new(name)
  73. @package_list << pack
  74. find_dir(pack, packagePath)
  75. end
  76.  
  77. def include_debug(str)
  78. str.include?("Debug") || str.include?("debug")
  79. end
  80.  
  81. def include_release(str)
  82. str.include?("Release") || str.include?("release")
  83. end
  84.  
  85. def puts_ret(obj)
  86. puts " " + obj
  87. obj
  88. end
  89.  
  90. def is_x86(str)
  91. str.include?("Win32") || str.include?("win32")|| str.include?("x86")
  92. end
  93.  
  94. def is_x64(str)
  95. str.include?("Win64") || str.include?("win64") || str.include?("x64")
  96. end
  97.  
  98. def puts_x86x64(name, srcList, info)
  99. #32
  100. puts " x86(Debug) " + name
  101. srcList
  102. .select {|e| is_x86(e) && include_debug(e)}
  103. .each {|e| info.x86d << puts_ret(e) }
  104. puts " x86(Release) " + name
  105. srcList
  106. .select {|e| is_x86(e) && include_release(e)}
  107. .each {|e| info.x86r << puts_ret(e) }
  108. #64
  109. puts " x64(Debug) " + name
  110. srcList
  111. .select {|e| is_x64(e) && include_debug(e)}
  112. .each {|e| info.x64d << puts_ret(e) }
  113. puts " x64(Release) " + name
  114. srcList
  115. .select {|e| is_x64(e) && include_release(e)}
  116. .each {|e| info.x64r << puts_ret(e) }
  117. end
  118.  
  119. Dir.open("packages") do |dir|
  120. dir.each do |file|
  121. next if file == '.' || file == '..'
  122. path = @pwd + '/packages/' + file
  123. if File.directory?(path)
  124. check_package(file, path)
  125. end
  126. end
  127. end
  128.  
  129. includeStr = ""
  130.  
  131. @package_list.each do |pac|
  132. next if pac.empty?
  133. puts pac.name
  134. # Include
  135. puts " Include"
  136. pac.include_list.each {|e| puts (" " + e)}
  137. # Library
  138. puts_x86x64(
  139. "Libeary",
  140. pac.library_list,
  141. pac.library_info)
  142. # Depend
  143. puts_x86x64(
  144. "Depend",
  145. pac.depend_list,
  146. pac.depend_info)
  147. end
  148.  
  149. puts ""
  150. puts ""
  151. puts ("Windows32 Debug")
  152. @package_list.each do |pac|
  153. pac.include_list.each do |e|
  154. puts e.gsub(@pwd + "/", "$(SolutionDir)")
  155. end
  156. end
  157. puts "-"
  158. @package_list.each do |pac|
  159. pac.library_info.x86d.each do |e|
  160. next if e.include?("ltcg")
  161. next if e.include?("dynamic")
  162. puts e.gsub(@pwd + "/", "$(SolutionDir)")
  163. end
  164. end
  165. puts "-"
  166. @package_list.each do |pac|
  167. pac.depend_info.x86d.each do |e|
  168. next if e.include?("ltcg")
  169. next if e.include?(".dll")
  170. next if e.include?("dynamic")
  171. puts e.gsub(@pwd + "/", "$(SolutionDir)")
  172. end
  173. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement