Mercurial > hg > Gears > Gears
changeset 657:3e3f282d62e4
refactoring Gears perl modules
author | anatofuz <anatofuz@cr.ie.u-ryukyu.ac.jp> |
---|---|
date | Mon, 17 Aug 2020 20:44:34 +0900 |
parents | 0aa2e7cde328 |
children | 9f8527f5ab9d |
files | src/parallel_execution/lib/Gears/Context.pm src/parallel_execution/lib/Gears/Util.pm |
diffstat | 2 files changed, 28 insertions(+), 36 deletions(-) [+] |
line wrap: on
line diff
--- a/src/parallel_execution/lib/Gears/Context.pm Sun Aug 16 14:13:12 2020 +0900 +++ b/src/parallel_execution/lib/Gears/Context.pm Mon Aug 17 20:44:34 2020 +0900 @@ -32,11 +32,32 @@ return Gears::Util->extraction_dg_compile_sources($compile_sources); } +sub _docking_header_name_to_path { + my ($root_path, $data_gears_name) = @_; + my %res; + map { $res{$_}++ } @$data_gears_name; + + my $header_paths = Gears::Util->find_headers_from_path($root_path); + map { + if (/(\w+)\.(?:h|dg)$/) { + my $header_file = $1; + if (exists $res{$header_file}) { + if ($res{$header_file} =~ /^\d+$/){ + $res{$header_file} = $_; + } elsif (($_ =~ /\.dg$/) && ($res{$header_file} =~ /\.h$/)) { + $res{$header_file} = $_; + } + } + } + } sort @$header_paths; + return \%res; +} + sub set_data_gear_header_path { my $self = shift; my @data_gears_name; map { push (@data_gears_name,$_) if $_ ne "Context" } @_; - return Gears::Util->docking_header_name_to_path($self->{find_root},\@data_gears_name); + return _docking_header_name_to_path($self->{find_root},\@data_gears_name); } sub update_dg_each_header_path {
--- a/src/parallel_execution/lib/Gears/Util.pm Sun Aug 16 14:13:12 2020 +0900 +++ b/src/parallel_execution/lib/Gears/Util.pm Mon Aug 17 20:44:34 2020 +0900 @@ -158,26 +158,17 @@ my $header_name = shift; my $find_path = shift // "."; - my @header_list = (); + my $header_list = Gears::Util->find_headers_from_path($find_path); - find( - { - wanted => sub { - if ($_ =~ /\/$header_name\.(h|dg)$/) { - push(@header_list,$_); - } - }, - no_chdir => 1, - }, - $find_path); - my @find_headers = grep { $_ =~ /\/$header_name\.(h|dg)/} @header_list; - if (@find_headers > 1) { - @find_headers = grep { $_ =~ /\/$header_name\.dg/} @find_headers; + my @find_headers = grep { $_ =~ /\/$header_name\.(h|dg)/} @{$header_list}; + + if (@find_headers > 1) { # @find_headers == (hoge.h, hoge.dg) + @find_headers = grep { $_ =~ /\/$header_name\.dg/} @find_headers; #only dg } return shift @find_headers; } -sub find_headers_path { +sub find_headers_from_path { my $class = shift; my $find_path = shift // "."; @@ -304,25 +295,5 @@ return \%counter; } -sub docking_header_name_to_path { - my ($class, $search_bash_path, $targets) = @_; - my %res; - map { $res{$_}++ } @$targets; - - my $header_paths = Gears::Util->find_headers_path($search_bash_path); - map { - if (/(\w+)\.(?:h|dg)$/) { - my $header_file = $1; - if (exists $res{$header_file}) { - if ($res{$header_file} =~ /^\d+$/){ - $res{$header_file} = $_; - } elsif (($_ =~ /\.dg$/) && ($res{$header_file} =~ /\.h$/)) { - $res{$header_file} = $_; - } - } - } - } sort @$header_paths; - return \%res; -} 1;