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