Sha256: 9fe8413b78d742db0d896b2bb036abfae500f1c318bc25290c6b8bc7145710f0

Contents?: true

Size: 1.94 KB

Versions: 1

Compression:

Stored size: 1.94 KB

Contents

module Dev
class BoostBuild
  def self.defaultToolset
    text=`b2 --debug-configuration` 
	toolset=''
    text.scan(/<toolset>([\.\w-]+)/).each{ | var_match |
	 toolset=var_match[0].to_s
	}
    return toolset
  end

  def self.getLibraryProperties(filename)
    words=filename.split('-')
	flags=words[2];
	flags = flags + "-" + words[3] if words.length == 5
	result="<toolset>" + getToolset(words[1])
	link="static"
	link="shared" if filename.indexOf("lib") != 0
	link="shared" if filename.include?(".so")
    result = result + " <link>" + link + " " 
	result = result + " <variant>release " if !flags.include?("d")
	result = result + " <variant>debug " if flags.include?("d")
	result = result + " <threading>multi " if flags.include?("mt")
	result = result + " <threading>single " if !flags.include?("mt")
	result = result + " <runtime-link>shared " if !flags.include?("s")
	result = result + " <runtime-link>static " if flags.include?("s")
	result = result + " <runtime-debugging>off " if !flags.include?("g")
	result = result + " <runtime-debugging>on " if flags.include?("g")
	result = result ";"
  end

  def self.buildJamfile(directory)
    jamfilename=directory+"/Jamfile"
	if(File.exists?(jamfilename))
	  puts "Jamfile already exists."
	  return
	end
    if(File.exists?(directory))
	  Dir.chdir(directory) do
	    File.open(jamfilename,'w') { |jamfile|
	      Dir.glob("*boost_*").each {|f|
		    jamfile.puts getJamfileLine(f)
		  }
		}
	  end
	end
  end

  def self.getJamfileLine(filename)
    words=filename.split('-')
	library = words[0]
	library = library[3,library.length-3] if library.indexOf("lib") == 0
	return "lib " + library + " : : <file>./" + filename + " " + getLibraryProperties(filename)
  end

  def self.getToolset(name)
    toolset = "msvc"
    toolset = "msvc-9.0" if name=='vc90'
    toolset = "msvc-10.0" if name=='vc100'
	toolset = "msvc-11.0" if name=='vc110'
	return toolset
  end
end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
dev-1.0.90 lib/dev/BoostBuild.rb