lib/dev/BoostBuild.rb in dev-1.0.89 vs lib/dev/BoostBuild.rb in dev-1.0.90
- old
+ new
@@ -6,7 +6,59 @@
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
\ No newline at end of file