def app(params = {})
    incs    = compiler_incs_for(params[:includes])
    ldflags = params[:settings]['ADD_LDFLAGS'] + ' ' + @settings['LDFLAGS']
    objs    = params[:objects].join(' ')
    dep_libs = (params[:libs] + libs_for_binary(params[:app])).uniq
    libs    = linker_line_for(dep_libs)

    sh "#{@settings['SIZE']} #{objs} >#{params[:app]}.size" if @settings['SIZE']
    sh "#{@settings['CXX']} #{incs} #{objs} #{ldflags} #{libs} -o #{params[:app]}"
    sh "#{@settings['CXX']} #{incs} #{objs} #{ldflags} #{libs} -Wl,-Map,#{params[:app]}.map" if @config.generate_map
    sh "#{@settings['OBJCOPY']} -O binary #{params[:app]} #{params[:app]}.bin" if @config.generate_bin
    sh "#{@settings['OBJCOPY']} -O ihex #{params[:app]} #{params[:app]}.hex" if @config.generate_hex
    if (@config.stripped) && File.exist?(params[:app])
      FileUtils.cp(params[:app], "#{params[:app]}.unstripped", :verbose => true)
      sh "#{@settings['STRIP']} #{params[:app]}"
    end
  end
def app(params = {})
    incs    = compiler_incs_for(params[:includes])
    ldflags = params[:settings]['ADD_LDFLAGS'] + ' ' + @settings['LDFLAGS']
    objs    = params[:objects].join(' ')
    dep_libs = (params[:libs] + libs_for_binary(params[:app])).uniq
    libs    = linker_line_for(dep_libs)

    sh "#{@settings['SIZE']} #{objs} >#{params[:app]}.size" if @settings['SIZE']
    sh "#{@settings['CXX']} #{incs} #{objs} #{ldflags} #{libs} -o #{params[:app]}"
    sh "#{@settings['CXX']} #{incs} #{objs} #{ldflags} #{libs} -Wl,-Map,#{params[:app]}.map" if @config.generate_map
    sh "#{@settings['OBJCOPY']} -O binary #{params[:app]} #{params[:app]}.bin" if @config.generate_bin
    sh "#{@settings['OBJCOPY']} -O ihex #{params[:app]} #{params[:app]}.hex" if @config.generate_hex
    if (@config.stripped) && File.exist?(params[:app])
      FileUtils.cp(params[:app], "#{params[:app]}.unstripped", :verbose => true)
      sh "#{@settings['STRIP']} #{params[:app]}"
    end
  end
Creates application

 @param  [Hash] params
 @option params [Array]  :objects  array of object file paths
 @option params [Array]  :libs     array of libraries that should be linked against
 @option params [String] :app      application filename path
 @option params [Hash]   :settings project specific settings
 @option params [Array]  :includes include paths used