class MDK::Project_set
Constants
- TOOLCHAIN
Public Class Methods
new(project_data, generator_variable, logger = nil)
click to toggle source
initialize EWW
class PARAMS:
-
project_data: specific project data format for a application/library
-
generator_variable: all dependency in hash
# File lib/ebngen/adapter/mdk.rb, line 393 def initialize(project_data, generator_variable, logger = nil) @logger = logger unless (logger) @logger = Logger.new(STDOUT) @logger.level = Logger::WARN end set_hash(project_data) @project_name = get_project_name() @board = get_board() @paths = PathModifier.new(generator_variable["paths"]) @all_projects_hash = generator_variable["all"] @mdk_project_files = {"project_mpw" => nil,".xsd" => nil} return nil if get_template(Project_set::TOOLCHAIN).nil? get_template(Project_set::TOOLCHAIN).each do |template| ext = File.extname(template) if @mdk_project_files.keys.include?(ext) path = @paths.fullpath("default_path",template) case ext when ".xsd" fn = File.basename(path, ".xsd") @logger.info "#{fn} processing" if fn == "project_mpw" #doc = Nokogiri::XML(open(path)) string_xml = XsdPopulator.new(:xsd => path).populated_xml doc = Nokogiri::XML(string_xml) @mdk_project_files['project_mpw'] = doc init_project_set(doc, get_default_projectset_settings(Project_set::TOOLCHAIN)) end else @logger.info "#{ext} not processed" end end end end
Public Instance Methods
add_project_to_set()
click to toggle source
# File lib/ebngen/adapter/mdk.rb, line 435 def add_project_to_set() return if @mdk_project_files.nil? return if @mdk_project_files['project_mpw'].nil? ext = "project_mpw" #add projects file = "#{@project_name}_#{@board}.uvprojx" add_project(@mdk_project_files[ext], file) #add library projects here #get from dependency['libraries'][library_name] ustruct = @all_projects_hash return if get_libraries(Project_set::TOOLCHAIN).nil? get_libraries(Project_set::TOOLCHAIN).each do |lib| if ustruct[lib].nil? @logger.info "#{lib} information is missing in all hash" next end libname = "#{@project_name}" root = @paths.rootdir_table[@ustruct[library][tool_key]['outdir']['root-dir']] lib_path = File.join(root, @ustruct[library][tool_key]['outdir']['path'], libname) if @ustruct[ project_name ][ tool_key ].has_key?('outdir') wspath = File.join(@output_rootdir, @ustruct[ project_name ][ tool_key ][ 'outdir' ] ) else wspath = @output_rootdir end path = Pathname.new(lib_path).relative_path_from(Pathname.new(wspath)) add_project(@mdk_project_files[ext], path) end end
generator()
click to toggle source
# File lib/ebngen/adapter/mdk.rb, line 428 def generator() return if not is_toolchain_support(Project::TOOLCHAIN) add_project_to_set() save_set() end
save_set()
click to toggle source
# File lib/ebngen/adapter/mdk.rb, line 466 def save_set() path = get_output_dir(Project_set::TOOLCHAIN, @paths.rootdir_table) @logger.info @paths.rootdir_table['output_root'] @logger.info path @logger.info "#{@project_name}_#{@board}" if path.class == Hash save(@mdk_project_files['project_mpw'], File.join(@paths.rootdir_table[path['rootdir']], path['path'], "#{@project_name}_#{@board}.uvmpw")) else save(@mdk_project_files['project_mpw'], File.join(@paths.rootdir_table['output_root'], path, "#{@project_name}_#{@board}.uvmpw")) end end