Sha256: e23a3383608695a83fe494f0f1e63f81bec25ad7f2dd5c0248851d9b1f6d81a2

Contents?: true

Size: 1.32 KB

Versions: 186

Compression:

Stored size: 1.32 KB

Contents

module Rake

  # Makefile loader to be used with the import file loader.  Use this to
  # import dependencies from make dependency tools:
  #
  #   require 'rake/loaders/makefile'
  #
  #   file ".depends.mf" => [SRC_LIST] do |t|
  #     sh "makedepend -f- -- #{CFLAGS} -- #{t.prerequisites} > #{t.name}"
  #   end
  #
  #   import ".depends.mf"
  #
  # See {Importing Dependencies}[link:doc/rakefile_rdoc.html#label-Importing+Dependencies]
  # for further details.

  class MakefileLoader
    include Rake::DSL

    SPACE_MARK = "\0" # :nodoc:

    # Load the makefile dependencies in +fn+.
    def load(fn) # :nodoc:
      lines = File.read fn
      lines.gsub!(/\\ /, SPACE_MARK)
      lines.gsub!(/#[^\n]*\n/m, "")
      lines.gsub!(/\\\n/, ' ')
      lines.each_line do |line|
        process_line(line)
      end
    end

    private

    # Process one logical line of makefile data.
    def process_line(line) # :nodoc:
      file_tasks, args = line.split(':', 2)
      return if args.nil?
      dependents = args.split.map { |d| respace(d) }
      file_tasks.scan(/\S+/) do |file_task|
        file_task = respace(file_task)
        file file_task => dependents
      end
    end

    def respace(str) # :nodoc:
      str.tr SPACE_MARK, ' '
    end
  end

  # Install the handler
  Rake.application.add_loader('mf', MakefileLoader.new)
end

Version data entries

186 entries across 172 versions & 54 rubygems

Version Path
mercadopago-custom-checkout-0.2.0 .gs/gems/rake-10.5.0/lib/rake/loaders/makefile.rb
video_chat_get-0.1.9 vendor/bundle/ruby/2.5.0/gems/rake-10.5.0/lib/rake/loaders/makefile.rb
video_chat_get-0.1.6 vendor/bundle/ruby/2.5.0/gems/rake-10.5.0/lib/rake/loaders/makefile.rb
lotrd-0.1.9 vendor/cache/ruby/2.6.0/gems/rake-10.5.0/lib/rake/loaders/makefile.rb
lotrd-0.1.8 vendor/cache/ruby/2.6.0/gems/rake-10.5.0/lib/rake/loaders/makefile.rb
lotrd-0.1.6 vendor/cache/ruby/2.6.0/gems/rake-10.5.0/lib/rake/loaders/makefile.rb
lotrd-0.1.5 vendor/cache/ruby/2.6.0/gems/rake-10.5.0/lib/rake/loaders/makefile.rb
video_chat_get-0.1.5 vendor/bundle/ruby/2.5.0/gems/rake-10.5.0/lib/rake/loaders/makefile.rb
video_chat_get-0.1.4 vendor/bundle/ruby/2.5.0/gems/rake-10.5.0/lib/rake/loaders/makefile.rb
video_chat_get-0.1.3 vendor/bundle/ruby/2.5.0/gems/rake-10.5.0/lib/rake/loaders/makefile.rb
video_chat_get-0.1.2 vendor/bundle/ruby/2.5.0/gems/rake-10.5.0/lib/rake/loaders/makefile.rb
video_chat_get-0.1.1 vendor/bundle/ruby/2.5.0/gems/rake-10.5.0/lib/rake/loaders/makefile.rb
video_chat_get-0.1.0 vendor/bundle/ruby/2.5.0/gems/rake-10.5.0/lib/rake/loaders/makefile.rb
josufst_palindrome-0.2.0 vendor/cache/gems/rake-10.5.0/lib/rake/loaders/makefile.rb
josufst_palindrome-0.2.0 vendor/cache/ruby/2.6.0/gems/rake-10.5.0/lib/rake/loaders/makefile.rb
josufst_palindrome-0.1.1 vendor/cache/gems/rake-10.5.0/lib/rake/loaders/makefile.rb
josufst_palindrome-0.1.1 vendor/cache/ruby/2.6.0/gems/rake-10.5.0/lib/rake/loaders/makefile.rb
nlmt-wrappers-0.0.1 vendor/bundle/ruby/2.6.0/gems/rake-10.5.0/lib/rake/loaders/makefile.rb
jscop-0.1.2 vendor/cache/ruby/2.6.0/gems/rake-10.5.0/lib/rake/loaders/makefile.rb
argon-1.3.1 vendor/bundle/ruby/2.7.0/gems/rake-10.5.0/lib/rake/loaders/makefile.rb