class Cxxproject::UnixSharedLibs

Public Class Methods

new() click to toggle source
# File lib/cxxproject/buildingblocks/shared_libs_helper.rb, line 50
def initialize()
end

Public Instance Methods

calc(linker, bb) click to toggle source
# File lib/cxxproject/buildingblocks/shared_libs_helper.rb, line 73
def calc(linker, bb)
  return ["-Wl,-soname,#{get_soname(linker, bb)}"]
end
get_basic_name(linker, bb) click to toggle source

For :major=>1, minor=>2 fullname is ‘libfoo.so’

# File lib/cxxproject/buildingblocks/shared_libs_helper.rb, line 78
def get_basic_name(linker, bb)
  prefix = bb.get_output_prefix(linker)
  return "#{prefix}#{bb.name}#{bb.shared_suffix(linker)}"
end
get_soname(linker, bb) click to toggle source
For :major=>1, minor=>2 soname is 'libfoo.1.so'

def get_major(linker)

prefix = get_output_prefix(linker)
return "#{prefix}#{name}#{major_suffix}#{shared_suffix linker}"

end

# File lib/cxxproject/buildingblocks/shared_libs_helper.rb, line 68
def get_soname(linker, bb)
  prefix = bb.get_output_prefix(linker)
  "#{prefix}#{bb.name}#{major_suffix bb}#{bb.shared_suffix linker}"
end
get_version_suffix(linker, bb) click to toggle source

For :major=>1, minor=>2 fullname is ‘1.2.so’

# File lib/cxxproject/buildingblocks/shared_libs_helper.rb, line 54
def get_version_suffix(linker, bb)
  "#{major_suffix bb}#{[bb.major, bb.minor].compact.join('.')}"
end
major_suffix(bb) click to toggle source
# File lib/cxxproject/buildingblocks/shared_libs_helper.rb, line 58
def major_suffix(bb)
  bb.major ? ".#{bb.major}" : ''
end
post_link_hook(linker, bb) click to toggle source

Some symbolic links ln -s libfoo.so libfoo.1.2.so ln -s libfoo.1.so libfoo.1.2.so

# File lib/cxxproject/buildingblocks/shared_libs_helper.rb, line 86
def post_link_hook(linker, bb)
  basic_name = get_basic_name(linker, bb)
  soname = get_soname(linker, bb)
  symlink_lib_to(basic_name, bb)
  symlink_lib_to(soname, bb)
end