class PaperHouse::SharedLibraryTask
Compiles *.c files into a shared library.
Attributes
version[RW]
Library version string.
Public Class Methods
new(name, version = nil, &block)
click to toggle source
Defines a rake task called name
that builds a shared library. Note that version number must be set as the version
argument or in the block
to build the library.
@yield [task] @example
PaperHouse::SharedLibraryTask.new :libhello do |task| task.version = '0.1.0' task.sources = 'hello.c' task.library_dependencies = 'm' end
Calls superclass method
PaperHouse::LibraryTask::new
# File lib/paper_house/shared_library_task.rb, line 27 def initialize(name, version = nil, &block) @version = version super name, &block end
Public Instance Methods
linker_name()
click to toggle source
Name of library used by linkers.
# File lib/paper_house/shared_library_task.rb, line 40 def linker_name library_name + '.so' end
soname()
click to toggle source
Soname of target library.
# File lib/paper_house/shared_library_task.rb, line 45 def soname File.basename(target_file_name).sub(/\.\d+\.\d+\Z/, '') end
target_file_name()
click to toggle source
Real name of target library.
# File lib/paper_house/shared_library_task.rb, line 33 def target_file_name fail 'version option is a mandatory.' unless @version [linker_name, @version].join '.' end
Also aliased as: real_name
Private Instance Methods
cc_options()
click to toggle source
# File lib/paper_house/shared_library_task.rb, line 51 def cc_options ['-shared', wl_option, o_option, objects, ldflags, l_options].flatten end
o_option()
click to toggle source
# File lib/paper_house/shared_library_task.rb, line 59 def o_option "-o #{target_path}" end
wl_option()
click to toggle source
# File lib/paper_house/shared_library_task.rb, line 55 def wl_option "-Wl,#{SONAME_OPTION},#{soname}" end