Class: Rscons::Builders::Library

Inherits:
Rscons::Builder show all
Includes:
Mixins::ObjectDeps
Defined in:
lib/rscons/builders/library.rb

Overview

A default Rscons builder that produces a static library archive.

Instance Attribute Summary

Attributes inherited from Rscons::Builder

#build_step, #cache, #env, #preferred_ld, #side_effects, #sources, #target, #vars

Instance Method Summary collapse

Methods included from Mixins::ObjectDeps

#register_object_deps

Methods inherited from Rscons::Builder

#depends, extra_path, #finalize_command, name, #name, #print_run_message, #produces, #register_command, #standard_command, #wait_for

Constructor Details

#initialize(options) ⇒ Library

Create an instance of the Builder to build a target.



9
10
11
12
# File 'lib/rscons/builders/library.rb', line 9

def initialize(options)
  super(options)
  @objects = register_object_deps(Object)
end

Instance Method Details

#run(options) ⇒ Object

Run the builder to produce a build target.



15
16
17
18
19
20
21
22
23
24
25
# File 'lib/rscons/builders/library.rb', line 15

def run(options)
  if @command
    finalize_command(sources: @objects)
    true
  else
    @vars["_TARGET"] = @target
    @vars["_SOURCES"] = @objects
    command = @env.build_command("${ARCMD}", @vars)
    standard_command("Building static library archive <target>#{@target}<reset>", command, sources: @objects)
  end
end