summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorelliott_c <ocielliottc@users.noreply.github.com>2003-04-21 14:17:41 +0000
committerelliott_c <ocielliottc@users.noreply.github.com>2003-04-21 14:17:41 +0000
commite8a39ce71144f2873af908bdfb2dc53469a89bc3 (patch)
tree54b71945f5103fad9d8e1e11b92312535bade6d6
parente9aea8bde0b28594dd48fdcc8e009b63186d927c (diff)
downloadATCD-e8a39ce71144f2873af908bdfb2dc53469a89bc3.tar.gz
ChangeLogTag: Mon Apr 21 09:14:09 2003 Chad Elliott <elliott_c@ociweb.com>
-rw-r--r--ChangeLog12
-rw-r--r--bin/MakeProjectCreator/modules/ProjectCreator.pm39
2 files changed, 49 insertions, 2 deletions
diff --git a/ChangeLog b/ChangeLog
index 257b1041b51..5e9b238cef5 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,11 @@
+Mon Apr 21 09:14:09 2003 Chad Elliott <elliott_c@ociweb.com>
+
+ * bin/MakeProjectCreator/modules/ProjectCreator.pm:
+
+ If pch files are listed in header_files or source_files, then
+ remove them from the listing. It is important that they are not
+ duplicated.
+
Mon Apr 21 04:51:09 UTC 2003 Don Hinton <dhinton@dresystems.com>
* bin/generate_compile_stats.sh:
@@ -8,12 +16,12 @@ Mon Apr 21 04:51:09 UTC 2003 Don Hinton <dhinton@dresystems.com>
* ace/SStringfwd.h:
* ace/SString.h:
- Moved typedef for ACE_TString to SStringfwd.h to go with
+ Moved typedef for ACE_TString to SStringfwd.h to go with
ACE_CString and ACE_WString.
* ace/Get_Opt.{h,cpp,i}:
- Include ace/SStringfwd.h instead of ace/SString.h in header,
+ Include ace/SStringfwd.h instead of ace/SString.h in header,
changed members variables to pointers, and uninlined optstring()
to reduce inter header dependencies.
diff --git a/bin/MakeProjectCreator/modules/ProjectCreator.pm b/bin/MakeProjectCreator/modules/ProjectCreator.pm
index 65128e846aa..b7bee0b9d90 100644
--- a/bin/MakeProjectCreator/modules/ProjectCreator.pm
+++ b/bin/MakeProjectCreator/modules/ProjectCreator.pm
@@ -824,6 +824,41 @@ sub fix_pch_filenames {
}
+sub remove_extra_pch_listings {
+ my($self) = shift;
+ my(@pchs) = ('pch_header', 'pch_source');
+ my(@tags) = ('header_files', 'source_files');
+
+ for(my $j = 0; $j <= $#pchs; ++$j) {
+ my($pch) = $self->get_assignment($pchs[$j]);
+
+ if (defined $pch) {
+ ## If we are converting slashes, then we need to
+ ## convert the pch file back to forward slashes
+ if ($self->convert_slashes()) {
+ $pch =~ s/\\/\//g;
+ }
+
+ ## Find out which files are duplicated
+ my($names) = $self->{$tags[$j]};
+ foreach my $name (keys %$names) {
+ my($comps) = $$names{$name};
+ foreach my $key (keys %$comps) {
+ my($array) = $$comps{$key};
+ my($count) = scalar(@$array);
+ for(my $i = 0; $i < $count; ++$i) {
+ if ($pch eq $$array[$i]) {
+ splice(@$array, $i, 1);
+ --$count;
+ }
+ }
+ }
+ }
+ }
+ }
+}
+
+
sub is_special_tag {
my($self) = shift;
my($tag) = shift;
@@ -1244,6 +1279,10 @@ sub generate_defaults {
## If we do not do this, then generated projects can be invalid.
$self->remove_duplicated_files('source_files', 'template_files');
+ ## If pch files are listed in header_files or source_files more than
+ ## once, we need to remove the extras
+ $self->remove_extra_pch_listings();
+
## Generate the default idl generated list of source files
## only if we defaulted the idl file list
$self->generate_default_idl_generated(['source_files']);