Module: Cxxproject

Includes:
Utils
Defined in:
lib/cxxproject/buildingblocks/module.rb,
lib/cxxproject/context.rb,
lib/cxxproject/version.rb,
lib/cxxproject/ext/rake.rb,
lib/cxxproject/utils/utils.rb,
lib/cxxproject/ide_interface.rb,
lib/cxxproject/utils/cleanup.rb,
lib/cxxproject/utils/printer.rb,
lib/cxxproject/plugin_context.rb,
lib/cxxproject/utils/optional.rb,
lib/cxxproject/utils/exit_helper.rb,
lib/cxxproject/utils/graphstream.rb,
lib/cxxproject/toolchain/provider.rb,
lib/cxxproject/utils/rbcurse_progress.rb,
lib/cxxproject/buildingblocks/linkable.rb,
lib/cxxproject/buildingblocks/makefile.rb,
lib/cxxproject/utils/rbcurse_tasktable.rb,
lib/cxxproject/errorparser/error_parser.rb,
lib/cxxproject/buildingblocks/command_line.rb,
lib/cxxproject/buildingblocks/single_source.rb,
lib/cxxproject/utils/rbcurse_executable_ext.rb,
lib/cxxproject/buildingblocks/binary_library.rb,
lib/cxxproject/buildingblocks/building_block.rb,
lib/cxxproject/buildingblocks/static_library.rb,
lib/cxxproject/toolchain/colorizing_formatter.rb,
lib/cxxproject/buildingblocks/has_sources_mixin.rb,
lib/cxxproject/buildingblocks/has_includes_mixin.rb,
lib/cxxproject/buildingblocks/shared_libs_helper.rb,
lib/cxxproject/buildingblocks/has_libraries_mixin.rb,
lib/cxxproject/buildingblocks/custom_building_block.rb,
lib/cxxproject/buildingblocks/has_dependencies_mixin.rb

Overview

todo...

Defined Under Namespace

Modules: Context, HasDependencies, HasIncludes, HasLibraries, HasSources, SingleSourceModule, Toolchain, Utils Classes: BinaryLibrary, BuildingBlock, ColorizingFormatter, CommandLine, CustomBuildingBlock, ErrorDesc, ErrorParser, Executable, ExitHelper, ExitHelperException, IDEInterface, Linkable, Makefile, ModuleBuildingBlock, OsxSharedLibs, PluginContext, Printer, SharedLibrary, SharedLibsHelper, SingleSource, StaticLibrary, SystemCommandFailed, UnixSharedLibs, Version

Constant Summary collapse

VERSION =
'0.6.31'
ALL_BUILDING_BLOCKS =

stores all defined buildingblocks by name (the name should be unique)

{}

Class Method Summary collapse

Methods included from Utils

cleanup_rake, deep_copy, old_ruby?, optional_package

Class Method Details

.add_unique(res, bb) ⇒ Object



33
34
35
36
# File 'lib/cxxproject/buildingblocks/building_block.rb', line 33

def self.add_unique(res, bb)
  res.delete(bb)
  res.push(bb)
end

.find_by_tag(tag) ⇒ Object



38
39
40
# File 'lib/cxxproject/buildingblocks/building_block.rb', line 38

def self.find_by_tag(tag)
  ALL_BUILDING_BLOCKS.values.find_all{|o|o.tags.include?(tag)}
end

.resolve_by_name(name) ⇒ Object



27
28
29
30
31
# File 'lib/cxxproject/buildingblocks/building_block.rb', line 27

def self.resolve_by_name(name)
  res = ALL_BUILDING_BLOCKS[name]
  raise "BuildingBlock #{name} not defined" unless res
  res
end

.sorted_building_blocks ⇒ Object



16
17
18
19
20
21
22
23
24
25
# File 'lib/cxxproject/buildingblocks/building_block.rb', line 16

def self.sorted_building_blocks
  todo = ALL_BUILDING_BLOCKS.keys.dup
  res = []
  while not todo.empty?
    bb = resolve_by_name(todo.pop)
    add_unique(res, bb)
    todo += bb.dependencies
  end
  return res.reverse
end