Class: Cxxproject::OsxSharedLibs

Inherits:
SharedLibsHelper show all
Defined in:
lib/cxxproject/buildingblocks/shared_libs_helper.rb

Instance Method Summary collapse

Methods inherited from SharedLibsHelper

#symlink_lib_to

Instance Method Details

#calc(linker, bb) ⇒ Object



14
15
16
17
18
19
20
21
22
23
24
25
# File 'lib/cxxproject/buildingblocks/shared_libs_helper.rb', line 14

def calc(linker, bb)
  flags = ['-install_name', bb.get_output_name(linker)]
  if bb.compatibility != nil
    flags << '-compatibility_version'
    flags << bb.compatibility
  end
  if bb.minor != nil
    flags << '-current_version'
    flags << bb.minor
  end
  flags
end

#get_basic_name(linker, bb) ⇒ Object

For :major=>A, minor=>1.0.1, compatibility=>1.0.0 basic is 'libfoo.A.so'



28
29
30
31
32
33
# File 'lib/cxxproject/buildingblocks/shared_libs_helper.rb', line 28

def get_basic_name(linker, bb)
  prefix = bb.get_output_prefix(linker)
  name = bb.name
  dylib = bb.shared_suffix linker
  return "#{prefix}#{name}#{dylib}"
end

#get_version_suffix(linker, bb) ⇒ Object



43
44
45
# File 'lib/cxxproject/buildingblocks/shared_libs_helper.rb', line 43

def get_version_suffix(linker, bb)
  bb.major ? ".#{bb.major}" : ''
end

#post_link_hook(linker, bb) ⇒ Object

Some symbolic links ln -s foo.dylib foo.A.dylib



38
39
40
41
# File 'lib/cxxproject/buildingblocks/shared_libs_helper.rb', line 38

def post_link_hook(linker, bb)
  basic_name = get_basic_name(linker, bb)
  symlink_lib_to(basic_name, bb)
end