# $Id: IDLHelper.pm 95101 2011-11-23 14:40:43Z mcorino $

package IDLHelper;

use strict;
use CommandHelper;
our @ISA = qw(CommandHelper);

sub get_output {
  my($self, $file, $flags) = @_;
  my @out;

  # handle generated executor files (if any)
  if ($flags =~ /-Gex/ && !($flags =~ /-oN/)) {
    my $gendir = '';
    if ($flags =~ /-oE\s*(\S+)/) {
      $gendir = $1;
      if (!($gendir =~ /(\\|\/)$/)) {
        $gendir .= '/';
      }
    }
    $file =~ /^(.*)(\.p?idl)$/;
    push(@out, $gendir.$1."_exec.h");
    push(@out, $gendir.$1."_exec.cpp");
  }
  if ($flags =~ /-Gxhex/ && $flags =~ /-Wb,exec_export_include=(\S*)/) {
    push(@out, $1);
  }
  if ($flags =~ /-Gxhst/) {
    if ($flags =~ /-Wb,stub_export_file=(\S*)/) {
      push(@out, $1);
    } elsif ($flags =~ /-Wb,stub_export_include=(\S*)/) {
      push(@out, $1);
    }
  }
  if ($flags =~ /-Gxhsk/) {
    if ($flags =~ /-Wb,skel_export_file=(\S*)/) {
      push(@out, $1);
    } elsif ($flags =~ /-Wb,skel_export_include=(\S*)/) {
      push(@out, $1);
    }
  }
  if ($flags =~ /-Gxhsv/ && $flags =~ /-Wb,svnt_export_include=(\S*)/) {
    push(@out, $1);
  }
  if ($flags =~ /-Gxhcn/ && $flags =~ /-Wb,conn_export_include=(\S*)/) {
    push(@out, $1);
  }

  return \@out;
}

sub get_outputexts {
  return ['\\.h']; #this is a regexp pattern, so . gets escaped
}

1;
