Line 68... |
Line 68... |
|
|
Getopt::Long::config("require_order", "prefix=-");
|
Getopt::Long::config("require_order", "prefix=-");
|
GetOptions("h","help",
|
GetOptions("h","help",
|
"prefix=s" => \$prefix,
|
"prefix=s" => \$prefix,
|
"vendor=s" => \$vendor,
|
"vendor=s" => \$vendor,
|
"project=s" => \$project,
|
"library=s" => \$library,
|
"component=s" => \$component,
|
"component=s" => \$component,
|
"version=s" => \$version
|
"version=s" => \$version
|
) || die "(use '$program_name -h' for help)";
|
) || die "(use '$program_name -h' for help)";
|
|
|
|
|
##############################################################################
|
##############################################################################
|
## Help option
|
## Help option
|
##############################################################################
|
##############################################################################
|
if ( $opt_h or $opt_help ) { print "\n build_generate -prefix /work -vendor vendor_name -project project_name -component component_name -version version_name ";
|
if ( $opt_h or $opt_help ) { print "\n build_generate -prefix /work -vendor vendor_name -library library_name -component component_name -version version_name ";
|
print "\n";
|
print "\n";
|
exit 1;
|
exit 1;
|
}
|
}
|
|
|
|
|
Line 99... |
Line 99... |
#############################################################################
|
#############################################################################
|
|
|
|
|
|
|
|
|
print "\nGENERATE $prefix $vendor $project $component $version \n" ;
|
#print "\n FFFFFFFFFFFF GENERATE $prefix $vendor $library $component $version \n" ;
|
|
|
|
|
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,$library,$component);
|
|
|
|
|
|
|
|
|
|
|
Line 121... |
Line 121... |
#/ Create filelists for simulation, synthesis and linting */
|
#/ Create filelists for simulation, synthesis and linting */
|
#/ */
|
#/ */
|
#/ */
|
#/ */
|
#/*********************************************************************************************/
|
#/*********************************************************************************************/
|
|
|
my @filelist = yp::lib::parse_component_brothers("$vendor","$project","$component","$version");
|
my @filelist = yp::lib::parse_component_brothers("$vendor","$library","$component","$version");
|
|
|
foreach $line (@filelist)
|
foreach $line (@filelist)
|
{
|
{
|
$_ = $line;
|
$_ = $line;
|
if(/::(\S+)::(\S+)::(\S+)::(\S+)::/)
|
if(/::(\S+)::(\S+)::(\S+)::(\S+)::/)
|
{
|
{
|
$new_project = $2;
|
$new_library = $2;
|
$new_component = $3;
|
$new_component = $3;
|
$new_vendor = $1;
|
$new_vendor = $1;
|
$new_version = $4;
|
$new_version = $4;
|
# print " FFFFFFFFFFFFFFFF Brother $new_vendor $new_project $new_component $new_version \n" ;
|
# print " FFFFFFFFFFFFFFFF Brother $new_vendor $new_library $new_component $new_version \n" ;
|
|
|
my $spirit_component_file = $parser->parse_file(yp::lib::find_ipxact_component($new_vendor,$new_project,$new_component,$new_version));
|
my $spirit_component_file = $parser->parse_file(yp::lib::find_ipxact_component($new_vendor,$new_library,$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('../spirit:name/text()')->to_literal ;
|
my($gen_name) = $i_name ->findnodes('../spirit:name/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 ;
|
# print " FFFFFFFFFFFFFFFF $gen_name $gen_generatorExe \n" ;
|
# print " FFFFFFFFFFFFFFFF $gen_name $gen_generatorExe \n" ;
|
|
|
my $cmd;
|
my $cmd;
|
$cmd = " -prefix $prefix -vendor $vendor -project $project -component $component -version $version ";
|
$cmd = " -prefix $prefix -vendor $vendor -library $library -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 ;
|
|
|
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}__${library}${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}__${library}${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";}
|
}
|
}
|
|
|
foreach my $i_name ($spirit_component_file->findnodes("//spirit:componentGenerator[spirit:name/text() = '$gen_name']/spirit:vendorExtensions/socgen:envIdentifier"))
|
foreach my $i_name ($spirit_component_file->findnodes("//spirit:componentGenerator[spirit:name/text() = '$gen_name']/spirit:vendorExtensions/socgen:envIdentifier"))
|