Class: ReleaseInvoker

Inherits:
Object show all
Defined in:
lib/ceedling/release_invoker.rb

Instance Method Summary collapse

Instance Method Details

#artifactinate(*files) ⇒ Object



58
59
60
61
62
# File 'lib/ceedling/release_invoker.rb', line 58

def artifactinate( *files )
  files.flatten.each do |file|
    @file_wrapper.cp( file, @configurator.project_release_artifacts_path ) if @file_wrapper.exist?( file )
  end
end

#collect_release_build_objectsObject



15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
# File 'lib/ceedling/release_invoker.rb', line 15

def collect_release_build_objects()
  objects = []

  @batchinator.build_step( "Determining Objects to be Built", heading: false ) do
    objects.concat(
      @file_path_utils.form_release_build_objects_filelist(
        @configurator.collection_release_build_input
      )
    )

    objects.concat(
      @file_path_utils.form_release_build_objects_filelist(
        @configurator.collection_release_artifact_extra_link_objects
      )
    )
  end

  return objects    
end

#convert_libraries_to_arguments(libraries) ⇒ Object



64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
# File 'lib/ceedling/release_invoker.rb', line 64

def convert_libraries_to_arguments(libraries)
  args =
    (libraries || []) + 
    ((defined? LIBRARIES_SYSTEM) ? LIBRARIES_SYSTEM : []) +
    ((defined? LIBRARIES_RELEASE) ? LIBRARIES_RELEASE : [])

  args.flatten!
  args.compact!

  if (defined? LIBRARIES_FLAG)
    args.map! {|v| LIBRARIES_FLAG.gsub(/\$\{1\}/, v) }
  end

  return args
end

#get_library_paths_to_argumentsObject



80
81
82
83
84
85
86
# File 'lib/ceedling/release_invoker.rb', line 80

def get_library_paths_to_arguments()
  paths = (defined? PATHS_LIBRARIES) ? (PATHS_LIBRARIES || []).clone : []
  if (defined? LIBRARIES_PATH_FLAG)
    paths.map! {|v| LIBRARIES_PATH_FLAG.gsub(/\$\{1\}/, v) }
  end
  return paths
end

#setup_and_invoke_binary(filepath) ⇒ Object



47
48
49
50
51
52
53
54
55
56
# File 'lib/ceedling/release_invoker.rb', line 47

def setup_and_invoke_binary( filepath )
  @batchinator.build_step( "Building Binary" ) do
    @rake_wrapper[filepath].invoke
  end

  banner = @reportinator.generate_banner(
    @loginator.decorate( File.basename( filepath ), LogLabels::TITLE )
  )
  @loginator.log( "\n" + banner + "\n" )
end

#setup_and_invoke_objects(files) ⇒ Object



35
36
37
38
39
40
41
42
43
44
45
# File 'lib/ceedling/release_invoker.rb', line 35

def setup_and_invoke_objects( files )
  objects = @file_path_utils.form_release_build_objects_filelist( files )

  @batchinator.build_step( "Building Objects" ) do
    @batchinator.exec(workload: :compile, things: objects) do |object|
      @rake_wrapper[object].invoke
    end    
  end

  return objects
end

#sort_objects_and_libraries(both) ⇒ Object



88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
# File 'lib/ceedling/release_invoker.rb', line 88

def sort_objects_and_libraries(both)
  extension = if ((defined? EXTENSION_SUBPROJECTS) && (defined? EXTENSION_LIBRARIES))
    extension_libraries = if (EXTENSION_LIBRARIES.class == Array)
                            EXTENSION_LIBRARIES.join(")|(?:\\")
                          else
                            EXTENSION_LIBRARIES
                          end
    "(?:\\#{EXTENSION_SUBPROJECTS})|(?:\\#{extension_libraries})"
  elsif (defined? EXTENSION_SUBPROJECTS)
    "\\#{EXTENSION_SUBPROJECTS}"
  elsif (defined? EXTENSION_LIBRARIES)
    if (EXTENSION_LIBRARIES.class == Array)
      "(?:\\#{EXTENSION_LIBRARIES.join(")|(?:\\")})"
    else
      "\\#{EXTENSION_LIBRARIES}"
    end
  else
    "\\.LIBRARY"
  end
  sorted_objects = both.group_by {|v| v.match(/.+#{extension}$/) ? :libraries : :objects }
  libraries = sorted_objects[:libraries] || []
  objects   = sorted_objects[:objects]   || []
  return objects, libraries
end