| 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