Sha256: 42e0c4868e6807827d1af2a5fdc17e8f977b1941be8dd43ee1a81557a16842d2

Contents?: true

Size: 1.35 KB

Versions: 6983

Compression:

Stored size: 1.35 KB

Contents

# frozen_string_literal: true
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

6,983 entries across 6,871 versions & 99 rubygems

Version Path
affixapi-1.1.102 vendor/bundle/ruby/3.3.0/gems/rake-13.0.6/lib/rake/loaders/makefile.rb
mux_ruby-3.20.0 vendor/bundle/ruby/3.2.0/gems/rake-13.0.6/lib/rake/loaders/makefile.rb
cybrid_api_bank_ruby-0.123.12 vendor/bundle/ruby/3.3.0/gems/rake-13.0.6/lib/rake/loaders/makefile.rb
cybrid_api_organization_ruby-0.123.12 vendor/bundle/ruby/3.3.0/gems/rake-13.0.6/lib/rake/loaders/makefile.rb
cybrid_api_id_ruby-0.123.12 vendor/bundle/ruby/3.3.0/gems/rake-13.0.6/lib/rake/loaders/makefile.rb
cybrid_api_bank_ruby-0.123.11 vendor/bundle/ruby/3.3.0/gems/rake-13.0.6/lib/rake/loaders/makefile.rb
cybrid_api_organization_ruby-0.123.11 vendor/bundle/ruby/3.3.0/gems/rake-13.0.6/lib/rake/loaders/makefile.rb
cybrid_api_id_ruby-0.123.11 vendor/bundle/ruby/3.3.0/gems/rake-13.0.6/lib/rake/loaders/makefile.rb
cybrid_api_id_ruby-0.123.10 vendor/bundle/ruby/3.3.0/gems/rake-13.0.6/lib/rake/loaders/makefile.rb
cybrid_api_bank_ruby-0.123.10 vendor/bundle/ruby/3.3.0/gems/rake-13.0.6/lib/rake/loaders/makefile.rb
cybrid_api_organization_ruby-0.123.10 vendor/bundle/ruby/3.3.0/gems/rake-13.0.6/lib/rake/loaders/makefile.rb
cybrid_api_organization_ruby-0.123.7 vendor/bundle/ruby/3.3.0/gems/rake-13.0.6/lib/rake/loaders/makefile.rb
cybrid_api_id_ruby-0.123.7 vendor/bundle/ruby/3.3.0/gems/rake-13.0.6/lib/rake/loaders/makefile.rb
cybrid_api_bank_ruby-0.123.7 vendor/bundle/ruby/3.3.0/gems/rake-13.0.6/lib/rake/loaders/makefile.rb
ory-client-1.15.12 vendor/bundle/ruby/3.1.0/gems/rake-13.0.6/lib/rake/loaders/makefile.rb
cybrid_api_bank_ruby-0.123.4 vendor/bundle/ruby/3.3.0/gems/rake-13.0.6/lib/rake/loaders/makefile.rb
cybrid_api_id_ruby-0.123.4 vendor/bundle/ruby/3.3.0/gems/rake-13.0.6/lib/rake/loaders/makefile.rb
cybrid_api_organization_ruby-0.123.4 vendor/bundle/ruby/3.3.0/gems/rake-13.0.6/lib/rake/loaders/makefile.rb
cybrid_api_bank_ruby-0.123.3 vendor/bundle/ruby/3.3.0/gems/rake-13.0.6/lib/rake/loaders/makefile.rb
cybrid_api_organization_ruby-0.123.3 vendor/bundle/ruby/3.3.0/gems/rake-13.0.6/lib/rake/loaders/makefile.rb