Class: Dev::BoostBuild

Inherits:
Object
  • Object
show all
Defined in:
lib/dev/BoostBuild.rb

Class Method Summary collapse

Class Method Details

.buildJamfile(directory) ⇒ Object



36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
# File 'lib/dev/BoostBuild.rb', line 36

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

.defaultToolsetObject



3
4
5
6
7
8
9
10
11
12
13
14
# File 'lib/dev/BoostBuild.rb', line 3

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

.getJamfileLine(filename) ⇒ Object



53
54
55
56
57
58
# File 'lib/dev/BoostBuild.rb', line 53

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

.getLibraryProperties(filename) ⇒ Object



16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
# File 'lib/dev/BoostBuild.rb', line 16

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.index("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

.getToolset(name) ⇒ Object



60
61
62
63
64
65
66
67
# File 'lib/dev/BoostBuild.rb', line 60

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