Sha256: 2b5636a57a7258acb9a11270c11d702b388832ea1a1e2634e9707a06b45cfa52
Contents?: true
Size: 1.29 KB
Versions: 1
Compression:
Stored size: 1.29 KB
Contents
module RbPlusPlus module Writers # Writes out the code for building the extension. # This writer takes care of building the extconf.rb # file with the appropriate options. class ExtensionWriter < Base # List of -I directives attr_accessor :includes # List of -L directives attr_accessor :library_paths # List of -l directives attr_accessor :libraries # Extra CXXFLAGS attr_accessor :cxxflags # Extra LDFLAGS attr_accessor :ldflags def write extconf = File.join(working_dir, "extconf.rb") @includes ||= [] inc_str = @includes.flatten.uniq.map {|i| "-I#{i}"}.join(" ") inc_str += " " + @cxxflags.flatten.join(" ") lib_path_str = @library_paths.flatten.uniq.map {|i| "-L#{i}"}.join(" ") lib_str = @libraries.flatten.uniq.map {|i| "-l#{i}"}.join(" ") lib_str += " " + @ldflags.flatten.join(" ") File.open(extconf, "w+") do |file| file.puts "require \"rubygems\"" file.puts "require \"mkmf-rice\"" file.puts %Q($CPPFLAGS = $CPPFLAGS + " -I#{working_dir} #{inc_str}") file.puts %Q($LDFLAGS = $LDFLAGS + " #{lib_path_str} #{lib_str}") file.puts "create_makefile(\"#{builder.name}\")" end end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
rbplusplus-0.1.1 | lib/rbplusplus/writers/extension.rb |