summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorelliott_c <ocielliottc@users.noreply.github.com>2005-05-27 12:59:45 +0000
committerelliott_c <ocielliottc@users.noreply.github.com>2005-05-27 12:59:45 +0000
commit37c13d86259c9ddc5b5834f2fcff06bcf2b071a3 (patch)
tree356f58ed3ce3c11d410617454704cac9f9575957
parent07991e262cba7e80011ef6d311c2c055851ec7b8 (diff)
downloadMPC-37c13d86259c9ddc5b5834f2fcff06bcf2b071a3.tar.gz
ChangeLogTag: Fri May 27 07:56:11 2005 Chad Elliott <elliott_c@ociweb.com>
-rw-r--r--ChangeLog23
-rw-r--r--modules/ProjectCreator.pm10
-rw-r--r--modules/TemplateParser.pm136
-rw-r--r--templates/em3.mpd4
-rw-r--r--templates/em3vcp.mpd4
-rw-r--r--templates/vc6.mpd4
-rw-r--r--templates/vc6dsp.mpd4
-rw-r--r--templates/vc7.mpd4
-rw-r--r--templates/vc8.mpd4
9 files changed, 121 insertions, 72 deletions
diff --git a/ChangeLog b/ChangeLog
index 3df60695..277e6299 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,26 @@
+Fri May 27 07:56:11 2005 Chad Elliott <elliott_c@ociweb.com>
+
+ * modules/ProjectCreator.pm:
+
+ Fixed a bug where explicitly specified output files would get
+ mixed with implicit output files if an input file were shared by
+ two different custom types.
+
+ * modules/TemplateParser.pm:
+
+ Fixed a bug where flag_overrides() functions that were parameters
+ to functions within an if would not be processed correctly.
+
+ * templates/em3vcp.mpd:
+ * templates/vc6dsp.mpd:
+ * templates/vc7.mpd:
+ * templates/vc8.mpd:
+
+ When setting up additional dependencies through the dependent
+ setting of custom types, don't append .exe if the command is a
+ perl script. This is not a generic solution, but most of the time
+ commands are either an exe or a perl script.
+
Tue May 24 13:57:42 2005 Chad Elliott <elliott_c@ociweb.com>
* modules/AutomakeProjectCreator.pm:
diff --git a/modules/ProjectCreator.pm b/modules/ProjectCreator.pm
index 2462aede..50c73b76 100644
--- a/modules/ProjectCreator.pm
+++ b/modules/ProjectCreator.pm
@@ -901,7 +901,10 @@ sub process_component_line {
}
if (defined $out) {
- $self->{'custom_special_output'}->{$line} = $self->create_array($out);
+ if (!defined $self->{'custom_special_output'}->{$tag}) {
+ $self->{'custom_special_output'}->{$tag} = {};
+ }
+ $self->{'custom_special_output'}->{$tag}->{$line} = $self->create_array($out);
}
if (defined $dep) {
$self->{'custom_special_depend'}->{$line} = $self->create_array($dep);
@@ -3276,8 +3279,9 @@ sub get_custom_value {
}
## Add specially listed files avoiding duplicates
- if (defined $self->{'custom_special_output'}->{$ainput}) {
- foreach my $file (@{$self->{'custom_special_output'}->{$ainput}}) {
+ if (defined $self->{'custom_special_output'}->{$based} &&
+ defined $self->{'custom_special_output'}->{$based}->{$ainput}) {
+ foreach my $file (@{$self->{'custom_special_output'}->{$based}->{$ainput}}) {
my($found) = 0;
foreach my $output (@outputs) {
if ($output eq $file) {
diff --git a/modules/TemplateParser.pm b/modules/TemplateParser.pm
index 5e591191..6123add1 100644
--- a/modules/TemplateParser.pm
+++ b/modules/TemplateParser.pm
@@ -161,6 +161,26 @@ sub append_current {
}
+sub split_parameters {
+ my($self) = shift;
+ my($str) = shift;
+ my(@params) = ();
+
+ while($str =~ /(\w+\([^\)]+\))\s*,\s*(.*)/) {
+ push(@params, $1);
+ $str = $2;
+ }
+ while($str =~ /([^,]+)\s*,\s*(.*)/) {
+ push(@params, $1);
+ $str = $2;
+ }
+
+ ## Return the parameters (which includes whatever is left in the
+ ## string). Just return it instead of pushing it onto @params.
+ return @params, $str;
+}
+
+
sub set_current_values {
my($self) = shift;
my($name) = shift;
@@ -222,50 +242,56 @@ sub get_value {
}
if (!defined $value) {
- ## Next, check for a template value
- if (defined $self->{'ti'}) {
- $value = $self->{'ti'}->get_value($name);
+ if ($name =~ /^flag_overrides\((.*)\)$/) {
+ $value = $self->get_flag_overrides($1);
}
if (!defined $value) {
- ## Calling adjust_value here allows us to pick up template
- ## overrides before getting values elsewhere.
- my($uvalue) = $self->{'prjc'}->adjust_value([$sname, $name], []);
- if (defined $$uvalue[0]) {
- $value = $uvalue;
- $adjust = 0;
+ ## Next, check for a template value
+ if (defined $self->{'ti'}) {
+ $value = $self->{'ti'}->get_value($name);
}
if (!defined $value) {
- ## Next, check the inner to outer foreach
- ## scopes for overriding values
- while(!defined $value && $counter >= 0) {
- $value = $self->{'foreach'}->{'scope'}->[$counter]->{$name};
- --$counter;
+ ## Calling adjust_value here allows us to pick up template
+ ## overrides before getting values elsewhere.
+ my($uvalue) = $self->{'prjc'}->adjust_value([$sname, $name], []);
+ if (defined $$uvalue[0]) {
+ $value = $uvalue;
+ $adjust = 0;
}
- ## Then get the value from the project creator
if (!defined $value) {
- $fromprj = 1;
- $value = $self->{'prjc'}->get_assignment($name);
+ ## Next, check the inner to outer foreach
+ ## scopes for overriding values
+ while(!defined $value && $counter >= 0) {
+ $value = $self->{'foreach'}->{'scope'}->[$counter]->{$name};
+ --$counter;
+ }
- ## Then get it from our known values
+ ## Then get the value from the project creator
if (!defined $value) {
- $value = $self->{'values'}->{$name};
+ $fromprj = 1;
+ $value = $self->{'prjc'}->get_assignment($name);
+
+ ## Then get it from our known values
if (!defined $value) {
- ## Call back onto the project creator to allow
- ## it to fill in the value before defaulting to undef.
- $value = $self->{'prjc'}->fill_value($name);
- if (!defined $value && $name =~ /^(.*)\->(\w+)/) {
- my($pre) = $1;
- my($post) = $2;
- my($base) = $self->get_value($pre);
-
- if (defined $base) {
- $value = $self->{'prjc'}->get_special_value(
- $pre, $post, $base,
- ($self->{'prjc'}->requires_parameters($post) ?
- $self->prepare_parameters($pre) : undef));
+ $value = $self->{'values'}->{$name};
+ if (!defined $value) {
+ ## Call back onto the project creator to allow
+ ## it to fill in the value before defaulting to undef.
+ $value = $self->{'prjc'}->fill_value($name);
+ if (!defined $value && $name =~ /^(.*)\->(\w+)/) {
+ my($pre) = $1;
+ my($post) = $2;
+ my($base) = $self->get_value($pre);
+
+ if (defined $base) {
+ $value = $self->{'prjc'}->get_special_value(
+ $pre, $post, $base,
+ ($self->{'prjc'}->requires_parameters($post) ?
+ $self->prepare_parameters($pre) : undef));
+ }
}
}
}
@@ -634,13 +660,9 @@ sub doif_starts_with {
my($val) = shift;
if (defined $val) {
- my($str) = "@$val";
- if ($str =~ /([^,]+)\s*,\s*(.*)/) {
- my($name) = $1;
- my($pattern) = $2;
- if (defined $name && defined $pattern) {
- return ($self->get_value_with_default($name) =~ /^$pattern/);
- }
+ my($name, $pattern) = $self->split_parameters("@$val");
+ if (defined $name && defined $pattern) {
+ return ($self->get_value_with_default($name) =~ /^$pattern/);
}
}
return undef;
@@ -676,13 +698,9 @@ sub doif_ends_with {
my($val) = shift;
if (defined $val) {
- my($str) = "@$val";
- if ($str =~ /([^,]+)\s*,\s*(.*)/) {
- my($name) = $1;
- my($pattern) = $2;
- if (defined $name && defined $pattern) {
- return ($self->get_value_with_default($name) =~ /$pattern$/);
- }
+ my($name, $pattern) = $self->split_parameters("@$val");
+ if (defined $name && defined $pattern) {
+ return ($self->get_value_with_default($name) =~ /$pattern$/);
}
}
return undef;
@@ -718,13 +736,9 @@ sub doif_contains {
my($val) = shift;
if (defined $val) {
- my($str) = "@$val";
- if ($str =~ /([^,]+)\s*,\s*(.*)/) {
- my($name) = $1;
- my($pattern) = $2;
- if (defined $name && defined $pattern) {
- return ($self->get_value_with_default($name) =~ /$pattern/);
- }
+ my($name, $pattern) = $self->split_parameters("@$val");
+ if (defined $name && defined $pattern) {
+ return ($self->get_value_with_default($name) =~ /$pattern/);
}
}
return undef;
@@ -856,9 +870,17 @@ sub process_compound_if {
## Get the value based on the string
my(@cmds) = ();
my($val) = undef;
- while ($str =~ /(\w+)\((.+)\)/) {
- push(@cmds, $1);
- $str = $2;
+ while ($str =~ /(\w+)\((.+)\)(.*)/) {
+ if ($3 eq '') {
+ push(@cmds, $1);
+ $str = $2;
+ }
+ else {
+ ## If there is something trailing the closing parenthesis then
+ ## the whole thing is considered a parameter to the first
+ ## function.
+ last;
+ }
}
if (defined $cmds[0]) {
@@ -1276,7 +1298,7 @@ sub process_name {
if ($line eq '') {
}
- elsif ($line =~ /^\w+(\(([^\)]+|\".*\"|(\w+\s*,\s*)?\w+\(.+\))\)|\->\w+([\w\-\>]+)?)?%>/) {
+ elsif ($line =~ /^\w+(\(([^\)]+|\".*\"|[!]?(\w+\s*,\s*)?\w+\(.+\))\)|\->\w+([\w\-\>]+)?)?%>/) {
## Split the line into a name and value
my($name, $val) = ();
if ($line =~ /([^%\(]+)(\(([^%]+)\))?%>/) {
diff --git a/templates/em3.mpd b/templates/em3.mpd
index 512147b6..59ae18c7 100644
--- a/templates/em3.mpd
+++ b/templates/em3.mpd
@@ -310,10 +310,10 @@ SOURCE="<%custom_type->input_file%>"
!<%fornotfirst("ELSE")%>IF "$(CFG)" == "<%project_name%> - <%operating_system%> (<%platform%>) <%configuration%>"
<%if(flag_overrides(custom_type->input_file, dependent))%>
-USERDEP__<%basenoextension(custom_type->input_file)%>="<%flag_overrides(custom_type->input_file, dependent)%>.exe"<%foreach(custom_type->input_file->dependencies)%> "<%custom_type->input_file->dependencie%>"<%endfor%>
+USERDEP__<%basenoextension(custom_type->input_file)%>="<%flag_overrides(custom_type->input_file, dependent)%><%if(!ends_with(flag_overrides(custom_type->input_file, dependent), .pl))%>.exe<%endif%>"<%foreach(custom_type->input_file->dependencies)%> "<%custom_type->input_file->dependencie%>"<%endfor%>
<%else%>
<%if(custom_type->dependent)%>
-USERDEP__<%basenoextension(custom_type->input_file)%>="<%custom_type->dependent%>.exe"<%foreach(custom_type->input_file->dependencies)%> "<%custom_type->input_file->dependencie%>"<%endfor%>
+USERDEP__<%basenoextension(custom_type->input_file)%>="<%custom_type->dependent%><%if(!ends_with(custom_type->dependent, .pl))%>.exe<%endif%>"<%foreach(custom_type->input_file->dependencies)%> "<%custom_type->input_file->dependencie%>"<%endfor%>
<%else%>
<%if(custom_type->input_file->dependencies)%>
USERDEP__<%basenoextension(custom_type->input_file)%>=<%foreach(custom_type->input_file->dependencies)%>"<%custom_type->input_file->dependencie%>"<%fornotlast(" ")%><%endfor%>
diff --git a/templates/em3vcp.mpd b/templates/em3vcp.mpd
index 512147b6..59ae18c7 100644
--- a/templates/em3vcp.mpd
+++ b/templates/em3vcp.mpd
@@ -310,10 +310,10 @@ SOURCE="<%custom_type->input_file%>"
!<%fornotfirst("ELSE")%>IF "$(CFG)" == "<%project_name%> - <%operating_system%> (<%platform%>) <%configuration%>"
<%if(flag_overrides(custom_type->input_file, dependent))%>
-USERDEP__<%basenoextension(custom_type->input_file)%>="<%flag_overrides(custom_type->input_file, dependent)%>.exe"<%foreach(custom_type->input_file->dependencies)%> "<%custom_type->input_file->dependencie%>"<%endfor%>
+USERDEP__<%basenoextension(custom_type->input_file)%>="<%flag_overrides(custom_type->input_file, dependent)%><%if(!ends_with(flag_overrides(custom_type->input_file, dependent), .pl))%>.exe<%endif%>"<%foreach(custom_type->input_file->dependencies)%> "<%custom_type->input_file->dependencie%>"<%endfor%>
<%else%>
<%if(custom_type->dependent)%>
-USERDEP__<%basenoextension(custom_type->input_file)%>="<%custom_type->dependent%>.exe"<%foreach(custom_type->input_file->dependencies)%> "<%custom_type->input_file->dependencie%>"<%endfor%>
+USERDEP__<%basenoextension(custom_type->input_file)%>="<%custom_type->dependent%><%if(!ends_with(custom_type->dependent, .pl))%>.exe<%endif%>"<%foreach(custom_type->input_file->dependencies)%> "<%custom_type->input_file->dependencie%>"<%endfor%>
<%else%>
<%if(custom_type->input_file->dependencies)%>
USERDEP__<%basenoextension(custom_type->input_file)%>=<%foreach(custom_type->input_file->dependencies)%>"<%custom_type->input_file->dependencie%>"<%fornotlast(" ")%><%endfor%>
diff --git a/templates/vc6.mpd b/templates/vc6.mpd
index fe2fd68a..d5a603d0 100644
--- a/templates/vc6.mpd
+++ b/templates/vc6.mpd
@@ -296,10 +296,10 @@ SOURCE="<%custom_type->input_file%>"
!<%fornotfirst("ELSE")%>IF "$(CFG)" == "<%project_name%> - <%platform%> <%configuration%>"
<%if(flag_overrides(custom_type->input_file, dependent))%>
-USERDEP__<%basenoextension(custom_type->input_file)%>="<%flag_overrides(custom_type->input_file, dependent)%>.exe"<%foreach(custom_type->input_file->dependencies)%> "<%custom_type->input_file->dependencie%>"<%endfor%>
+USERDEP__<%basenoextension(custom_type->input_file)%>="<%flag_overrides(custom_type->input_file, dependent)%><%if(!ends_with(flag_overrides(custom_type->input_file, dependent), .pl))%>.exe<%endif%>"<%foreach(custom_type->input_file->dependencies)%> "<%custom_type->input_file->dependencie%>"<%endfor%>
<%else%>
<%if(custom_type->dependent)%>
-USERDEP__<%basenoextension(custom_type->input_file)%>="<%custom_type->dependent%>.exe"<%foreach(custom_type->input_file->dependencies)%> "<%custom_type->input_file->dependencie%>"<%endfor%>
+USERDEP__<%basenoextension(custom_type->input_file)%>="<%custom_type->dependent%><%if(!ends_with(custom_type->dependent, .pl))%>.exe<%endif%>"<%foreach(custom_type->input_file->dependencies)%> "<%custom_type->input_file->dependencie%>"<%endfor%>
<%else%>
<%if(custom_type->input_file->dependencies)%>
USERDEP__<%basenoextension(custom_type->input_file)%>=<%foreach(custom_type->input_file->dependencies)%>"<%custom_type->input_file->dependencie%>"<%fornotlast(" ")%><%endfor%>
diff --git a/templates/vc6dsp.mpd b/templates/vc6dsp.mpd
index fe2fd68a..d5a603d0 100644
--- a/templates/vc6dsp.mpd
+++ b/templates/vc6dsp.mpd
@@ -296,10 +296,10 @@ SOURCE="<%custom_type->input_file%>"
!<%fornotfirst("ELSE")%>IF "$(CFG)" == "<%project_name%> - <%platform%> <%configuration%>"
<%if(flag_overrides(custom_type->input_file, dependent))%>
-USERDEP__<%basenoextension(custom_type->input_file)%>="<%flag_overrides(custom_type->input_file, dependent)%>.exe"<%foreach(custom_type->input_file->dependencies)%> "<%custom_type->input_file->dependencie%>"<%endfor%>
+USERDEP__<%basenoextension(custom_type->input_file)%>="<%flag_overrides(custom_type->input_file, dependent)%><%if(!ends_with(flag_overrides(custom_type->input_file, dependent), .pl))%>.exe<%endif%>"<%foreach(custom_type->input_file->dependencies)%> "<%custom_type->input_file->dependencie%>"<%endfor%>
<%else%>
<%if(custom_type->dependent)%>
-USERDEP__<%basenoextension(custom_type->input_file)%>="<%custom_type->dependent%>.exe"<%foreach(custom_type->input_file->dependencies)%> "<%custom_type->input_file->dependencie%>"<%endfor%>
+USERDEP__<%basenoextension(custom_type->input_file)%>="<%custom_type->dependent%><%if(!ends_with(custom_type->dependent, .pl))%>.exe<%endif%>"<%foreach(custom_type->input_file->dependencies)%> "<%custom_type->input_file->dependencie%>"<%endfor%>
<%else%>
<%if(custom_type->input_file->dependencies)%>
USERDEP__<%basenoextension(custom_type->input_file)%>=<%foreach(custom_type->input_file->dependencies)%>"<%custom_type->input_file->dependencie%>"<%fornotlast(" ")%><%endfor%>
diff --git a/templates/vc7.mpd b/templates/vc7.mpd
index 5993fae1..9e292314 100644
--- a/templates/vc7.mpd
+++ b/templates/vc7.mpd
@@ -252,10 +252,10 @@
Description="Invoking <%if(flag_overrides(custom_type->input_file, command))%><%flag_overrides(custom_type->input_file, command)%><%else%><%custom_type->command%><%endif%> on <%custom_type->input_file%>"
CommandLine="<%if(custom_type->libpath)%>PATH=%PATH%;<%custom_type->libpath%>&#x0D;&#x0A;<%endif%><%if(flag_overrides(custom_type->input_file, gendir))%>if not exist <%flag_overrides(custom_type->input_file, gendir)%> mkdir <%flag_overrides(custom_type->input_file, gendir)%>&#x0D;&#x0A;<%endif%><%if(flag_overrides(custom_type->input_file, command))%><%flag_overrides(custom_type->input_file, command)%><%else%><%custom_type->command%><%endif%> <%if(flag_overrides(custom_type->input_file, commandflags))%><%flag_overrides(custom_type->input_file, commandflags)%><%else%><%custom_type->commandflags%><%endif%> &quot;<%custom_type->input_file%>&quot;<%if(custom_type->output_option)%> <%custom_type->output_option%> &quot;<%if(flag_overrides(custom_type->input_file, gendir))%><%flag_overrides(custom_type->input_file, gendir)%>\<%basename(custom_type->input_file->output_files)%><%else%><%custom_type->input_file->output_files%><%endif%>&quot;<%endif%><%if(flag_overrides(custom_type->input_file, postcommand))%><%foreach(custom_type->input_file->output_files)%>&#x0D;&#x0A;<%flag_overrides(custom_type->input_file, postcommand)%><%endfor%><%else%><%if(custom_type->postcommand)%><%foreach(custom_type->input_file->output_files)%>&#x0D;&#x0A;<%custom_type->postcommand%><%endfor%><%endif%><%endif%><%if(pch_header)%><%if(custom_type->pch_postrule)%><%foreach(custom_type->input_file->source_output_files)%>&#x0D;&#x0A;echo #include &quot;<%pch_header%>&quot; &gt; temporary.src&#x0D;&#x0A;type &quot;<%if(flag_overrides(custom_type->input_file, gendir))%><%flag_overrides(custom_type->input_file, gendir)%>\<%basename(custom_type->input_file->source_output_file)%><%else%><%custom_type->input_file->source_output_file%><%endif%>&quot; &gt;&gt; temporary.src&#x0D;&#x0A;move /y temporary.src &quot;<%if(flag_overrides(custom_type->input_file, gendir))%><%flag_overrides(custom_type->input_file, gendir)%>\<%basename(custom_type->input_file->source_output_file)%><%else%><%custom_type->input_file->source_output_file%><%endif%>&quot;<%endfor%><%endif%><%endif%>"
<%if(flag_overrides(custom_type->input_file, dependent))%>
- AdditionalDependencies="<%flag_overrides(custom_type->input_file, dependent)%>.exe<%foreach(custom_type->input_file->dependencies)%>;<%custom_type->input_file->dependencie%><%endfor%>"
+ AdditionalDependencies="<%flag_overrides(custom_type->input_file, dependent)%><%if(!ends_with(flag_overrides(custom_type->input_file, dependent), .pl))%>.exe<%endif%><%foreach(custom_type->input_file->dependencies)%>;<%custom_type->input_file->dependencie%><%endfor%>"
<%else%>
<%if(custom_type->dependent)%>
- AdditionalDependencies="<%custom_type->dependent%>.exe<%foreach(custom_type->input_file->dependencies)%>;<%custom_type->input_file->dependencie%><%endfor%>"
+ AdditionalDependencies="<%custom_type->dependent%><%if(!ends_with(custom_type->dependent, .pl))%>.exe<%endif%><%foreach(custom_type->input_file->dependencies)%>;<%custom_type->input_file->dependencie%><%endfor%>"
<%else%>
<%if(custom_type->input_file->dependencies)%>
AdditionalDependencies="<%foreach(custom_type->input_file->dependencies)%><%custom_type->input_file->dependencie%><%fornotlast(";")%><%endfor%>"
diff --git a/templates/vc8.mpd b/templates/vc8.mpd
index e4e36193..bf57b462 100644
--- a/templates/vc8.mpd
+++ b/templates/vc8.mpd
@@ -597,10 +597,10 @@
Description="Invoking <%if(flag_overrides(custom_type->input_file, command))%><%flag_overrides(custom_type->input_file, command)%><%else%><%custom_type->command%><%endif%> on <%custom_type->input_file%>"
CommandLine="<%if(custom_type->libpath)%>PATH=%PATH%;<%custom_type->libpath%>&#x0D;&#x0A;<%endif%><%if(flag_overrides(custom_type->input_file, gendir))%>if not exist <%flag_overrides(custom_type->input_file, gendir)%> mkdir <%flag_overrides(custom_type->input_file, gendir)%>&#x0D;&#x0A;<%endif%><%if(flag_overrides(custom_type->input_file, command))%><%flag_overrides(custom_type->input_file, command)%><%else%><%custom_type->command%><%endif%> <%if(flag_overrides(custom_type->input_file, commandflags))%><%flag_overrides(custom_type->input_file, commandflags)%><%else%><%custom_type->commandflags%><%endif%> &quot;<%custom_type->input_file%>&quot;<%if(custom_type->output_option)%> <%custom_type->output_option%> &quot;<%if(flag_overrides(custom_type->input_file, gendir))%><%flag_overrides(custom_type->input_file, gendir)%>\<%basename(custom_type->input_file->output_files)%><%else%><%custom_type->input_file->output_files%><%endif%>&quot;<%endif%><%if(flag_overrides(custom_type->input_file, postcommand))%><%foreach(custom_type->input_file->output_files)%>&#x0D;&#x0A;<%flag_overrides(custom_type->input_file, postcommand)%><%endfor%><%else%><%if(custom_type->postcommand)%><%foreach(custom_type->input_file->output_files)%>&#x0D;&#x0A;<%custom_type->postcommand%><%endfor%><%endif%><%endif%><%if(pch_header)%><%if(custom_type->pch_postrule)%><%foreach(custom_type->input_file->source_output_files)%>&#x0D;&#x0A;echo #include &quot;<%pch_header%>&quot; &gt; temporary.src&#x0D;&#x0A;type &quot;<%if(flag_overrides(custom_type->input_file, gendir))%><%flag_overrides(custom_type->input_file, gendir)%>\<%basename(custom_type->input_file->source_output_file)%><%else%><%custom_type->input_file->source_output_file%><%endif%>&quot; &gt;&gt; temporary.src&#x0D;&#x0A;move /y temporary.src &quot;<%if(flag_overrides(custom_type->input_file, gendir))%><%flag_overrides(custom_type->input_file, gendir)%>\<%basename(custom_type->input_file->source_output_file)%><%else%><%custom_type->input_file->source_output_file%><%endif%>&quot;<%endfor%><%endif%><%endif%>"
<%if(flag_overrides(custom_type->input_file, dependent))%>
- AdditionalDependencies="<%flag_overrides(custom_type->input_file, dependent)%>.exe<%foreach(custom_type->input_file->dependencies)%>;<%custom_type->input_file->dependencie%><%endfor%>"
+ AdditionalDependencies="<%flag_overrides(custom_type->input_file, dependent)%><%if(!ends_with(flag_overrides(custom_type->input_file, dependent), .pl))%>.exe<%endif%><%foreach(custom_type->input_file->dependencies)%>;<%custom_type->input_file->dependencie%><%endfor%>"
<%else%>
<%if(custom_type->dependent)%>
- AdditionalDependencies="<%custom_type->dependent%>.exe<%foreach(custom_type->input_file->dependencies)%>;<%custom_type->input_file->dependencie%><%endfor%>"
+ AdditionalDependencies="<%custom_type->dependent%><%if(!ends_with(custom_type->dependent, .pl))%>.exe<%endif%><%foreach(custom_type->input_file->dependencies)%>;<%custom_type->input_file->dependencie%><%endfor%>"
<%else%>
<%if(custom_type->input_file->dependencies)%>
AdditionalDependencies="<%foreach(custom_type->input_file->dependencies)%><%custom_type->input_file->dependencie%><%fornotlast(";")%><%endfor%>"