class Daedalus::Library
Attributes
sources[R]
Public Class Methods
new(path, base, compiler) { |self| ... }
click to toggle source
# File lib/daedalus.rb 631 def initialize(path, base, compiler) 632 @base = base 633 @compiler = compiler 634 635 @directory = File.dirname path 636 @library = File.basename path 637 @sources = [] 638 639 yield self if block_given? 640 641 source_files "#{path}.c" if @sources.empty? 642 end
Public Instance Methods
clean()
click to toggle source
# File lib/daedalus.rb 681 def clean 682 Dir.chdir @base do 683 @sources.each { |s| s.clean } 684 File.delete name if File.exist? name 685 end 686 end
consider(compiler, tasks)
click to toggle source
# File lib/daedalus.rb 677 def consider(compiler, tasks) 678 tasks.pre << self if out_of_date? compiler 679 end
name()
click to toggle source
# File lib/daedalus.rb 648 def name 649 File.join @directory, library 650 end
object_files()
click to toggle source
# File lib/daedalus.rb 662 def object_files 663 @sources.map { |s| s.object_path } 664 end
out_of_date?(compiler)
click to toggle source
# File lib/daedalus.rb 666 def out_of_date?(compiler) 667 Dir.chdir @base do 668 return true unless File.exist? name 669 @sources.each do |s| 670 return true unless File.exist? s.object_path 671 return true if File.mtime(s.object_path) > File.mtime(name) 672 end 673 @sources.any? { |s| s.out_of_date? compiler } 674 end 675 end
path()
click to toggle source
# File lib/daedalus.rb 644 def path 645 File.join @base, @directory, library 646 end
source_files(*patterns)
click to toggle source
# File lib/daedalus.rb 652 def source_files(*patterns) 653 Dir.chdir @base do 654 patterns.each do |t| 655 Dir[t].each do |f| 656 @sources << SourceFile.new(f) 657 end 658 end 659 end 660 end