Rake::ExtensionTask

Attributes

config_includes[RW]
config_script[RW]
cross_compile[RW]
cross_config_options[RW]
cross_platform[RW]
no_native[RW]

Public Instance Methods

binary(platform = nil) click to toggle source
# File lib/rake/extensiontask.rb, line 39
def binary(platform = nil)
  if platform == "java"
    "#{name}.#{RbConfig::MAKEFILE_CONFIG['DLEXT']}"
  else
    super
  end
end
cross_compiling(&block) click to toggle source
# File lib/rake/extensiontask.rb, line 35
def cross_compiling(&block)
  @cross_compiling = block if block_given?
end
define() click to toggle source
# File lib/rake/extensiontask.rb, line 47
def define
  if (defined?(RUBY_ENGINE) && RUBY_ENGINE == 'ironruby')
    warn_once WARNING: You're attempting to (cross-)compile C extensions from a platform(#{RUBY_ENGINE}) that does not support native extensions or mkmf.rb.Rerun `rake` under MRI Ruby 1.8.x/1.9.x to cross/native compile.
    return
  end

  super

  unless compiled_files.empty?
    warn "WARNING: rake-compiler found compiled files in '#{@ext_dir}' directory. Please remove them."
  end

  # only gems with 'ruby' platforms are allowed to define native tasks
  define_native_tasks if !@no_native && (@gem_spec && @gem_spec.platform == 'ruby')

  # only define cross platform functionality when enabled
  return unless @cross_compile

  if cross_platform.is_a?(Array) then
    cross_platform.each { |platf| define_cross_platform_tasks(platf) }
  else
    define_cross_platform_tasks(cross_platform)
  end
end
init(name = nil, gem_spec = nil) click to toggle source
# File lib/rake/extensiontask.rb, line 19
def init(name = nil, gem_spec = nil)
  super
  @config_script = 'extconf.rb'
  @source_pattern = "*.c"
  @compiled_pattern = "*.{o,obj,so,bundle,dSYM}"
  @cross_compile = false
  @cross_config_options = []
  @cross_compiling = nil
  @no_native = false
  @config_includes = []
end

[Validate]

Generated with the Darkfish Rdoc Generator 2.