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