Class: Cxxproject::UnixSharedLibs
- Inherits:
-
SharedLibsHelper
- Object
- SharedLibsHelper
- Cxxproject::UnixSharedLibs
- Defined in:
- lib/cxxproject/buildingblocks/shared_libs_helper.rb
Instance Method Summary collapse
- #calc(linker, bb) ⇒ Object
-
#get_basic_name(linker, bb) ⇒ Object
For :major=>1, minor=>2 fullname is 'libfoo.so'.
-
#get_soname(linker, bb) ⇒ Object
For :major=>1, minor=>2 soname is 'libfoo.1.so' def get_major(linker) prefix = get_output_prefix(linker) return "#prefix#name##major_suffix#linker" end.
-
#get_version_suffix(linker, bb) ⇒ Object
For :major=>1, minor=>2 fullname is '1.2.so'.
-
#initialize ⇒ UnixSharedLibs
constructor
A new instance of UnixSharedLibs.
- #major_suffix(bb) ⇒ Object
-
#post_link_hook(linker, bb) ⇒ Object
Some symbolic links ln -s libfoo.so libfoo.1.2.so ln -s libfoo.1.so libfoo.1.2.so.
Methods inherited from SharedLibsHelper
Constructor Details
#initialize ⇒ UnixSharedLibs
Returns a new instance of UnixSharedLibs.
50 51 |
# File 'lib/cxxproject/buildingblocks/shared_libs_helper.rb', line 50 def initialize() end |
Instance Method Details
#calc(linker, bb) ⇒ Object
73 74 75 |
# 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) ⇒ Object
For :major=>1, minor=>2 fullname is 'libfoo.so'
78 79 80 81 |
# 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) ⇒ Object
For :major=>1, minor=>2 soname is 'libfoo.1.so' def get_major(linker) prefix = get_output_prefix(linker) return "#prefix#name##major_suffix#linker" end
68 69 70 71 |
# 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) ⇒ Object
For :major=>1, minor=>2 fullname is '1.2.so'
54 55 56 |
# 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) ⇒ Object
58 59 60 |
# File 'lib/cxxproject/buildingblocks/shared_libs_helper.rb', line 58 def major_suffix(bb) bb.major ? ".#{bb.major}" : '' end |
#post_link_hook(linker, bb) ⇒ Object
Some symbolic links ln -s libfoo.so libfoo.1.2.so ln -s libfoo.1.so libfoo.1.2.so
86 87 88 89 90 91 |
# 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 |