Class: MxxRu::Cpp::CompositeTarget

Inherits:
Target show all
Defined in:
lib/mxx_ru/cpp/composite.rb

Overview

Composition of subprojects target

Direct Known Subclasses

LibCollectionTarget

Constant Summary

Constants inherited from Target

Target::Global_obj_placement_info, Target::OPT_LOCAL, Target::OPT_UPSPREAD

Instance Attribute Summary

Attributes inherited from Target

#mxx_c_files, #mxx_cpp_files, #mxx_encoding, #mxx_implib_path, #mxx_mswin_rc_file, #mxx_mswin_res_file, #mxx_obj_files, #mxx_optimization, #mxx_screen_mode, #mxx_sources_root, #mxx_target_ext, #mxx_target_name, #mxx_target_prefix, #mxx_target_root, #vc8_actual_manifest

Attributes inherited from AbstractTarget

#mxx_full_targets_names, #mxx_generators, #mxx_required_prjs

Instance Method Summary collapse

Methods inherited from Target

#c_source, #cpp_source, #create_full_result_target_file_name, #create_full_src_file_name, #create_full_target_file_name, define_spreadable_option_methods, #global_obj_placement, global_option_methods, #implib_path, initialize_spreadable_option_instance_variables, #mswin_rc_file, #mswin_res_file, #mxx_obj_placement, #mxx_runtime_mode, #obj_file, #obj_placement, #optimization, #screen_mode, #source_encoding, #sources_root, #target, #target_ext, #target_prefix, #target_root, #toolset, #vc8_source_manifest, #vc8_source_manifest=

Methods inherited from BinaryTarget

check_libraries_types, #lib, #lib_shared, #lib_static, #mxx_add_required_lib, #mxx_add_required_lib_path, #mxx_required_lib_paths, #mxx_required_libs

Methods inherited from AbstractTarget

define_plural_form_method, #generator, #mxx_add_full_target_name, #prj_alias, #required_prj, run

Constructor Details

#initialize(a_alias, &block) ⇒ CompositeTarget

Returns a new instance of CompositeTarget.



49
50
51
52
53
# File 'lib/mxx_ru/cpp/composite.rb', line 49

def initialize( a_alias, &block )
  super( a_alias )

  instance_eval( &block ) if block
end

Instance Method Details

#buildObject



59
60
61
62
63
64
65
66
67
68
69
# File 'lib/mxx_ru/cpp/composite.rb', line 59

def build
  if nil == @mxx_last_build_result

    check_all_options_definition

    @mxx_last_build_result = build_required_projects
  end

  return @mxx_last_build_result

end

#cleanObject



71
72
73
74
75
76
77
78
79
80
81
# File 'lib/mxx_ru/cpp/composite.rb', line 71

def clean
  if nil == @mxx_last_build_result

    check_all_options_definition

    clean_required_prjs

    @mxx_last_build_result = MxxRu::TargetState.new(
      MxxRu::TargetState::ABSENT )
  end
end

#resetObject



83
84
85
86
# File 'lib/mxx_ru/cpp/composite.rb', line 83

def reset
  reset_required_projects
  @mxx_last_build_result = nil
end

#target_typeObject



55
56
57
# File 'lib/mxx_ru/cpp/composite.rb', line 55

def target_type
  return CompositeTargetType.new
end