Class: Rscons::Builders::SharedLibrary
- Inherits:
-
Rscons::Builder
- Object
- Rscons::Builder
- Rscons::Builders::SharedLibrary
- Includes:
- Mixins::ObjectDeps, Mixins::Program
- Defined in:
- lib/rscons/builders/shared_library.rb
Overview
A default Rscons builder that knows how to link object files into a shared library.
Instance Attribute Summary
Attributes inherited from Rscons::Builder
#build_step, #cache, #env, #preferred_ld, #side_effects, #sources, #target, #vars
Class Method Summary collapse
-
.new(options, *more) ⇒ Object
Custom new method which will delegate to the correct class depending on the options specified.
Instance Method Summary collapse
-
#initialize(options) ⇒ SharedLibrary
constructor
Create an instance of the Builder to build a target.
Methods included from Mixins::Program
Methods included from Mixins::ObjectDeps
Methods inherited from Rscons::Builder
#depends, extra_path, #finalize_command, name, #name, #print_run_message, #produces, #register_command, #run, #standard_command, #wait_for
Constructor Details
#initialize(options) ⇒ SharedLibrary
Create an instance of the Builder to build a target.
30 31 32 33 |
# File 'lib/rscons/builders/shared_library.rb', line 30 def initialize() super() @objects = register_object_deps(SharedObject) end |
Class Method Details
.new(options, *more) ⇒ Object
Custom new method which will delegate to the correct class depending on the options specified.
13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
# File 'lib/rscons/builders/shared_library.rb', line 13 def new(, *more) libprefix = [:env].("${SHLIBPREFIX}", [:vars]) unless File.basename([:target]).start_with?(libprefix) [:target] = [:target].sub!(%r{^(.*/)?([^/]+)$}, "\\1#{libprefix}\\2") end unless File.basename([:target])["."] [:target] += [:env].("${SHLIBSUFFIX}", [:vars]) end if [:vars][:direct] SharedObject.new(, *more) else super end end |