22 |
|
@ISA=qw(BuildSystem::ToolCache Utilities::Verbose); |
23 |
|
@EXPORT_OK=qw( ); |
24 |
|
# |
25 |
< |
# |
25 |
> |
|
26 |
|
sub new |
27 |
|
############################################################### |
28 |
|
# new # |
227 |
|
# Make sure that we have this tool in the list of selected tools (just in case this tool was |
228 |
|
# set up by hand afterwards): |
229 |
|
$self->addtoselected($toolname); |
230 |
+ |
|
231 |
+ |
# Check to see if this tool is a compiler. If so, store it. |
232 |
+ |
# Also store the language that this compiler supprots, and a |
233 |
+ |
# compiler name (e.g. gcc323) which, in conjunction with a stem |
234 |
+ |
# architecture name like slc3_ia32_, can be used to build a complete arch string: |
235 |
+ |
if ($store->scram_compiler() == 1) |
236 |
+ |
{ |
237 |
+ |
my @supported_language = $store->flags("SCRAM_LANGUAGE_TYPE"); |
238 |
+ |
my @compilername = $store->flags("SCRAM_COMPILER_NAME"); |
239 |
+ |
$self->scram_compiler($supported_language[0],$toolname,$compilername[0]); |
240 |
+ |
} |
241 |
+ |
|
242 |
|
# Store the ToolData object in the cache: |
243 |
|
$self->storeincache($toolparser->toolname(),$store); |
244 |
|
return $self; |
277 |
|
# See what kind of URL (file:, http:, cvs:, svn:, .. ): |
278 |
|
if ($proto eq 'file') |
279 |
|
{ |
280 |
+ |
# Check to see if there is a ~ and substitute the user |
281 |
+ |
# home directory if there is: |
282 |
+ |
my ($urlpath) = ($urlv =~ m|^\~/(.*)$|); |
283 |
+ |
$urlv = $ENV{HOME}."/".$urlpath; |
284 |
+ |
|
285 |
|
# If the tool url is a file and the file exists, |
286 |
|
# copy it to .SCRAM/InstalledTools and set the |
287 |
|
# filename accordingly: |
515 |
|
} |
516 |
|
else |
517 |
|
{ |
518 |
< |
print "Deleting $toolname from cache.","\n"; |
518 |
> |
# Is this tool a compiler? |
519 |
> |
if ($tooldata->scram_compiler() == 1) |
520 |
> |
{ |
521 |
> |
# Also remove this from the compiler info if there happens to be an entry: |
522 |
> |
while (my ($langtype, $ctool) = each %{$self->{SCRAM_COMPILER}}) |
523 |
> |
{ |
524 |
> |
if ($toolname eq $ctool->[0]) |
525 |
> |
{ |
526 |
> |
delete $self->{SCRAM_COMPILER}->{$langtype}; |
527 |
> |
print "Deleting compiler $toolname from cache.","\n"; |
528 |
> |
} |
529 |
> |
} |
530 |
> |
} |
531 |
> |
else |
532 |
> |
{ |
533 |
> |
print "Deleting $toolname from cache.","\n"; |
534 |
> |
} |
535 |
|
} |
536 |
|
} |
537 |
|
|
538 |
|
$self->{SETUP} = $newtlist; |
539 |
< |
|
539 |
> |
|
540 |
|
# Now remove from the RAW tool list: |
541 |
|
$self->cleanup_raw($toolname); |
509 |
– |
|
542 |
|
print "ToolManager: Updating tool cache.","\n"; |
543 |
|
$self->writecache(); |
544 |
|
} |
558 |
|
return $scram_projects; |
559 |
|
} |
560 |
|
|
561 |
+ |
sub scram_compiler() |
562 |
+ |
{ |
563 |
+ |
my $self=shift; |
564 |
+ |
my ($langtype, $toolname, $compilername)=@_; |
565 |
+ |
|
566 |
+ |
if ($langtype) |
567 |
+ |
{ |
568 |
+ |
# Store the compiler info according to supported |
569 |
+ |
# language types. |
570 |
+ |
# |
571 |
+ |
# ---------------------- e.g C++ cxxcompiler gcc323 |
572 |
+ |
$self->{SCRAM_COMPILER}->{$langtype}=[ $toolname, $compilername ]; |
573 |
+ |
} |
574 |
+ |
else |
575 |
+ |
{ |
576 |
+ |
return $self->{SCRAM_COMPILER}; |
577 |
+ |
} |
578 |
+ |
} |
579 |
+ |
|
580 |
|
1; |