Class: MDK::Project_set
- Inherits:
-
Object
- Object
- MDK::Project_set
- Includes:
- UNI_Project, UVMWP
- Defined in:
- lib/ebngen/adapter/mdk.rb
Constant Summary collapse
- TOOLCHAIN =
'mdk'
Instance Method Summary collapse
- #add_project_to_set ⇒ Object
- #generator ⇒ Object
-
#initialize(project_data, generator_variable, logger = nil) ⇒ Project_set
constructor
PARAMS: - project_data: specific project data format for a application/library - generator_variable: all dependency in hash.
- #save_set ⇒ Object
Methods included from UNI_Project
#get_board, #get_default_project_settings, #get_default_projectset_settings, #get_libraries, #get_output_dir, #get_project_name, #get_src_list, #get_target_list, #get_targets, #get_template, #get_type, #is_toolchain_support, #set_hash
Methods included from UVMWP
#add_node, #add_project, #init_project_set, #save, #travesernode
Constructor Details
#initialize(project_data, generator_variable, logger = nil) ⇒ Project_set
PARAMS:
-
project_data: specific project data format for a application/library
-
generator_variable: all dependency in hash
393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 |
# 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 |
Instance Method Details
#add_project_to_set ⇒ Object
435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 |
# 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 ⇒ Object
428 429 430 431 432 |
# 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 ⇒ Object
466 467 468 469 470 471 472 473 474 475 476 |
# 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 |