Mercurial > hg > CbC > CbC_xv6
comparison src/gearsTools/lib/Gears/Context.pm @ 181:f431400da994
fix_use_data_gears
author | anatofuz |
---|---|
date | Mon, 20 Jan 2020 17:10:58 +0900 |
parents | f9df567f7f2d |
children | d00a1d0758cb |
comparison
equal
deleted
inserted
replaced
180:f9df567f7f2d | 181:f431400da994 |
---|---|
25 | 25 |
26 | 26 |
27 sub extraction_dg_compile_sources { | 27 sub extraction_dg_compile_sources { |
28 my $self = shift; | 28 my $self = shift; |
29 my %counter; | 29 my %counter; |
30 my %include_pool = (); | |
30 for my $cbc_file (@{$self->{compile_sources}}) { | 31 for my $cbc_file (@{$self->{compile_sources}}) { |
31 open my $fh , '<', $cbc_file; | 32 open my $fh , '<', $cbc_file; |
32 while (my $line = <$fh>) { | 33 while (my $line = <$fh>) { |
33 if ($line =~ m|//\s*:skip|) { | 34 if ($line =~ m|//\s*:skip|) { |
34 next; | 35 next; |
35 } | 36 } |
36 | 37 |
37 if ($line =~ /#interface\s*"(.*)\.h"/ || $line =~ /^\/\/\s*data_gear\s*"(.*)\.(?:h|dg)?"/) { | 38 if ($line =~ /#interface\s*"(.*)\.h"/) { |
38 push(@{$counter{interfaces}->{$1}->{$cbc_file}},$.); | 39 push(@{$counter{interfaces}->{$1}->{$cbc_file}},$.); |
40 next; | |
41 } | |
42 | |
43 if ($line =~ /^\/\/\s*data_gear\s*"(.*)\.(?:h|dg)?"/) { | |
44 push(@{$include_pool{$1}->{$cbc_file}},$.); | |
39 next; | 45 next; |
40 } | 46 } |
41 | 47 |
42 if ($line =~ m|//\s*Skip:\s*generate_context|) { | 48 if ($line =~ m|//\s*Skip:\s*generate_context|) { |
43 $line = <$fh>; | 49 $line = <$fh>; |
103 } | 109 } |
104 } | 110 } |
105 } | 111 } |
106 close $fh; | 112 close $fh; |
107 } | 113 } |
114 | |
115 for my $cg_name (keys %include_pool) { | |
116 my @tmp_cbc_file_names = keys %{$include_pool{$cg_name}}; | |
117 my $tmp_cbc_file_name = shift @tmp_cbc_file_names; | |
118 if (exists $counter{interfaces}->{$cg_name}){ | |
119 push(@{$counter{interfaces}->{$cg_name}->{$tmp_cbc_file_name}},$include_pool{$cg_name}->{$tmp_cbc_file_name}); | |
120 delete $include_pool{$cg_name}; | |
121 last; | |
122 } | |
123 | |
124 if (exists $counter{impl}->{$cg_name}){ | |
125 push(@{$counter{impl}->{$cg_name}->{$tmp_cbc_file_name}},$include_pool{$cg_name}->{$tmp_cbc_file_name}); | |
126 delete $include_pool{$cg_name}; | |
127 last; | |
128 } | |
129 push(@{$counter{interfaces}->{$cg_name}->{$tmp_cbc_file_name}},$include_pool{$cg_name}->{$tmp_cbc_file_name}); | |
130 delete $include_pool{$cg_name}; | |
131 } | |
132 | |
108 $counter{interfaces}->{Meta}++; | 133 $counter{interfaces}->{Meta}++; |
109 $counter{interfaces}->{TaskManager}++; | 134 $counter{interfaces}->{TaskManager}++; |
110 $self->{data_gears_with_count}->{Meta}++; | 135 print "-----------\n"; |
111 $self->{data_gears_with_count}->{TaskManager}++; | |
112 use Data::Dumper; | 136 use Data::Dumper; |
113 print "-----------\n"; | |
114 print Dumper \%counter; | 137 print Dumper \%counter; |
115 print "-----------\n"; | 138 print "-----------\n"; |
116 return \%counter; | 139 return \%counter; |
117 } | 140 } |
118 | 141 |