⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 automakeworkspacehelper.pm

📁 ACE自适配通信环境(ADAPTIVE Communication Environment)是可以自由使用、开放源码的面向对象(OO)框架(Framework)
💻 PM
字号:
package AutomakeWorkspaceHelper;# ************************************************************# Description   : An Automake Workspace Helper# Author        : Chad Elliott# Create Date   : 9/01/2004# ************************************************************# ************************************************************# Pragmas# ************************************************************use strict;use FileHandle;use WorkspaceHelper;use vars qw(@ISA);@ISA = qw(WorkspaceHelper);# ************************************************************# Data Section# ************************************************************my(%vals)  = ('ACE_ROOT'      => '$(top_srcdir)',              'TAO_ROOT'      => '$(top_srcdir)',              'CIAO_ROOT'     => '$(top_srcdir)',              'ACE_BUILDDIR'  => '$(top_builddir)',              'TAO_BUILDDIR'  => '$(top_builddir)',              'CIAO_BUILDDIR' => '$(top_builddir)',              'TAO_IDL'       => 'ACE_ROOT=$(ACE_ROOT) TAO_ROOT=$(TAO_ROOT) $(TAO_BUILDDIR)/TAO_IDL/tao_idl' . "\n" .				 'TAO_IDL_DEP = $(TAO_BUILDDIR)/TAO_IDL/tao_idl' . "\n" .                                 'TAO_IDLFLAGS = -Ge 1 -Wb,pre_include=ace/pre.h -Wb,post_include=ace/post.h -I$(TAO_ROOT) -I$(srcdir) -g $(ACE_BUILDDIR)/apps/gperf/src/gperf',             );my(%addon) = ('ACE_ROOT'     => {'CIAO_ROOT'     => '/../..',                                 'TAO_ROOT'      => '/..',                                 'CIAO_BUILDDIR' => '/../..',                                 'TAO_BUILDDIR'  => '/..'},              'ACE_BUILDDIR' => {'CIAO_ROOT'     => '/../..',                                 'TAO_ROOT'      => '/..',                                 'CIAO_BUILDDIR' => '/../..',                                 'TAO_BUILDDIR'  => '/..'},              'TAO_ROOT'     => {'CIAO_ROOT'     => '/..',                                 'CIAO_BUILDDIR' => '/..'},              'TAO_BUILDDIR' => {'CIAO_ROOT'     => '/..',                                 'CIAO_BUILDDIR' => '/..'},             );# ************************************************************# Subroutine Section# ************************************************************sub modify_value {  my($self)  = shift;  my($name)  = shift;  my($value) = shift;  if ($name eq 'includedir') {    ## TAO/orbsvcs and TAO are like separate projects, so first    ## remove the TAO/orbsvcs part and if that doesn't work try    ## removing the TAO part.  The ACE related values don't need    ## any modification.    if (!($value =~ s/^\/TAO\/orbsvcs//)) {      $value =~ s/^\/TAO//;    }  }  return $value;}sub modify_libpath {  my($self)    = shift;  my($str)     = shift;  my($reldir)  = shift;  my($libname) = shift;  if ($libname =~ /libace/i) {    $str =~ s!$libname!\$(ACE_BUILDDIR)/$reldir/$libname!;    return $str;  }  elsif ($libname =~ /libtao/i) {    $reldir =~ s!TAO/!!;    $str =~ s!$libname!\$(TAO_BUILDDIR)/$reldir/$libname!;    return $str;  }  elsif ($libname =~ /libciao/i) {    $reldir =~ s!TAO/CIAO/!!;    $str =~ s!$libname!\$(CIAO_BUILDDIR)/$reldir/$libname!;    return $str;  }  return undef;}sub write_settings {  my($self)   = shift;  my($wsc)    = shift;  my($fh)     = shift;  my(@locals) = @_;  my($status) = 1;  my($error)  = undef;  my($crlf)   = $wsc->crlf();  my($pfh)    = new FileHandle();  my(%seen)   = ();  my($outdir) = $wsc->get_outdir();  foreach my $local (reverse @locals) {    if (open($pfh, "$outdir/$local")) {      while(<$pfh>) {        foreach my $key (keys %vals) {          if (/\$\($key\)/) {            $seen{$key} = $vals{$key};          }        }      }      close($pfh);    }    else {      $status = 0;      $error  = "Unable to open $local for reading.";    }  }  foreach my $key (sort keys %seen) {    print $fh "$key = $seen{$key}";    if (defined $addon{$key}) {      foreach my $add (        sort { length($addon{$key}->{$b}) <=>               length($addon{$key}->{$a}) } keys %{$addon{$key}}) {        if ($seen{$add}) {          print $fh $addon{$key}->{$add};          last;        }      }    }    print $fh $crlf;  }  print $fh $crlf;  return $status, $error;}1;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -