Class | Fortran90Dependency |
In: |
f90depend.rb
|
Parent: | Object |
# File f90depend.rb, line 20 20: def initialize(quiet=nil, strictly=nil) 21: @entries = [] 22: @quiet = quiet 23: @strictly = strictly 24: @progress = $stderr unless quiet 25: end
探査するファイルを追加する. 引数 files には Fortran90/95 ファイル名を与える. ファイルが存在しない場合, エラーを返す.
# File f90depend.rb, line 32 32: def add_files(*files) 33: files.flatten! 34: progress " Adding " 35: files.each{|file| 36: progress "." 37: entry = Fortran90DependencyEntry.new(file, @strictly) 38: @entries << entry if entry.modules 39: } 40: progress "\n" 41: @entries 42: end
探査するファイルリストから, ファイルを削除する. 引数 files には Fortran90/95 ファイル名を与える.
# File f90depend.rb, line 48 48: def del_files(*files) 49: files.flatten! 50: progress " Deleting " 51: files.each{|file| 52: @entries.collect!{|entry| 53: if File.expand_path(file) == File.expand_path(entry.file) 54: progress "." 55: next nil 56: else 57: next entry 58: end 59: } 60: @entries.delete_if{|entry| !entry } 61: } 62: progress "\n" 63: @entries 64: end
依存関係リストを作成する
# File f90depend.rb, line 69 69: def gen_list 70: dep_list = [] 71: progress " Generating " 72: @entries.each{|entry| 73: progress "." 74: dep_line = entry.file.sub(/\.f9(0|5)$/i, '.o') + ': ' 75: entry.uses.each{|use_item| 76: @entries.each{|checked_entry| 77: if checked_entry.modules.include?(use_item) 78: dep_line << checked_entry.file.sub(/\.f9(0|5)$/i, '.o') + ' ' 79: break 80: end 81: } 82: } 83: dep_list << dep_line 84: } 85: progress "\n" 86: dep_list.join("\n") 87: end