spec = Gem::Specification.new do |s| s.name = PROJ.name s.version = PROJ.version s.platform = Gem::Platform::RUBY s.extra_rdoc_files = ["README.rdoc", "LICENSE"] s.summary = PROJ.summary s.description = PROJ.description s.authors = Array(PROJ.authors) s.email = PROJ.email s.homepage = Array(PROJ.url).first s.rubyforge_project = PROJ.rubyforge.name s.extensions = %w(ext/ffi_c/extconf.rb gen/Rakefile) s.require_path = 'lib' s.files = PROJ.gem.files s.add_dependency *PROJ.gem.dependencies.flatten unless PROJ.gem.dependencies.empty? PROJ.gem.extras.each do |msg, val| case val when Proc val.call(s.send(msg)) else s.send "#{msg}=", val end end end Rake::ExtensionTask.new('ffi_c', spec) do |ext| ext.name = 'ffi_c' # indicate the name of the extension. # ext.lib_dir = BUILD_DIR # put binaries into this folder. ext.tmp_dir = BUILD_DIR # temporary folder used during compilation. ext.cross_compile = true # enable cross compilation (requires cross compile toolchain) ext.cross_platform = ['i386-mingw32'] # forces the Windows platform instead of the default one end if USE_RAKE_COMPILER