Line 105... |
Line 105... |
|
|
|
|
my $parser = XML::LibXML->new();
|
my $parser = XML::LibXML->new();
|
|
|
my $lib_comp_sep = yp::lib::find_lib_comp_sep($vendor,$project,$component);
|
my $lib_comp_sep = yp::lib::find_lib_comp_sep($vendor,$project,$component);
|
my $spirit_component_file = $parser->parse_file(yp::lib::find_ipxact("spirit:component",$vendor,$project,$component,$version));
|
|
|
|
foreach my $view ($spirit_component_file->findnodes('//spirit:component/spirit:model/spirit:views/spirit:view'))
|
|
{
|
|
my($view_name) = $view->findnodes('./spirit:name/text()')->to_literal ;
|
|
|
|
#/**********************************************************************/
|
|
#/* */
|
|
#/* */
|
|
#/* */
|
|
#/* */
|
|
#/* */
|
|
#/**********************************************************************/
|
|
|
#/*********************************************************************************************/
|
|
#/ */
|
|
#/ Create filelists for simulation, synthesis and linting */
|
|
#/ */
|
|
#/ */
|
|
#/*********************************************************************************************/
|
|
|
|
my @filelist = yp::lib::parse_component_brothers("$vendor","$project","$component","$version");
|
|
|
|
foreach $line (@filelist)
|
|
{
|
|
$_ = $line;
|
|
if(/::(\S+)::(\S+)::(\S+)::(\S+)::/)
|
|
{
|
|
$new_project = $2;
|
|
$new_component = $3;
|
|
$new_vendor = $1;
|
|
$new_version = $4;
|
|
# print " FFFFFFFFFFFFFFFF Brother $new_vendor $new_project $new_component $new_version \n" ;
|
|
|
|
my $spirit_component_file = $parser->parse_file(yp::lib::find_ipxact("spirit:component",$new_vendor,$new_project,$new_component,$new_version));
|
|
|
foreach my $i_name ($spirit_component_file->findnodes("//spirit:componentGenerator/spirit:name"))
|
foreach my $i_name ($spirit_component_file->findnodes("//spirit:componentGenerator/spirit:name"))
|
{
|
{
|
my($gen_name) = $i_name ->findnodes('./text()')->to_literal ;
|
my($gen_name) = $i_name ->findnodes('../spirit:name/text()')->to_literal ;
|
my($gen_phase) = $i_name ->findnodes('../spirit:phase/text()')->to_literal ;
|
|
my($gen_apiType) = $i_name ->findnodes('../spirit:apiType/text()')->to_literal ;
|
|
my($gen_generatorExe) = $i_name ->findnodes('../spirit:generatorExe/text()')->to_literal ;
|
my($gen_generatorExe) = $i_name ->findnodes('../spirit:generatorExe/text()')->to_literal ;
|
my($gen_group) = $i_name ->findnodes('../spirit:group/text()')->to_literal ;
|
# print " FFFFFFFFFFFFFFFF $gen_name $gen_generatorExe \n" ;
|
|
|
my $cmd;
|
my $cmd;
|
$cmd =
|
$cmd = " -prefix $prefix -vendor $vendor -project $project -component $component -version $version ";
|
"${gen_generatorExe} -view $view_name -prefix $prefix -vendor $vendor -project $project -component $component -version $version ";
|
|
|
|
foreach my $i_name ($spirit_component_file->findnodes("//spirit:componentGenerator[spirit:name/text() = '$gen_name']/spirit:parameters/spirit:parameter"))
|
foreach my $i_name ($spirit_component_file->findnodes("//spirit:componentGenerator[spirit:name/text() = '$gen_name']/spirit:parameters/spirit:parameter"))
|
{
|
{
|
my($gen_param) = $i_name ->findnodes('./spirit:value/text()')->to_literal ;
|
my($gen_param) = $i_name ->findnodes('./spirit:value/text()')->to_literal ;
|
my($gen_param_name) = $i_name ->findnodes('./spirit:name/text()')->to_literal ;
|
my($gen_param_name) = $i_name ->findnodes('./spirit:name/text()')->to_literal ;
|
Line 141... |
Line 155... |
if ($gen_param_name eq "in_pipe") {$cmd = "$cmd <${home}${prefix}/${vendor}__${project}${lib_comp_sep}/${component}/${gen_param}";}
|
if ($gen_param_name eq "in_pipe") {$cmd = "$cmd <${home}${prefix}/${vendor}__${project}${lib_comp_sep}/${component}/${gen_param}";}
|
elsif($gen_param_name eq "out_pipe") {$cmd = "$cmd >${home}${prefix}/${vendor}__${project}${lib_comp_sep}/${component}/${gen_param}";}
|
elsif($gen_param_name eq "out_pipe") {$cmd = "$cmd >${home}${prefix}/${vendor}__${project}${lib_comp_sep}/${component}/${gen_param}";}
|
elsif($gen_param_name) {$cmd = "$cmd -${gen_param_name} $gen_param ";}
|
elsif($gen_param_name) {$cmd = "$cmd -${gen_param_name} $gen_param ";}
|
else {$cmd = "$cmd $gen_param";}
|
else {$cmd = "$cmd $gen_param";}
|
}
|
}
|
$cmd = "${cmd}\n";
|
|
|
|
if($gen_group)
|
foreach my $i_name ($spirit_component_file->findnodes("//spirit:componentGenerator[spirit:name/text() = '$gen_name']/spirit:vendorExtensions/socgen:envIdentifier"))
|
{
|
{
|
if($gen_group eq $view_name )
|
my($gen_envidentifier) = $i_name ->findnodes('./text()')->to_literal ;
|
|
|
|
my $New_cmd = " ${gen_generatorExe} -envidentifier $gen_envidentifier ${cmd}\n";
|
|
if(${gen_generatorExe} )
|
{
|
{
|
if (system($cmd)) {}
|
if (system($New_cmd)) {}
|
}
|
}
|
}
|
}
|
else
|
|
{
|
|
if (system($cmd)) {}
|
|
}
|
}
|
}
|
}
|
}
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1
|
1
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|