Module: CmdLine

Defined in:
lib/akro.rb

Overview

Module with overrideable command line functions

Class Method Summary collapse

Class Method Details

.compile_base_cmdline(mode, src) ⇒ Object



135
136
137
138
139
140
141
# File 'lib/akro.rb', line 135

def CmdLine.compile_base_cmdline(mode, src)
  per_file_flags = $PER_FILE_COMPILE_FLAGS.call(mode, src)
  if per_file_flags.size() > 0
    per_file_flags = " " + per_file_flags
  end
  "#{$COMPILER_PREFIX}#{$COMPILER} #{$COMPILE_FLAGS} #{$MODE_COMPILE_FLAGS[mode]}#{per_file_flags}"
end

.compile_cmdline(mode, src, obj) ⇒ Object



145
146
147
# File 'lib/akro.rb', line 145

def CmdLine.compile_cmdline(mode, src, obj)
  "#{CmdLine.compile_base_cmdline(mode, src)} -c #{src} -o #{obj}"
end

.dependency_cmdline(mode, src) ⇒ Object



142
143
144
# File 'lib/akro.rb', line 142

def CmdLine.dependency_cmdline(mode, src)
  "#{CmdLine.compile_base_cmdline(mode, src)} -M #{src}"
end

.dynamic_lib_cmdline(mode, objs, additional_params, bin) ⇒ Object



156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
# File 'lib/akro.rb', line 156

def CmdLine.dynamic_lib_cmdline(mode, objs, additional_params, bin)
  if !additional_params.nil?
    if additional_params.kind_of?(Array)
      extra_params = " " + objs.join(" ")
    elsif additional_params.respond_to?(:to_str)
      extra_params = " " + additional_params.to_str
    else
      raise "Additional params to a dynamic library must be either a string or an array of strings"
    end
  else
    extra_params = ""
  end
  soname = if bin.include?("/") then FileMapper.strip_mode(bin) else bin end
  "#{$LINKER_PREFIX}#{$COMPILER} -shared #{$COMPILE_FLAGS} #{$MODE_COMPILE_FLAGS[mode]} -Wl,-soname,#{soname} -o #{bin} #{objs.join(' ')}#{extra_params}"
end


148
149
150
151
152
# File 'lib/akro.rb', line 148

def CmdLine.link_cmdline(mode, objs, bin)
  nomodebin = FileMapper.strip_mode(bin)
  per_file_flags = if $BIN_EXTRA_FLAGS.has_key?(nomodebin) then " " + $BIN_EXTRA_FLAGS[nomodebin] else "" end
  "#{$LINKER_PREFIX}#{$LINKER} #{$LINK_FLAGS} #{objs.join(' ')} #{$ADDITIONAL_LINK_FLAGS}#{per_file_flags} #{$MODE_LINK_FLAGS[mode]} -o #{bin}"
end

.static_lib_cmdline(objs, bin) ⇒ Object



153
154
155
# File 'lib/akro.rb', line 153

def CmdLine.static_lib_cmdline(objs, bin)
  "#{$AR} rcs #{bin} #{objs.join(' ')}"
end