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