Method: Rscons::Builders::SharedLibrary#run

Defined in:
lib/rscons/builders/shared_library.rb

#run(options) ⇒ String, false

Run the builder to produce a build target.

Parameters:

  • options (Hash)

    Builder run options.

Returns:

  • (String, false)

    Name of the target file on success or false on failure.



81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
# File 'lib/rscons/builders/shared_library.rb', line 81

def run(options)
  target, sources, cache, env, vars, objects = options.values_at(:target, :sources, :cache, :env, :vars, :setup_info)
  ld = env.expand_varref("${SHLD}", vars)
  ld = if ld != ""
         ld
       elsif sources.find {|s| s.end_with?(*env.expand_varref("${DSUFFIX}", vars))}
         "${SHDC}"
       elsif sources.find {|s| s.end_with?(*env.expand_varref("${CXXSUFFIX}", vars))}
         "${SHCXX}"
       else
         "${SHCC}"
       end
  vars = vars.merge({
    '_TARGET' => target,
    '_SOURCES' => objects,
    'SHLD' => ld,
  })
  options[:sources] = objects
  command = env.build_command("${SHLDCMD}", vars)
  standard_threaded_build("SHLD #{target}", target, command, objects, env, cache)
end